From: William Harold Newman Date: Sun, 19 May 2002 22:49:37 +0000 (+0000) Subject: 0.7.3.21: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=ffe8d65266ed7c2c67a0a6ce7ff0de633000037e;p=sbcl.git 0.7.3.21: merged fix for "Bug in COMPILE?" by Matthias Hoelzl (sbcl-devel 2002-05-13). (My interpretation of the problem in my reply on the same day seems to've been totally confused, and his fix looks fine to me now.) --- diff --git a/CREDITS b/CREDITS index f355e74..2a0a12b 100644 --- a/CREDITS +++ b/CREDITS @@ -572,9 +572,13 @@ Christophe Rhodes: it, like *BACKEND-FEATURES*). He's also contributed miscellaneous bug fixes. +Stig Erik Sandoe: + He showed how to convince the GNU toolchain to build SBCL in a way + which supports callbacks from C code into SBCL. + Brian Spilsbury: He wrote Unicode-capable versions of SBCL's character, string, and - stream operations. + stream types and operations on them. Raymond Toy: He continued to work on CMU CL after the SBCL fork, especially on @@ -582,7 +586,7 @@ Raymond Toy: ported to SBCL. Peter Van Eynde: - He wrestled the CLISP test suite into a portable test suite + He wrestled the CLISP test suite into a mostly portable test suite (clocc ansi-test) which can be used on SBCL, provided a slew of of bug reports resulting from that, and submitted many other bug reports as well. diff --git a/src/code/fdefinition.lisp b/src/code/fdefinition.lisp index 1864e5c..fd0fdd5 100644 --- a/src/code/fdefinition.lisp +++ b/src/code/fdefinition.lisp @@ -224,10 +224,10 @@ This is SETF'able." (let ((fun (%coerce-name-to-fun name))) (loop - (let ((encap-info (encapsulation-info fun))) - (if encap-info - (setf fun (encapsulation-info-definition encap-info)) - (return fun)))))) + (let ((encap-info (encapsulation-info fun))) + (if encap-info + (setf fun (encapsulation-info-definition encap-info)) + (return fun)))))) (defvar *setf-fdefinition-hook* nil #!+sb-doc diff --git a/src/compiler/target-main.lisp b/src/compiler/target-main.lisp index b1c0230..23bfb23 100644 --- a/src/compiler/target-main.lisp +++ b/src/compiler/target-main.lisp @@ -76,7 +76,8 @@ :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), diff --git a/tests/compiler.impure.lisp b/tests/compiler.impure.lisp index ce7ef42..a1e239b 100644 --- a/tests/compiler.impure.lisp +++ b/tests/compiler.impure.lisp @@ -88,6 +88,12 @@ (if (and (< ind ind) (typep (char string ind) '(member #\1))) nil)))))) + +;;; bug reported and fixed by Matthias Hoelzl sbcl-devel 2002-05-13 +(defmacro foo-2002-05-13 () ''x) +(eval '(foo-2002-05-13)) +(compile 'foo-2002-05-13) +(foo-2002-05-13) ; (The bug caused UNDEFINED-FUNCTION to be signalled here.) ;;;; tests not in the problem domain, but of the consistency of the ;;;; compiler machinery itself diff --git a/version.lisp-expr b/version.lisp-expr index a0d27bc..e7b5ceb 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; for internal versions, especially for internal versions off the ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.3.20" +"0.7.3.21"