X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Feval.lisp;h=b33ca523492a03d9cb1c48842ee869b5c0106047;hb=ad3beba970fab6e451a461c9f9b14faf4ef17718;hp=440b59d56b5227912686662f9dfbb600e3eba373;hpb=dfe6138af5c38d92568b6dac48e852c01be0ec8e;p=sbcl.git diff --git a/src/code/eval.lisp b/src/code/eval.lisp index 440b59d..b33ca52 100644 --- a/src/code/eval.lisp +++ b/src/code/eval.lisp @@ -20,7 +20,7 @@ ;; to be careful about not muffling warnings arising from inner ;; evaluations/compilations, though [e.g. the ignored variable in ;; (DEFUN FOO (X) 1)]. -- CSR, 2003-05-13 - (let ((fun (sb!c:compile-in-lexenv (gensym "EVAL-TMPFUN-") + (let ((fun (sb!c:compile-in-lexenv nil `(lambda () ,expr) lexenv))) (funcall fun))) @@ -70,7 +70,7 @@ (sb!c::process-decls decls vars nil - lexenv)))) + :lexenv lexenv)))) (eval-progn-body body lexenv)))) (defun eval (original-exp) @@ -144,8 +144,8 @@ ((null (cddr args)) ;; We duplicate the call to SET so that the ;; correct value gets returned. - (set (first args) (eval (second args)))) - (set (first args) (eval (second args))))) + (set (first args) (eval-in-lexenv (second args) lexenv))) + (set (first args) (eval-in-lexenv (second args) lexenv)))) (let ((symbol (first name))) (case (info :variable :kind symbol) (:special)