X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fdefmacro.lisp;h=21caf2d7612aefd9590b9961b815a40e8a830d6e;hb=dcb73f3edef1e31078fbe585e2fafbd26743efd7;hp=aec98f0a63cb4b167569533b94f0cebe8c61c816;hpb=22b819c0cd0ca0ea5be52ba280b9e9e0b8e86210;p=sbcl.git diff --git a/src/code/defmacro.lisp b/src/code/defmacro.lisp index aec98f0..21caf2d 100644 --- a/src/code/defmacro.lisp +++ b/src/code/defmacro.lisp @@ -33,18 +33,18 @@ name)) (with-unique-names (whole environment) (multiple-value-bind (new-body local-decs doc) - (parse-defmacro lambda-list whole body name 'defmacro - :environment environment) - (let ((def `(lambda (,whole ,environment) - ,@local-decs - (block ,name - ,new-body))) - ;; if we want to move over to list-style names - ;; [e.g. (DEFMACRO FOO), maybe to support some XREF-like - ;; functionality] here might be a good place to start. - (debug-name (debug-namify "DEFMACRO ~S" name))) - `(eval-when (:compile-toplevel :load-toplevel :execute) - (sb!c::%defmacro ',name #',def ',lambda-list ,doc ,debug-name))))))) + (parse-defmacro lambda-list whole body name 'defmacro + :environment environment) + (let ((def `(lambda (,whole ,environment) + ,@local-decs + ,new-body)) + ;; If we want to move over to list-style names + ;; [e.g. (DEFMACRO FOO), maybe to support some XREF-like + ;; functionality] here might be a good place to start. + (debug-name (sb!c::debug-name 'macro-function name))) + `(eval-when (:compile-toplevel :load-toplevel :execute) + (sb!c::%defmacro ',name #',def ',lambda-list + ,doc ',debug-name))))))) (macrolet ((def (times set-p) @@ -91,12 +91,11 @@ (#.sb!vm:closure-header-widetag (setf (%simple-fun-arglist (%closure-fun definition)) lambda-list - (%simple-fun-name (%closure-fun definition)) - debug-name)) - ((#.sb!vm:simple-fun-header-widetag - #.sb!vm:closure-fun-header-widetag) + (%simple-fun-name (%closure-fun definition)) + debug-name)) + (#.sb!vm:simple-fun-header-widetag (setf (%simple-fun-arglist definition) lambda-list - (%simple-fun-name definition) debug-name)))) + (%simple-fun-name definition) debug-name)))) name)))) (progn (def (:load-toplevel :execute) #-sb-xc-host t #+sb-xc-host nil)