[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue SYNTACTIC-ENVIRONMENT-ACCESS
- To: Kim A. Barrett <IIM%ECLA@ECLC.USC.EDU>
- Subject: Re: Issue SYNTACTIC-ENVIRONMENT-ACCESS
- From: Rob.MacLachlan@WB1.CS.CMU.EDU
- Date: Thu, 23 Feb 89 11:56:21 EST
- Cc: cl-compiler@SAIL.STANFORD.EDU, eb@LUCID.COM
- In-reply-to: Your message of Wed, 22 Feb 89 16:27:51 -0800. <12472816591.21.IIM@ECLA.USC.EDU>
Could you provide some example uses of AUGMENT-ENVIRONMENT? It isn't at
all clear to me even what it is supposed to do. What does it mean to
"augment the set of visible variables?" You seem to imply that this
actually creates new variables (which could have type declarations).
I don't understand why a macro that wants to use this can't expand into
Lisp code that makes the appropriate environment manipulations.
I see the use for the environment query functions and for the environment
plist stuff, but AUGMENT-ENVIRONMENT is much more questionable. It seems
to be both of questionable utility and also to be extremely difficult to
AUGMENT-ENVIRONMENT truly horrible if any extent other than dynamic is
chosen for environments: it would be possible to retroactively introduce
variables into code that was already compiled.
Given a dynamic extent, I suppose the compiler could notice that
AUGMENT-ENVIRONMENT was called when it invoked a macro expander. It could
then decode the arguments and transduce them into the appropriate LET,
MACROLET, ... and wrap that around the expansion. What I don't see is why
the compiler should have to do this.