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

Re: Issue DEFCONSTANT-NOT-WIRED



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

Well, that's the way DEFCONST is described in the "MIT Lisp Machine
Manual", but the system code we received from MIT did not use it that
way.  It was very common for something that really was used as a
variable to be defined by DEFCONST simply because it was desired to
re-initialize it whenever the file was reloaded.  Thus, in practical
terms, the only difference between DEFVAR and DEFCONST was whether they
preserved a previous value of the variable.  I always thought that that
was the reason for changing the name to DEFPARAMETER because the name
DEFCONST was misleading.  But then CLtL kept the old way of describing
it, so the confusion continues.

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

When we converted our system from Zetalisp to Common Lisp, DEFCONST was
translated to DEFPARAMETER since they were implemented exactly the same.
Some uses have been changed by hand to DEFCONSTANT where appropriate,
so our experience seems to be the reverse of yours.