X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ftarget-main.lisp;h=08fdba6f320428efd20ba754e05a09472756cbf8;hb=3106aee96a20d1a76a114e504bc2931f8196cace;hp=78b8d035c30dd126a85bf6ec2472a08449d20ffe;hpb=d604a358d8e5eb5587989e0a4f1d31dbe6ac5ffe;p=sbcl.git diff --git a/src/compiler/target-main.lisp b/src/compiler/target-main.lisp index 78b8d03..08fdba6 100644 --- a/src/compiler/target-main.lisp +++ b/src/compiler/target-main.lisp @@ -62,6 +62,7 @@ (*last-format-string* nil) (*last-format-args* nil) (*last-message-count* 0) + (*last-error-context* nil) (*gensym-counter* 0) ;; KLUDGE: This rebinding of policy is necessary so that ;; forms such as LOCALLY at the REPL actually extend the @@ -93,9 +94,15 @@ (defun compile-in-lexenv (name definition lexenv) (multiple-value-bind (compiled-definition warnings-p failure-p) - (if (compiled-function-p definition) - (values definition nil nil) - (actually-compile name definition lexenv)) + (cond + #!+sb-eval + ((sb!eval:interpreted-function-p definition) + (multiple-value-bind (definition lexenv) + (sb!eval:prepare-for-compile definition) + (actually-compile name definition lexenv))) + ((compiled-function-p definition) + (values definition nil nil)) + (t (actually-compile name definition lexenv))) (cond (name (if (and (symbolp name) (macro-function name))