[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Macros -> declarations
- To: Fahlman@CMU-CS-C.ARPA, KMP@STONY-BROOK.SCRC.Symbolics.COM
- Subject: Macros -> declarations
- From: Bernard S. Greenberg <BSG@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Tue, 7 May 85 08:51 EDT
- Cc: common-lisp@SU-AI.ARPA
- In-reply-to: <FAHLMAN.12108976886.BABYL@CMU-CS-C.ARPA>
Date: Mon, 6 May 1985 21:56 EDT
From: "Scott E. Fahlman" <Fahlman@CMU-CS-C.ARPA>
The business about wanting to be able to shadow LISP:DECLARE seems
pretty weak to me.
He's hardly shadowing Lisp:declare....
It seems reasonable to me that if people want to
redefine the essential structural symbols like DECLARE out from under
Common Lisp, then they should either be willing to say something like
LISP:DECLARE to get the old version or do a source-level transformation
on the surrounding form. There are a number of other structural
symbols, in addition to DECLARE, that are known to the interpreter, and
we can't very well macroexpand everything in sight in order to see if we
have one of these.
I don't buy this as a counterargument to what KMP said. Subsitute "DEFUN"
for "DECLARE" in the above paragraph. You can only define functions with
DEFUN -- (generic)Lisp provides no other way. Yet, we have the whole
top-level macro mechanism to allow you to define application-language-embedded
function-definers, calls to whom are expanded at top-level to ultimately
produce DEFUNs. DECLARE is the only way to declare things lexically.
The same arguments apply.