From 75de197e44a87ba221e7da2480429759a2134d9e Mon Sep 17 00:00:00 2001 From: Gabor Melis Date: Mon, 16 Feb 2009 21:48:20 +0000 Subject: [PATCH] 1.0.25.31: axe GC-{ON,OFF} ... because they are broken, nobody uses them (?), and complicated to fix. Rationale: - There is no way to safely allow gc in a WITHOUT-GCING without making it entirely useless (nothing like the interrupt protocol with ALLOW-WITH-INTERRUPTS). - WITHOUT-GCING implies WITHOUT-INTERRUPTS because interrupts running with gc disabled may lead to deadlocks (see internals manual on lock ordering and WITHOUT-GCING) or running out of memory. To adhere to this contract GC-{ON,OFF} would need to enable/disable interrupts by setting *INTERRUPTS-ENABLED*, comlicated business for little gain. --- NEWS | 2 ++ doc/manual/ffi.texinfo | 3 +-- package-data-list.lisp-expr | 2 +- src/code/cold-init.lisp | 2 +- src/code/gc.lisp | 17 +---------------- tests/gc.impure.lisp | 20 +------------------- version.lisp-expr | 2 +- 7 files changed, 8 insertions(+), 40 deletions(-) diff --git a/NEWS b/NEWS index 9a946f9..b47062d 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,7 @@ ;;;; -*- coding: utf-8; fill-column: 78 -*- changes in sbcl-1.0.26 relative to 1.0.25: + * incompatible change: GC-OFF and GC-ON are removed, they were + always unsafe. Use WITHOUT-GCING instead. * new feature: runtime option --disable-ldb * new feature: runtime option --lose-on-corruption to die at the slightest hint of possibly non-recoverable errors: running out of diff --git a/doc/manual/ffi.texinfo b/doc/manual/ffi.texinfo index 0c97c3c..b65b2bc 100644 --- a/doc/manual/ffi.texinfo +++ b/doc/manual/ffi.texinfo @@ -969,8 +969,7 @@ other ports it is implemented by turning off GC for the duration (so could be said to have a whole-world granularity). @item -Disable GC, using the @code{without-gcing} macro or @code{gc-off} -call. +Disable GC, using the @code{without-gcing} macro. @end enumerate @c