[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Issue: SYMBOL-MACROLET-DECLARE (version 1)
Date: Tue, 13 Sep 88 07:06:10 PDT
From: piazza%lisp.DEC@decwrl.dec.com (Jeffrey Piazza)
This seems like a reasonable proposal and does make SYMBOL-MACROLET more
consistent with LET.
This may be a separate issue, but somewhere we should nail down the
interpretation of e.g.
(symbol-macrolet ((foo bar))
...
(locally (declare (special foo))
...foo...))
As currently specified, only a new binding for FOO can turn off its
interpretation as a symbol macro. I'd like to see some language that said that
a SPECIAL declaration also shadows the symbol macro scope.
That seems reasonable.
The limit case, which your proposal makes "an error", might then reasonably
have a null semantics:
(symbol-macrolet ((foo bar))
(declare (special foo))
...)
might be interpreted as
(locally (declare (special foo))
...)
This would be a very bad idea, it would be very inconsistent with LET, and
would introduce a bizarre semantics: Throw away what I just said in the
binding list. I think that it should be an error.
Patrick.