From 55383ed448cbaeefc2dc91cdd24a6d5aa2810920 Mon Sep 17 00:00:00 2001 From: Alastair Bridgewater Date: Sat, 27 Nov 2010 03:02:03 +0000 Subject: [PATCH] 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). --- src/code/signal.lisp | 2 +- src/code/sysmacs.lisp | 2 +- version.lisp-expr | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/code/signal.lisp b/src/code/signal.lisp index 8d21743..9092524 100644 --- a/src/code/signal.lisp +++ b/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 diff --git a/src/code/sysmacs.lisp b/src/code/sysmacs.lisp index 3ca4ff8..59b8b45 100644 --- a/src/code/sysmacs.lisp +++ b/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) diff --git a/version.lisp-expr b/version.lisp-expr index d82d36f..e3ce30c 100644 --- a/version.lisp-expr +++ b/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" -- 1.7.10.4