X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fcold-init.lisp;h=f0c780a1c3d4c4220e1142bcd565c558e1302836;hb=11ff63e3084c27b8a3360054bd9a60b3cdb49cf1;hp=c9b734a9699b31ae1aefb88b773bcb3ab9c4cfd4;hpb=c548f73e8dd676d6ec4576eba6ab661a5061bdfe;p=sbcl.git diff --git a/src/code/cold-init.lisp b/src/code/cold-init.lisp index c9b734a..f0c780a 100644 --- a/src/code/cold-init.lisp +++ b/src/code/cold-init.lisp @@ -104,7 +104,8 @@ *current-error-depth* 0 *cold-init-complete-p* nil *type-system-initialized* nil - sb!vm:*alloc-signal* nil) + sb!vm:*alloc-signal* nil + sb!kernel::*gc-epoch* (cons nil nil)) ;; I'm not sure where eval is first called, so I put this first. #!+sb-eval @@ -270,10 +271,12 @@ (defun quit (&key recklessly-p (unix-status 0)) #!+sb-doc - "Terminate the current Lisp. Things are cleaned up (with -UNWIND-PROTECT and so forth) unless RECKLESSLY-P is non-NIL. On -UNIX-like systems, UNIX-STATUS is used as the status code." + "Terminate the current Lisp. *EXIT-HOOKS* are pending unwind-protect +cleanup forms are run unless RECKLESSLY-P is true. On UNIX-like +systems, UNIX-STATUS is used as the status code." (declare (type (signed-byte 32) unix-status)) + ;; FIXME: Windows is not "unix-like", but still has the same + ;; unix-status... maybe we should just revert to calling it :STATUS? (/show0 "entering QUIT") (if recklessly-p (sb!unix:unix-exit unix-status) @@ -294,7 +297,7 @@ UNIX-like systems, UNIX-STATUS is used as the status code." (without-gcing (os-cold-init-or-reinit) (thread-init-or-reinit) - (stream-reinit) + (stream-reinit t) #!-win32 (signal-cold-init-or-reinit) (setf (sb!alien:extern-alien "internal_errors_enabled" boolean) t) @@ -306,9 +309,7 @@ UNIX-like systems, UNIX-STATUS is used as the status code." ;; re-disable ldb again. (when (eq *invoke-debugger-hook* 'sb!debug::debugger-disabled-hook) (sb!debug::disable-debugger)) - (dolist (hook *init-hooks*) - (with-simple-restart (continue "Skip this initialization hook.") - (funcall hook)))) + (call-hooks "initialization" *init-hooks*)) ;;;; some support for any hapless wretches who end up debugging cold ;;;; init code