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

Unrelated issue re: special declarations



Is it true that it was a design decision rather than an oversight that
there is no UNSPECIAL declaration?  I seem to remember this had
something to do with making the interpreter easier, avoiding the need
for BLINTZ vectors or such.  If this is in fact the case, it should be
mentioned in the manual.  If it is a part of the language design, there
are several consequences.

An implementation which includes an UNSPECIAL declaration is violating
the standard, not extending it.  Portable code analysis programs must
make some assumptions about the semantics of the code they are looking
at.

It is legitimate for a macro to substitute the value of a symbol defined
by DEFCONSTANT (assuming EQLness is preserved), since they are
proclaimed special and cannot be shadowed by an UNSPECIAL declaration.
Notice this depends critically on the previous statement.