From 8977ab898eab890a11eb9b4bab72c42561f0dc22 Mon Sep 17 00:00:00 2001 From: Juho Snellman Date: Thu, 13 Oct 2005 00:01:36 +0000 Subject: [PATCH] 0.9.5.53: More merging. SAVE-LISP-AND-DIE defaults to not purifying on GENCGC platforms. --- NEWS | 4 ++++ make-target-2.sh | 2 +- src/code/save.lisp | 9 ++++++--- version.lisp-expr | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index e9ad9cd..0e1e389 100644 --- a/NEWS +++ b/NEWS @@ -36,6 +36,10 @@ changes in sbcl-0.9.6 relative to sbcl-0.9.5: ** SUBTYPEP is slightly more accurate on heinously complicated CONS types where some of the members have uncertain (in the NIL, NIL sense) type relationships to each other. + * GENCGC + ** Cores produced by SAVE-LISP-AND-DIE on GENCGC platforms are + no longer purified unless :PURIFY T is explicitly specified. + ** Non-purified cores are significantly smaller than before changes in sbcl-0.9.5 relative to sbcl-0.9.4: * new feature: timers based on Zach Beane's excellent timer package diff --git a/make-target-2.sh b/make-target-2.sh index ceacef7..783d442 100644 --- a/make-target-2.sh +++ b/make-target-2.sh @@ -96,5 +96,5 @@ echo //doing warm init ;; defined. (sb-kernel::ctype-of-cache-clear) (setq sb-c::*flame-on-necessarily-undefined-function* t) - (sb-ext:save-lisp-and-die "output/sbcl.core" :purify t) + (sb-ext:save-lisp-and-die "output/sbcl.core") EOF diff --git a/src/code/save.lisp b/src/code/save.lisp index 5398a5e..da69f13 100644 --- a/src/code/save.lisp +++ b/src/code/save.lisp @@ -30,7 +30,8 @@ (defun save-lisp-and-die (core-file-name &key (toplevel #'toplevel-init) - (purify t) + (purify #!+gencgc nil + #!-gencgc t) (root-structures ()) (environment-name "auxiliary")) #!+sb-doc @@ -47,12 +48,14 @@ The following &KEY arguments are defined: not return. :PURIFY - If true (the default), do a purifying GC which moves all + If true (the default on cheneygc), do a purifying GC which moves all dynamically allocated objects into static space. This takes somewhat longer than the normal GC which is otherwise done, but it's only done once, and subsequent GC's will be done less often and will take less time in the resulting core file. See the PURIFY - function. + function. For platforms that use the generational garbage collector + (x86 and x86-64) purification generally results in a loss of + performance. :ROOT-STRUCTURES This should be a list of the main entry points in any newly loaded diff --git a/version.lisp-expr b/version.lisp-expr index 8963d33..e2bd1b9 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,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".) -"0.9.5.52" +"0.9.5.53" -- 1.7.10.4