0.8.10.74:
authorChristophe Rhodes <csr21@cam.ac.uk>
Tue, 1 Jun 2004 10:36:16 +0000 (10:36 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Tue, 1 Jun 2004 10:36:16 +0000 (10:36 +0000)
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

NEWS
src/code/target-error.lisp
tests/condition.pure.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index bc9379c..369e216 100644 (file)
--- 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
index 4c8eb83..7b89317 100644 (file)
@@ -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)
index f594e99..0a4dd84 100644 (file)
 ;;; 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)))
index acf00fc..294e52c 100644 (file)
@@ -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"