[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue: COMPILER-LET-CONFUSION (Version 4)
- To: Kent M Pitman <KMP@scrc-stony-brook.arpa>, sandra <@cs.utah.edu:sandra@defun>
- Subject: Re: Issue: COMPILER-LET-CONFUSION (Version 4)
- From: Jeff Dalton <jeff%aiai.edinburgh.ac.uk@NSS.Cs.Ucl.AC.UK>
- Date: Tue, 10 Jan 89 01:40:40 GMT
- Cc: CL-Compiler@sail.stanford.edu
- In-reply-to: Kent M Pitman's message of Sun, 8 Jan 89 17:58 EST
My main objection to COMPILER-LET -- that some implementations may
not fully macroexpand the body until after the dynamic extent of the
bindings has ended [Suppose a function is passed back. It might not
be expanded until called.] -- would be answered by the requirement
that the body be fully expanded.
> Current Practice:
> Some implementations have implemented the description in CLtL.
> Users of those implementations (quite reasonably) can't figure how to
> use COMPILER-LET and so don't use it much.
> Some implementations (the onces from which COMPILER-LET originally came)
> continue to use their pre-CLtL semantics. These semantics are useful, though
> incompatible with CLtL (which they largely consider to simply be in error).
> Users of those implementations probably use COMPILER-LET somewhat more
> often since it has an intelligible behavior, but their code is not portable
> since it relies on behaviors which are either contrary to or not guaranteed
> by CLtL.
I don't understand this section. What is this different semantics.
I've read the Symbolics documentation (some oldish versions) and can't
immediately see what it might be.