1.0.44.35: Use DX-FLET instead of FLET in WITHOUT-{INTERRUPTS,GCING}.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sat, 27 Nov 2010 03:02:03 +0000 (03:02 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sat, 27 Nov 2010 03:02:03 +0000 (03:02 +0000)
  * With the local functions declared to be DYNAMIC-EXTENT, the
new d-x closure analysis can elide the value cells involved
entirely.

  * This fixes lp#674458 (introduced in 1.0.44.16).

src/code/signal.lisp
src/code/sysmacs.lisp
version.lisp-expr

index 8d21743..9092524 100644 (file)
@@ -102,7 +102,7 @@ WITHOUT-INTERRUPTS in:
     (lambda () (with-local-interrupts ...)))
 "
   (with-unique-names (outer-allow-with-interrupts without-interrupts-body)
-    `(flet ((,without-interrupts-body ()
+    `(dx-flet ((,without-interrupts-body ()
               (declare (disable-package-locks allow-with-interrupts
                                               with-local-interrupts))
               (macrolet
index 3ca4ff8..59b8b45 100644 (file)
@@ -51,7 +51,7 @@ system will be deadlocked. Since SBCL does not currently document its internal
 locks, application code can never be certain that this invariant is
 maintained."
   (with-unique-names (without-gcing-body)
-    `(flet ((,without-gcing-body ()
+    `(dx-flet ((,without-gcing-body ()
               ,@body))
        (if *gc-inhibit*
            (,without-gcing-body)
index d82d36f..e3ce30c 100644 (file)
@@ -20,4 +20,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.34"
+"1.0.44.35"