0.7.8.25:
authorWilliam Harold Newman <william.newman@airmail.net>
Thu, 10 Oct 2002 18:07:54 +0000 (18:07 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Thu, 10 Oct 2002 18:07:54 +0000 (18:07 +0000)
Reimplement DEFMACRO-MUNDANELY as (LET () (SB!XC:DEFMACRO ...)).
(still doesn't fix the problem of borken macro lambda
lists as reported by DESCRIBE 'WITH-OPEN-FILE, alas,
but seems nice for OAOOness)
added tonyms bug report: :SB-FLUID not working

BUGS
src/code/defmacro.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index c664390..4c07d1d 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1236,6 +1236,11 @@ WORKAROUND:
   b. The body of (EVAL-WHEN (:COMPILE-TOPLEVEL) ...) is evaluated in
      the null lexical environment.
 
+206: ":SB-FLUID feature broken"
+  (reported by Antonio Martinez-Shotton sbcl-devel 2002-10-07)
+  Enabling :SB-FLUID in the target-features list in sbcl-0.7.8 breaks
+  the build.
+
 DEFUNCT CATEGORIES OF BUGS
   IR1-#:
     These labels were used for bugs related to the old IR1 interpreter.
index 276c6d4..b93621b 100644 (file)
 ;;; 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)))
index 88c207a..47c9931 100644 (file)
@@ -18,4 +18,4 @@
 ;;; internal versions off the main CVS branch, it gets hairier, e.g.
 ;;; "0.pre7.14.flaky4.13".)
 
-"0.7.8.24"
+"0.7.8.25"