[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: LOAD-TIME-EVAL
- To: Kent M Pitman <KMP@STONY-BROOK.SCRC.Symbolics.COM>
- Subject: Re: LOAD-TIME-EVAL
- From: David N Gray <Gray@DSG.csc.ti.com>
- Date: Mon, 12 Sep 88 10:27:17 CDT
- Cc: CL-Compiler@SAIL.Stanford.EDU
- In-reply-to: Msg of Fri, 9 Sep 88 19:25 EDT from Kent M Pitman <KMP@STONY-BROOK.SCRC.Symbolics.COM>
- Sender: GRAY@Kelvin.csc.ti.com
> My problem with anything that has "EVAL" in it is that it gets involved in
> problems of quoting. I think people would expect EVAL-AT-LOAD-TIME to do
> `double evaluation' that EVAL is always accused of doing (once at argument
> evaluation time, once in the function itself).
>
> I also would prefer a name that was passive rather than active for similar
> reasons and for reasons of personal stylistic preference.
>
> How would LOAD-TIME-VALUE strike you?
Kent,
That sounds fine to me.
> An interesting issue that I don't remember if I addressed was whether
> multiple values could fall through. If you believed in such things, you
> might like LOAD-TIME-VALUES.
That sounds ugly. Unless someone can demonstrate a compelling need for
multiple values there, I'd rather not have to support it.
> The reason that I mention this is that maybe we should take the hint from
> the people who've referred to own variables and call the form OWN-VALUE
> (or OWN-VALUES).
Algol programmers know what "own" means, but I think the C term "static"
is more meaningful.
>...
> I could even imagine some fan of own variables coming up with:
>
> (DEFMACRO WITH-OWN-VARIABLES (BINDINGS &BODY DECLS-AND-FORMS)
> `(LET ,(MAPCAR #'(LAMBDA (BINDING)
> `(,(CAR BINDING) (OWN-VALUE ,(CADR BINDING))))
> BINDINGS)
> ,@FORMS))
But that's not really an "own" variable because any alteration by SETQ
is local to the current invocation of the function.
-- David Gray