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

Issue DEFCONSTANT-NOT-WIRED



   Sender: GRAY@Kelvin.csc.ti.com
   Date: Fri, 7 Oct 88  14:19:38 CDT
   From: David N Gray <Gray@DSG.csc.ti.com>

   > CLtL says that a change to a DEFPARAMETER'ed variable should be
   > considered a change to the program.  There are lots of other
   > situations where making a change to the program might cause situations
   > that "are an error", such as redefining a function as a macro.
   > Although CLtL does not explicitly allow or disallow it, some (many?)
   > implementations choose to issue warnings in such cases.  Therefore I
   > think it is legitimate both for users to use DEFPARAMETER for
   > situations where an error may result if the variable is changed, and
   > for implementations to be allowed (but not required) to issue warnings
   > about changing the values of DEFPARAMETER'ed variables.

   One might construe CLtL to mean that, but it is too big of an
   incompatible change from current practice to be seriously considered. 


I disagree.  You may not remember, but DEFPARAMETER was defined to be
equivalent to Zetalisp's DEFCONST.  DEFCONST was always used to denote
values that would "never" change, even though the compiler was not
licensed to substitute their values.  After the Common Lisp version of
DEFCONSTANT was accepted, DEFPARAMETER was proposed to be used in
place of DEFCONST in cases where DEFCONSTANT isn't desirable.  As it
turns out, most uses of DEFCONST have been converted to DEFCONSTANT,
so DEFPARAMETER has been a bit neglected.