X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fsave.lisp;h=ea67cfb04e408b00385d908feabd2bfd96ee2706;hb=b0b168c08b31a748150f404398af754f26fd4813;hp=cd6e61d87909405817091a188c2cecaef7177fdc;hpb=aa2dc9529460ea0d9c99998dc87283fc1a43e808;p=sbcl.git diff --git a/src/code/save.lisp b/src/code/save.lisp index cd6e61d..ea67cfb 100644 --- a/src/code/save.lisp +++ b/src/code/save.lisp @@ -15,23 +15,11 @@ (in-package "SB!IMPL") -(defvar *before-save-initializations* nil - #!+sb-doc - "This is a list of functions which are called before creating a saved core - image. These functions are executed in the child process which has no ports, - so they cannot do anything that tries to talk to the outside world.") - -(defvar *after-save-initializations* nil - #!+sb-doc - "This is a list of functions which are called when a saved core image starts - up. The system itself should be initialized at this point, but applications - might not be.") - ;;;; SAVE-LISP-AND-DIE itself -(sb!alien:def-alien-routine "save" (sb!alien:boolean) +(sb!alien:define-alien-routine "save" (sb!alien:boolean) (file sb!c-call:c-string) - (initial-function (sb!alien:unsigned #.sb!vm:word-bits))) + (initial-fun (sb!alien:unsigned #.sb!vm:n-word-bits))) ;;; FIXME: When this is run without the PURIFY option, ;;; it seems to save memory all the way up to the high-water mark, @@ -40,7 +28,7 @@ ;;; (But with the PURIFY option it seems to work OK.) (defun save-lisp-and-die (core-file-name &key (toplevel #'toplevel-init) - (purify nil) + (purify t) (root-structures ()) (environment-name "auxiliary")) #!+sb-doc @@ -76,8 +64,6 @@ saved core is loaded." #!+mp (sb!mp::shutdown-multi-processing) - (when (fboundp 'sb!eval:flush-interpreted-function-cache) - (sb!eval:flush-interpreted-function-cache)) ;; FIXME: What is this for? Explain. (when (fboundp 'cancel-finalization) (cancel-finalization sb!sys:*tty*))