[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Macros -> declarations
- To: Scott E. Fahlman <Fahlman@CMU-CS-C.ARPA>
- Subject: Macros -> declarations
- From: Robert W. Kerns <RWK@SCRC-YUKON.ARPA>
- Date: Wed, 8 May 85 11:53 EDT
- Cc: Kent M Pitman <KMP@TENEX.SCRC.Symbolics.COM>, common-lisp@SU-AI.ARPA
- In-reply-to: <FAHLMAN.12109248831.BABYL@CMU-CS-C.ARPA>
Date: Tue, 7 May 1985 22:50 EDT
From: "Scott E. Fahlman" <Fahlman@CMU-CS-C.ARPA>
Is there any hope that we can all agree on flushing macro -> declaration
expansion and replacing it with something like Skef's "declaration
macro" proposal? You state that this is the minimum acceptable position
(minimun acceptable amount of hair, I guess), and for me it's about the
maximum acceptable position. It would seem to cover about 99% of the
cases where people claim that they need the macro expansion.
Might I suggest another proposal that I think adds less complexity
for the same gain (for either side of the issue)?
Instead of DECLARE forms being allowed to be macros, why not allow the
forms INSIDE declare forms be macros? Using macros rather than
"declaration macros" lets you then use macrolet, and avoids the need for
any new "DEFDECLARE" special forms to document or implement.
This doesn't quite cover the bases, though, unless we also deal with
expanding into multiple declarations [i.e. (REGISTER X) ->
(SPECIAL X) (FIXNUM X)].
I'll propose two ways to deal with that.
1) Allow (DECLARE (FOO X) ((SPECIAL X) (FIXNUM X))) to mean the
same as (DECLARE (FOO X) (SPECIAL X) (FIXNUM X))
2) Allow (DECLARE (FOO X) (DECLARE (SPECIAL X) (FIXNUM X))). I.e.
Allow DECLARE as a declaration containing declarations.