[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issue: COMPILER-LET-CONFUSION (Version 4)



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.

-- Jeff