0.7.9.64:
[sbcl.git] / src / code / defmacro.lisp
index adce1a7..2bc701b 100644 (file)
@@ -42,6 +42,8 @@
             ;; old note (ca. 1985, maybe:-): "Eventually %%DEFMACRO
             ;; should deal with clearing old compiler information for
             ;; the functional value."
+            ,@(unless set-args-p
+                '((declare (ignore lambda-list))))
             (ecase (info :function :kind name)
               ((nil))
               (:function
@@ -78,8 +80,8 @@
                       (#.sb!vm:closure-header-widetag
                        (setf (%simple-fun-arglist (%closure-fun definition))
                              lambda-list))
-                      ((#.sb-vm:simple-fun-header-widetag
-                        #.sb-vm:closure-fun-header-widetag)
+                      ((#.sb!vm:simple-fun-header-widetag
+                        #.sb!vm:closure-fun-header-widetag)
                        (setf (%simple-fun-arglist definition) lambda-list))))
             name))))
   (progn
 ;;; DEFMACRO-MUNDANELY is like SB!XC:DEFMACRO, except that it doesn't
 ;;; have any EVAL-WHEN or IR1 magic associated with it, so it only
 ;;; takes effect in :LOAD-TOPLEVEL or :EXECUTE situations.
-;;;
-;;; FIXME: It'd probably be good (especially for DEFMACRO)
-;;; to make this share more code with DEFMACRO.
 (def!macro defmacro-mundanely (name lambda-list &body body)
-  (let ((whole (gensym "WHOLE-"))
-       (environment (gensym "ENVIRONMENT-")))
-    (multiple-value-bind (new-body local-decs doc)
-       (parse-defmacro lambda-list whole body name 'defmacro
-                       :environment environment)
-      `(progn
-        (setf (sb!xc:macro-function ',name)
-              (lambda (,whole ,environment)
-                  ,@local-decs
-                  (block ,name
-                  ,new-body)))
-        (setf (fdocumentation ',name 'macro)
-              ,doc)
-        ',name))))
+
+  ;; old way:
+  ;;(let ((whole (gensym "WHOLE-"))
+  ;;      (environment (gensym "ENVIRONMENT-")))
+  ;;  (multiple-value-bind (new-body local-decs doc)
+  ;;      (parse-defmacro lambda-list whole body name 'defmacro
+  ;;                      :environment environment)
+  ;;    `(progn
+  ;;       (setf (sb!xc:macro-function ',name)
+  ;;             (lambda (,whole ,environment)
+  ;;                 ,@local-decs
+  ;;                 (block ,name
+  ;;                 ,new-body)))
+  ;;       (setf (fdocumentation ',name 'macro)
+  ;;             ,doc)
+  ;;       ',name)))
+
+  `(let ()
+     (sb!xc:defmacro ,name ,lambda-list ,@body)))