[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue COMPILER-LET-CONFUSION, v3
- To: Jeff Dalton <jeff%aiai.edinburgh.ac.uk@NSS.Cs.Ucl.AC.UK>
- Subject: Re: Issue COMPILER-LET-CONFUSION, v3
- From: sandra%defun@cs.utah.edu (Sandra J Loosemore)
- Date: Wed, 4 Jan 89 10:42:32 MST
- Cc: "Kim A. Barrett" <IIM@ecla.usc.edu>, cl-compiler@sail.stanford.edu
- In-reply-to: Jeff Dalton <jeff%aiai.edinburgh.ac.uk@NSS.Cs.Ucl.AC.UK>, Tue, 3 Jan 89 17:17:17 GMT
> Is there a way to make COMPILER-LET work correctly short of requiring
> that interpreters do a macroexpansion prepass? Right now, I can't use
> COMPILER-LET in portable code because some macroexpansions happen after
> the dynamic extent of the COMPILER-LET bindings has ended.
This issue once included a proposal called CLARIFY-STATUS-QUO, which
stated that COMPILER-LETs should be processed at the same time as macros
are expanded, but didn't require this to happen in a prepass. You could
still get into trouble by doing things like:
(defvar *foo*)
(compiler-let ((*foo* 'compiler-let-value))
(let ((*foo* 'let-value))
(some-macro)))
SOME-MACRO might see different values of *FOO* in different implementations,
depending on whether the interpreter does macroexpansion in parallel with
evaluation or in a prepass.
This proposal was dropped because of lack of support.
-Sandra
-------