1.0.44.17: ir1: Declare UNWIND-PROTECT cleanup functions to be dynamic-extent.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Tue, 9 Nov 2010 19:45:50 +0000 (19:45 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Tue, 9 Nov 2010 19:45:50 +0000 (19:45 +0000)
  * Since we now have the analysis to do the right thing
for these functions, why not take advantage of it?

src/compiler/ir1-translators.lisp
version.lisp-expr

index 1556377..347c907 100644 (file)
@@ -1083,6 +1083,7 @@ due to normal completion or a non-local exit such as THROW)."
         ;; ,CLEANUP-FUN should probably be declared DYNAMIC-EXTENT,
         ;; and something can be done to make %ESCAPE-FUN have
         ;; dynamic extent too.
+        (declare (dynamic-extent #',cleanup-fun))
         (block ,drop-thru-tag
           (multiple-value-bind (,next ,start ,count)
               (block ,exit-tag
index 2d86753..20784af 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".)
-"1.0.44.16"
+"1.0.44.17"