[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
issue DEFCONSTANT-SPECIAL
- To: cl-compiler@sail.stanford.edu
- Subject: issue DEFCONSTANT-SPECIAL
- From: Barry Margolin <barmar@Think.COM>
- Date: Tue, 3 Jan 89 19:26 EST
- In-reply-to: <8901032226.AA06038@defun.utah.edu>
Forum: Compiler
Issue: DEFCONSTANT-SPECIAL
Edit History: V1, 15 Nov 1988, Sandra Loosemore
V2, 22 Nov 1988, Sandra Loosemore
V3, 30 Dec 1988, Sandra Loosemore
Rationale:
... One serious problem
that might arise from allowing constants to be rebound lexically is
that it would not be reliable to include symbolic constants in macro
expansions, because the user might have rebound them to something
else.
This is the same as the "hygienic macro" problem that exists with
lexical function names, and which exists with ordinary lexical variables
bound by a macro expansion that doesn't use GENSYM. The only concession
we've made to this problem in the past is the proposal to make binding
function/macro names that are defined by the CL spec undefined.
I agree that we should prohibit binding of constants, but I don't think
the above is a particularly strong reason. In any case, nothing in the
rationale addresses the issue of whether constants should be special or
not, which is the point of the proposal. Since the only thing that a
special declaration affects is the result of binding the variable, and
that is already disallowed, there's no real need to specify this. As
they say, "a difference that make's no difference is no difference."
barmar