X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fcold-init.lisp;h=d8c11605347dea9d2c21e6d678a4833ebcaa46a9;hb=65b5ab7e713d04e0d76bc0ee196374f6e57b922f;hp=63362b7b86f2be11b9e45a073c207a1e4ad9b06d;hpb=90d05e4ae39a451ce13a25f4467d0d280ff49593;p=sbcl.git diff --git a/src/code/cold-init.lisp b/src/code/cold-init.lisp index 63362b7..d8c1160 100644 --- a/src/code/cold-init.lisp +++ b/src/code/cold-init.lisp @@ -93,10 +93,12 @@ ;; *TYPE-SYSTEM-INITIALIZED-WHEN-BOUND* so that it doesn't need to ;; be explicitly set in order to be meaningful. (setf *after-gc-hooks* nil + *in-without-gcing* nil *gc-inhibit* t *gc-pending* nil #!+sb-thread *stop-for-gc-pending* #!+sb-thread nil *allow-with-interrupts* t + sb!unix::*unblock-deferrables-on-enabling-interrupts-p* nil *interrupts-enabled* t *interrupt-pending* nil *break-on-signals* nil @@ -141,6 +143,7 @@ ;; forms run. (show-and-call !type-class-cold-init) (show-and-call !typedefs-cold-init) + (show-and-call !world-lock-cold-init) (show-and-call !classes-cold-init) (show-and-call !early-type-cold-init) (show-and-call !late-type-cold-init) @@ -196,15 +199,10 @@ (setf (svref *!load-time-values* (third toplevel-thing)) (funcall (second toplevel-thing)))) (:load-time-value-fixup - (setf (sap-ref-word (second toplevel-thing) 0) + (setf (sap-ref-word (int-sap (get-lisp-obj-address (second toplevel-thing))) + (third toplevel-thing)) (get-lisp-obj-address - (svref *!load-time-values* (third toplevel-thing))))) - #!+(and (or x86 x86-64) gencgc) - (:load-time-code-fixup - (sb!vm::!envector-load-time-code-fixup (second toplevel-thing) - (third toplevel-thing) - (fourth toplevel-thing) - (fifth toplevel-thing))) + (svref *!load-time-values* (fourth toplevel-thing))))) (t (!cold-lose "bogus fixup code in *!REVERSED-COLD-TOPLEVELS*")))) (t (!cold-lose "bogus function in *!REVERSED-COLD-TOPLEVELS*"))))) @@ -225,6 +223,8 @@ (show-and-call !late-proclaim-cold-init) (show-and-call os-cold-init-or-reinit) + (show-and-call !pathname-cold-init) + (show-and-call !debug-info-cold-init) (show-and-call stream-cold-init-or-reset) (show-and-call !loader-cold-init) @@ -258,9 +258,11 @@ (/show0 "done initializing, setting *COLD-INIT-COMPLETE-P*") (setf *cold-init-complete-p* t) + ; hppa heap is segmented, lisp and c uses a stub to call eachother + #!+hpux (sb!sys:%primitive sb!vm::setup-return-from-lisp-stub) ;; The system is finally ready for GC. (/show0 "enabling GC") - (gc-on) + (setq *gc-inhibit* nil) (/show0 "doing first GC") (gc :full t) (/show0 "back from first GC") @@ -274,7 +276,7 @@ (defun quit (&key recklessly-p (unix-status 0)) #!+sb-doc - "Terminate the current Lisp. *EXIT-HOOKS* are pending unwind-protect + "Terminate the current Lisp. *EXIT-HOOKS* and 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))