;;;; -*- 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
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 <!-- FIXME: This is a "changebar" section from the CMU CL manual.
;; People have various good reasons to mess with the GC.
"*AFTER-GC-HOOKS*"
"BYTES-CONSED-BETWEEN-GCS"
- "GC" "GC-OFF" "GC-ON" "GET-BYTES-CONSED"
+ "GC" "GET-BYTES-CONSED"
"*GC-RUN-TIME*"
"PURIFY"
#!+hpux (sb!sys:%primitive sb!vm::setup-return-from-lisp-stub)
;; The system is finally ready for GC.
(/show0 "enabling GC")
- (gc-on)
+ (setq *gc-inhibit* nil)
(/show0 "doing first GC")
(gc :full t)
(/show0 "back from first GC")
(declaim (type unsigned-byte *n-bytes-freed-or-purified*))
(defvar *n-bytes-freed-or-purified* 0)
(defun gc-reinit ()
- (gc-on)
+ (setq *gc-inhibit* nil)
(gc)
(setf *n-bytes-freed-or-purified* 0
*gc-run-time* 0
(or #!+sb-thread *stop-for-gc-pending*
*gc-pending*))
(sb!unix::receive-pending-interrupt)))
-
-;;; These work both regardless of whether we're inside WITHOUT-GCING
-;;; or not.
-(defun gc-on ()
- #!+sb-doc
- "Enable the garbage collector."
- (setq *gc-inhibit* nil)
- (maybe-handle-pending-gc)
- nil)
-
-(defun gc-off ()
- #!+sb-doc
- "Disable the garbage collector."
- (setq *gc-inhibit* t)
- nil)
(let ((gc-happend nil))
(push (lambda () (setq gc-happend t)) sb-ext:*after-gc-hooks*)
- ;; check GC-{ON,OFF} works and gc is deferred
- (gc-off)
- (gc)
- (assert (not gc-happend))
- (gc-on)
- (assert gc-happend)
-
;; check that WITHOUT-GCING defers explicit gc
- (setq gc-happend nil)
(sb-sys:without-gcing
(gc)
(assert (not gc-happend)))
(assert (not gc-happend)))
;; give the hook time to run
(sleep 1)
- (assert gc-happend))
-
- ;; check GC-ON works even in a WITHOUT-GCING
- (setq gc-happend nil)
- (sb-sys:without-gcing
- (gc)
- (assert (not gc-happend))
- (gc-on)
- (assert gc-happend)
- (setq gc-happend nil))
- (assert (not gc-happend)))
+ (assert gc-happend)))
;;; 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.25.30"
+"1.0.25.31"