From e317c20422b048971da71d04d0c2faddee7de64d Mon Sep 17 00:00:00 2001 From: William Harold Newman Date: Thu, 10 Oct 2002 18:07:54 +0000 Subject: [PATCH] 0.7.8.25: 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 | 5 +++++ src/code/defmacro.lisp | 36 +++++++++++++++++++----------------- version.lisp-expr | 2 +- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/BUGS b/BUGS index c66439053..4c07d1d76 100644 --- 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. diff --git a/src/code/defmacro.lisp b/src/code/defmacro.lisp index 276c6d4c0..b93621ba1 100644 --- a/src/code/defmacro.lisp +++ b/src/code/defmacro.lisp @@ -106,21 +106,23 @@ ;;; 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))) diff --git a/version.lisp-expr b/version.lisp-expr index 88c207a4d..47c993123 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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"