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


I CC'ed this to cl-compiler instead of x3j13.

Your sample implementation of EVAL-WHEN as a macro has some of the
usual bugs caused by relying on binding special variables.  This is
alleviated somewhat in this instance by having EVAL bind *COMPILING-P*
to NIL, but that causes the rather bizarre behavior of breaking
completely if the EVAL-WHEN macro itself, or any part of the compiler
surrounding the macro processing, is run interpretively.  The real
cure for this is COMPILE-FILE-ENVIRONMENT.  The EVAL-WHEN macro should
look at its environment to determine whether it is in the interpreter
or the compiler.