[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
issue EVAL-WHEN-NON-TOP-LEVEL
- To: sandra%defun@cs.utah.edu
- Subject: issue EVAL-WHEN-NON-TOP-LEVEL
- From: Eric Benson <eb@lucid.com>
- Date: Fri, 23 Sep 88 17:26:23 pdt
- Cc: cl-compiler@sail.stanford.edu
- In-reply-to: Sandra J Loosemore's message of Fri, 23 Sep 88 11:53:07 MDT <8809231753.AA02502@defun.utah.edu>
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.