0.8.5.38:
authorChristophe Rhodes <csr21@cam.ac.uk>
Sat, 15 Nov 2003 15:21:00 +0000 (15:21 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Sat, 15 Nov 2003 15:21:00 +0000 (15:21 +0000)
Fix PFDtest HANDLER-CASE.28
... wrap in LOCALLY

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

diff --git a/NEWS b/NEWS
index c14cbad..884d56b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2189,6 +2189,8 @@ changes in sbcl-0.8.6 relative to sbcl-0.8.5:
     ** implementation of ASH-MOD32 on X86 did not work for the shift
        greater than 32.
     ** FLUSH-DEST did not mark blocks for type check regeneration.
+    ** HANDLER-CASE failed to accept declarations in handler clauses
+       in some circumstances.
 
 planned incompatible changes in 0.8.x:
   * (not done yet, but planned:) When the profiling interface settles
index f05fb0a..149997f 100644 (file)
                                        `(let ((,(caaddr annotated-case)
                                                ,var))
                                           ,@body))
-                                      ((not (cdr body))
-                                       (car body))
                                       (t
-                                       `(progn ,@body)))))))
+                                       `(locally ,@body)))))))
                   annotated-cases))))))))
 \f
 ;;;; miscellaneous
index cf6bb96..f594e99 100644 (file)
                                         :failed)))))
          (cerror (formatter "Continue from ~A") "bug ~A" :bug)))
      :passed))
+
+;;; clauses in HANDLER-CASE are allowed to have declarations (and
+;;; indeed, only declarations)
+(assert 
+ (null (handler-case (error "foo") (error () (declare (optimize speed))))))
index f4b1d15..223a313 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.5.37"
+"0.8.5.38"