[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


    Forum:		Compiler
    Edit History:   V1, 15 Nov 1988, Sandra Loosemore
		    V2, 22 Nov 1988, Sandra Loosemore
		    V3, 30 Dec 1988, Sandra Loosemore


    ...  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

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."