Permalink
Browse files

1.0.44.35: Use DX-FLET instead of FLET in WITHOUT-{INTERRUPTS,GCING}.

  * 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).
  • Loading branch information...
1 parent a5bbce0 commit 55383ed448cbaeefc2dc91cdd24a6d5aa2810920 Alastair Bridgewater committed Nov 27, 2010
Showing with 3 additions and 3 deletions.
  1. +1 −1 src/code/signal.lisp
  2. +1 −1 src/code/sysmacs.lisp
  3. +1 −1 version.lisp-expr
View
2 src/code/signal.lisp
@@ -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
View
2 src/code/sysmacs.lisp
@@ -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)
View
2 version.lisp-expr
@@ -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"

0 comments on commit 55383ed

Please sign in to comment.