From: Christophe Rhodes Date: Tue, 1 Jun 2004 10:36:16 +0000 (+0000) Subject: 0.8.10.74: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=b1bc2f2142b25964c60d8a295afe1ecf289cd0c8;p=sbcl.git 0.8.10.74: Sneaking in under the wire before the door is bolted ... it's a pure bugfix anyway: make the CONTROL-ERROR in FIND-RESTART-OR-CONTROL-ERROR be printable --- diff --git a/NEWS b/NEWS index bc9379c..369e216 100644 --- a/NEWS +++ b/NEWS @@ -2479,6 +2479,9 @@ changes in sbcl-0.8.11 relative to sbcl-0.8.10: * fixed bug 327: system subclasses of STRUCTURE-OBJECT or CONDITION have CLOS classes; this appears also to have fixed reported instability in stack exhaustion detection. + * fixed bug: the CONTROL-ERROR from ABORT, CONTINUE and + MUFFLE-WARNING when no associated restart is present is now + printable. * optimization: rearranged the expansion of various defining macros so that each expands into only one top-level form in a :LOAD-TOPLEVEL context; this appears to decrease fasl sizes by diff --git a/src/code/target-error.lisp b/src/code/target-error.lisp index 4c8eb83..7b89317 100644 --- a/src/code/target-error.lisp +++ b/src/code/target-error.lisp @@ -87,7 +87,7 @@ (defun find-restart-or-control-error (identifier &optional condition) (or (find-restart identifier condition) (error 'simple-control-error - :format-control "No restart ~S is active ~{for ~S~}." + :format-control "No restart ~S is active~@[ for ~S~]." :format-arguments (list identifier condition)))) (defun invoke-restart (restart &rest values) diff --git a/tests/condition.pure.lisp b/tests/condition.pure.lisp index f594e99..0a4dd84 100644 --- a/tests/condition.pure.lisp +++ b/tests/condition.pure.lisp @@ -106,3 +106,11 @@ ;;; indeed, only declarations) (assert (null (handler-case (error "foo") (error () (declare (optimize speed)))))) + +(handler-case + (handler-bind ((warning #'muffle-warning)) + (signal 'warning)) + ;; if it's a control error, it had better be printable + (control-error (c) (format nil "~A" c)) + ;; there had better be an error + (:no-error (&rest args) (error "No error: ~S" args))) diff --git a/version.lisp-expr b/version.lisp-expr index acf00fc..294e52c 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.8.10.73" +"0.8.10.74"