0.7.3.1:
[sbcl.git] / src / code / cold-init.lisp
index 2390630..f2dca7d 100644 (file)
@@ -99,6 +99,7 @@
         *cold-init-complete-p* nil
         *type-system-initialized* nil)
 
+  (show-and-call !exhaust-cold-init)
   (show-and-call !typecheckfuns-cold-init)
 
   ;; Anyone might call RANDOM to initialize a hash value or something;
                   (svref *!load-time-values* (third toplevel-thing)))))
           #!+(and x86 gencgc)
           (:load-time-code-fixup
-           (sb!vm::!do-load-time-code-fixup (second toplevel-thing)
-                                            (third  toplevel-thing)
-                                            (fourth toplevel-thing)
-                                            (fifth  toplevel-thing)))
+           (sb!vm::!envector-load-time-code-fixup (second toplevel-thing)
+                                                  (third  toplevel-thing)
+                                                  (fourth toplevel-thing)
+                                                  (fifth  toplevel-thing)))
           (t
            (!cold-lose "bogus fixup code in *!REVERSED-COLD-TOPLEVELS*"))))
        (t (!cold-lose "bogus function in *!REVERSED-COLD-TOPLEVELS*")))))
 
   ;; FIXME: This list of modes should be defined in one place and
   ;; explicitly shared between here and REINIT.
-  ;;
-  ;; FIXME: In CMU CL, this is done "here" (i.e. in the analogous
-  ;; lispinit.lisp code) for every processor architecture. But Daniel
-  ;; Barlow's Alpha patches suppress it for Alpha. Why the difference?
-  #!+alpha
-  (set-floating-point-modes :traps '(:overflow
-                                    #!-x86 :underflow
-                                    :invalid
-                                    :divide-by-zero))
+
+  ;; Why was this marked #!+alpha?  CMUCL does it here on all architectures
+  (set-floating-point-modes :traps '(:overflow :invalid :divide-by-zero))
 
   (show-and-call !class-finalize)
 
@@ -278,18 +273,12 @@ instead (which is another name for the same thing)."))
       (signal-cold-init-or-reinit)
       (gc-reinit)
       (setf (sb!alien:extern-alien "internal_errors_enabled" boolean) t)
-      (set-floating-point-modes :traps
-                               '(:overflow
-                                 :invalid
-                                 :divide-by-zero
-                                 ;; PRINT seems not to like x86 NPX
-                                 ;; denormal floats like
-                                 ;; LEAST-NEGATIVE-SINGLE-FLOAT, so
-                                 ;; the :UNDERFLOW exceptions are
-                                 ;; disabled by default. Joe User can
-                                 ;; explicitly enable them if
-                                 ;; desired.
-                                 #!-x86 :underflow))
+      ;; PRINT seems not to like x86 NPX denormal floats like
+      ;; LEAST-NEGATIVE-SINGLE-FLOAT, so the :UNDERFLOW exceptions are
+      ;; disabled by default. Joe User can explicitly enable them if
+      ;; desired.
+      (set-floating-point-modes :traps '(:overflow :invalid :divide-by-zero))
+
       ;; Clear pseudo atomic in case this core wasn't compiled with
       ;; support.
       ;;
@@ -309,7 +298,7 @@ instead (which is another name for the same thing)."))
 #!+sb-show
 (defun hexstr (thing)
   (/noshow0 "entering HEXSTR")
-  (let ((addr (sb!kernel:get-lisp-obj-address thing))
+  (let ((addr (get-lisp-obj-address thing))
        (str (make-string 10)))
     (/noshow0 "ADDR and STR calculated")
     (setf (char str 0) #\0