(*toplevel-lambdas* ())
(*block-compile* nil)
(*compiler-error-bailout*
- #'(lambda ()
- (compiler-mumble
- "~2&fatal error, aborting compilation~%")
- (return-from actually-compile (values nil t nil))))
+ (lambda ()
+ (compiler-mumble
+ "~2&fatal error, aborting compilation~%")
+ (return-from actually-compile (values nil t nil))))
(*current-path* nil)
(*last-source-context* nil)
(*last-original-source* nil)
:name name
:path '(original-source-start 0 0))))))
-(defun compile (name &optional (definition (fdefinition name)))
+(defun compile (name &optional (definition (or (macro-function name)
+ (fdefinition name))))
#!+sb-doc
"Coerce DEFINITION (by default, the function whose name is NAME)
to a compiled function, returning (VALUES THING WARNINGS-P FAILURE-P),
(values definition nil nil)
(actually-compile name definition))
(cond (name
- (if (macro-function name)
+ (if (and (symbolp name)
+ (macro-function name))
(setf (macro-function name) compiled-definition)
(setf (fdefinition name) compiled-definition))
(values name warnings-p failure-p))