Closed cbaggers closed 5 years ago
From the CLHS http://www.lispworks.com/documentation/HyperSpec/Body/03_da.htm
A var or supplied-p-parameter must be a symbol that is not the name of a constant variable.
CL-USER> (do-symbols (v)
(when (constantp v)
(print v)))
MOST-POSITIVE-SHORT-FLOAT
SHORT-FLOAT-NEGATIVE-EPSILON
LEAST-NEGATIVE-NORMALIZED-SINGLE-FLOAT
MOST-POSITIVE-SINGLE-FLOAT
LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT
DOUBLE-FLOAT-NEGATIVE-EPSILON
LEAST-NEGATIVE-NORMALIZED-SHORT-FLOAT
LAMBDA-LIST-KEYWORDS
LONG-FLOAT-EPSILON
CALL-ARGUMENTS-LIMIT
BOOLE-ANDC2
LEAST-POSITIVE-SHORT-FLOAT
LEAST-NEGATIVE-DOUBLE-FLOAT
LEAST-POSITIVE-LONG-FLOAT
LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT
SINGLE-FLOAT-EPSILON
BOOLE-1
MOST-NEGATIVE-SINGLE-FLOAT
BOOLE-ORC1
LAMBDA-PARAMETERS-LIMIT
BOOLE-AND
MOST-NEGATIVE-DOUBLE-FLOAT
MOST-NEGATIVE-FIXNUM
LEAST-POSITIVE-SINGLE-FLOAT
LEAST-NEGATIVE-NORMALIZED-DOUBLE-FLOAT
MOST-POSITIVE-DOUBLE-FLOAT
BOOLE-ANDC1
BOOLE-C2
BOOLE-CLR
BOOLE-ORC2
BOOLE-IOR
BOOLE-XOR
MOST-POSITIVE-LONG-FLOAT
BOOLE-NOR
INTERNAL-TIME-UNITS-PER-SECOND
LEAST-POSITIVE-DOUBLE-FLOAT
MOST-NEGATIVE-LONG-FLOAT
LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT
DOUBLE-FLOAT-EPSILON
ARRAY-DIMENSION-LIMIT
LEAST-NEGATIVE-SHORT-FLOAT
SHORT-FLOAT-EPSILON
BOOLE-NAND
NIL
PI
BOOLE-2
SINGLE-FLOAT-NEGATIVE-EPSILON
LEAST-NEGATIVE-SINGLE-FLOAT
ARRAY-TOTAL-SIZE-LIMIT
LEAST-POSITIVE-NORMALIZED-LONG-FLOAT
MOST-POSITIVE-FIXNUM
LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT
T
ARRAY-RANK-LIMIT
BOOLE-C1
LONG-FLOAT-NEGATIVE-EPSILON
BOOLE-SET
MOST-NEGATIVE-SHORT-FLOAT
CHAR-CODE-LIMIT
LEAST-NEGATIVE-LONG-FLOAT
MULTIPLE-VALUES-LIMIT
BOOLE-EQV
LONG-FLOAT-POSITIVE-INFINITY
DOUBLE-FLOAT-NEGATIVE-INFINITY
SINGLE-FLOAT-NEGATIVE-INFINITY
DOUBLE-FLOAT-POSITIVE-INFINITY
MOST-POSITIVE-WORD
SHORT-FLOAT-POSITIVE-INFINITY
SHORT-FLOAT-NEGATIVE-INFINITY
LONG-FLOAT-NEGATIVE-INFINITY
SINGLE-FLOAT-POSITIVE-INFINITY
I think, with stemcells and stuff, it's safe to disallow any symbol that is #'constantp
fixed on master
Currently this is accepted
Throw a sensible error