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

Re: Issues DECLARATION-SCOPE and DEFINING-MACROS-NON-TOP-LEVEL



>> 
>> If you don't make it a special form, then MACROEXPAND can change its semantics.
>> [eg, if LOCALLY expands into LET, but LET is not something that works at toplevel.]
>> Currently, I don't think that's permitted -- MACROEXPAND is normally a 
>> semantics-preserving operation. I think Moon is right that adding LOCALLY to
>> that list would seem to require that it be implemented as a special form.
>
>An alternative would be to say that LET passes through "top-level-ness" when
>its binding list is NIL.
>

Oh boy.  So we want to make EVAL-WHEN *not* pass through top-level-ness, but we
*do* want to make LET pass it through.  Please.  "LET"'s not go in two
diametrically opposite directions.  Either we should take a "lean and mean"
approach to top-level-ness (which includes purging the language of most of its
strange behavior wrt top-level-ness), or we should make it more permissive,
but for god's sake be consistent.