[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issues DECLARATION-SCOPE and DEFINING-MACROS-NON-TOP-LEVEL
- To: cl-compiler@SAIL.STANFORD.EDU
- Subject: Re: Issues DECLARATION-SCOPE and DEFINING-MACROS-NON-TOP-LEVEL
- From: "Steve Bacher (Batchman)" <SEB1525@draper.com>
- Date: Wed, 25 Jan 89 08:07 EST
>> 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.