X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fsave.lisp;h=55d289746546967a5d47abc00e389a0b2ae621a9;hb=b8f63d9b4e978bec3bfc1f4fc471e5ed946781fd;hp=b61733d897968e497609abb157cafacc19a72dc0;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/code/save.lisp b/src/code/save.lisp index b61733d..55d2897 100644 --- a/src/code/save.lisp +++ b/src/code/save.lisp @@ -14,9 +14,6 @@ ;;;; files for more information. (in-package "SB!IMPL") - -(file-comment - "$Header$") (defvar *before-save-initializations* nil #!+sb-doc @@ -42,7 +39,7 @@ ;;; image to make a running Lisp, the memory never gets reclaimed. ;;; (But with the PURIFY option it seems to work OK.) (defun save-lisp-and-die (core-file-name &key - (toplevel #'toplevel) + (toplevel #'toplevel-init) (purify nil) (root-structures ()) (environment-name "auxiliary")) @@ -93,14 +90,11 @@ (dolist (f *before-save-initializations*) (funcall f)) (flet ((restart-lisp () - (sb!unix:unix-exit - (catch '%end-of-the-world - (reinit) - ;; FIXME: Wouldn't it be more correct to do this running - ;; backwards through the list, instead of forwards? - (dolist (f *after-save-initializations*) - (funcall f)) - (funcall toplevel))))) + (handling-end-of-the-world + (reinit) + (dolist (f *after-save-initializations*) + (funcall f)) + (funcall toplevel)))) ;; FIXME: Perhaps WITHOUT-GCING should be wrapped around the ;; LET as well, to avoid the off chance of an interrupt triggering ;; GC and making our saved RESTART-LISP address invalid? @@ -110,8 +104,8 @@ ;;;; functions used by worldload.lisp in CMU CL bootstrapping -;;; If Name has been byte-compiled, and :RUNTIME is a feature, then load the -;;; byte-compiled version, otherwise just do normal load. +;;; If NAME has been byte-compiled, and :RUNTIME is a feature, then +;;; load the byte-compiled version, otherwise just do normal load. #+nil ; no longer needed in SBCL.. I think.. -- WHN 19990814 (defun maybe-byte-load (name &optional (load-native t)) (let ((bname (make-pathname