[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
defconstant, eval-when, etc.
- To: common-lisp @ SU-AI
- Subject: defconstant, eval-when, etc.
- From: Glenn S. Burke <GSB @ MIT-ML>
- Date: Thu, 09 Jun 1983 01:11:00 -0000
The one thing which needs to be clearly specified is how the semantics
of "added to the compilation environment" differs from what might be
done by (eval-when (compile) ...). If, for instance, defmacro does
not bash the runtime environment, then the user will have to use
eval-when if the macro needs to be usable via the interpreter during
the compilation. Eval-when should do exactly that: evaluate and bash
the runtime environment. Always, without exception, no matter what
"added to the compilation environment" might mean. My own experience
is that it is generally a loss for "added to the compilation
environment" to bash the runtime environment. Extracting necessary
declarative information from files in order to do multi-file
compilation carefully is not actually that difficult, and we have some
tools for doing this.
(I bring this up because i was just shafted by this in a very big way
bootstrapping LSB up in a lisp implementation which shall remain
nameless. Unfortunately the bootstrap procedure cannot use LSB
itself.)