X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fcode%2Fcold-init.lisp;h=3beb39706161f1c359168d228b96d255c105221d;hb=0d3d3a78055fa485985cda2df688f3cd7e9adb18;hp=6834b86bd65528991c5ef6843b75f66c83a538ce;hpb=01044af1b8d69fc3899dc0417064c1512223223d;p=sbcl.git diff --git a/src/code/cold-init.lisp b/src/code/cold-init.lisp index 6834b86..3beb397 100644 --- a/src/code/cold-init.lisp +++ b/src/code/cold-init.lisp @@ -49,7 +49,7 @@ ;;;; putting ourselves out of our misery when things become too much to bear -(declaim (ftype (function (simple-string) nil) critically-unreachable)) +(declaim (ftype (function (simple-string) nil) !cold-lose)) (defun !cold-lose (msg) (%primitive print msg) (%primitive print "too early in cold init to recover from errors") @@ -111,6 +111,9 @@ ;; this to be initialized, so we initialize it right away. (show-and-call !random-cold-init) + (show-and-call !character-database-cold-init) + + (show-and-call !early-package-cold-init) (show-and-call !package-cold-init) ;; All sorts of things need INFO and/or (SETF INFO). @@ -213,7 +216,9 @@ (show-and-call stream-cold-init-or-reset) (show-and-call !loader-cold-init) + (show-and-call !foreign-cold-init) (show-and-call signal-cold-init-or-reinit) + (/show0 "enabling internal errors") (setf (sb!alien:extern-alien "internal_errors_enabled" boolean) t) ;; FIXME: This list of modes should be defined in one place and @@ -262,9 +267,9 @@ (unix-code 0 unix-code-p) (unix-status unix-code)) #!+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. 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." (declare (type (signed-byte 32) unix-status unix-code)) (/show0 "entering QUIT") ;; FIXME: UNIX-CODE was deprecated in sbcl-0.6.8, after having been @@ -296,19 +301,10 @@ instead (which is another name for the same thing).")) ;; call site. (set-floating-point-modes :traps '(:overflow #!-netbsd :invalid :divide-by-zero)) - (sb!thread::maybe-install-futex-functions) - - ;; Clear pseudo atomic in case this core wasn't compiled with - ;; support. - ;; - ;; FIXME: In SBCL our cores are always compiled with support. So - ;; we don't need to do this, do we? At least not for this - ;; reason.. (Perhaps we should do it anyway in case someone - ;; manages to save an image from within a pseudo-atomic-atomic - ;; operation?) - #!+x86 (setf *pseudo-atomic-atomic* 0))) - (gc-on) - (gc)) + (sb!thread::maybe-install-futex-functions))) + (foreign-reinit) + (gc-reinit) + (mapc #'funcall *init-hooks*)) ;;;; some support for any hapless wretches who end up debugging cold ;;;; init code @@ -319,7 +315,7 @@ instead (which is another name for the same thing).")) (defun hexstr (thing) (/noshow0 "entering HEXSTR") (let ((addr (get-lisp-obj-address thing)) - (str (make-string 10))) + (str (make-string 10 :element-type 'base-char))) (/noshow0 "ADDR and STR calculated") (setf (char str 0) #\0 (char str 1) #\x)