diff --git a/compiler/ir1tran.lisp b/compiler/ir1tran.lisp index 67036366cc95adcb605bff9ab640348082e25aa7..e10b903e52a645ce2948acf6c607ee3eb0d61890 100644 --- a/compiler/ir1tran.lisp +++ b/compiler/ir1tran.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1tran.lisp,v 1.93 1993/08/06 13:11:02 ram Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1tran.lisp,v 1.94 1993/08/17 22:42:15 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -2183,15 +2183,17 @@ ;;; (defun do-eval-when-stuff (situations body fun) (when (or (not (listp situations)) - (set-difference situations '(compile load eval))) + (set-difference situations + '(compile load eval + :compile-top-level :load-top-level :execute))) (compiler-error "Bad Eval-When situation list: ~S." situations)) - (let* ((do-eval (and (member 'compile situations) + (let* ((do-eval (and (intersection '(compile :compile-top-level) situations) (not lisp::*already-evaled-this*))) (lisp::*already-evaled-this* t)) (when do-eval (eval `(progn ,@body))) - (if (member 'load situations) + (if (intersection '(:load-top-level load :execute eval) situations) (funcall fun body) (funcall fun '(nil)))))