[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.