X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ftarget-main.lisp;h=673c9987d4720dfecc81602b4ddf16ae24f5a97b;hb=872175cd9cb5b4966a36d4bd92421cc407a0355b;hp=d29ce80e54fb725ca876a23a86c8afd3bcdfb566;hpb=3b45a7b66afe95080562d266dd447b1286abece0;p=sbcl.git diff --git a/src/compiler/target-main.lisp b/src/compiler/target-main.lisp index d29ce80..673c998 100644 --- a/src/compiler/target-main.lisp +++ b/src/compiler/target-main.lisp @@ -57,7 +57,6 @@ (form `#',(get-lambda-to-compile definition)) (*source-info* (make-lisp-source-info form)) (*top-level-lambdas* ()) - (*converting-for-interpreter* nil) (*block-compile* nil) (*compiler-error-bailout* #'(lambda () @@ -108,16 +107,16 @@ to a compiled function, returning (VALUES THING WARNINGS-P FAILURE-P), where if NAME is NIL, THING is the result of compilation, and otherwise THING is NAME. When NAME is not NIL, the compiled function - is also set into (FDEFINITION NAME)." - ;;(format t "~&/in COMPILE NAME=~S DEFINITION=~S" name definition) ; REMOVEME + is also set into (MACRO-FUNCTION NAME) if NAME names a macro, or into + (FDEFINITION NAME) otherwise." (multiple-value-bind (compiled-definition warnings-p failure-p) (if (compiled-function-p definition) (values definition nil nil) (actually-compile name definition)) - ;;(format t "~&/COMPILED-DEFINITION=~S~%" compiled-definition) ; REMOVEME (cond (name - (unless failure-p - (setf (fdefinition name) compiled-definition)) + (if (macro-function name) + (setf (macro-function name) compiled-definition) + (setf (fdefinition name) compiled-definition)) (values name warnings-p failure-p)) (t (values compiled-definition warnings-p failure-p)))))