[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Compiling CASE
Date: 8 Apr 87 14:56 PDT
"The compiler can have special knowledge of particular macros, as long as
it ignores this special knowledge if the user redefines the macros."
It is an error to redefine *any* of the built-in symbols of Common Lisp,
whether they are macros, special forms, or functions.
Compilers can therefore assume anything they want about any of the
built-in symbols of Common Lisp, whether they are functions, macros, or
special forms, since their definition cannot legally be changed.
Is "it an error" to FLET them? If not, then the compiler has to be
smart enough to not insert the transforms it might have. Transforms
are a whole 'nother issue. They are arguably the best way to provide
system-dependent optimizations. It would be useful, however, for
people whose compilers use the transform abstraction to provide an
extension like a NO-TRANSFORM declaration or something similar to
this in cases where you know something the compiler doesn't. (Like
maybe in a case like this.)
Gold Hill Computers