0.8.14.12:
[sbcl.git] / make-target-2.sh
index 0a51ab9..6b3cd21 100644 (file)
@@ -32,6 +32,7 @@ echo //doing warm init
        ;; Now that we use the compiler for macros, interpreted
        ;; /SHOW doesn't work until later in init.
         #+sb-show (print "/hello, world!")
+        (sb!ext:purify)
 
         ;; Until PRINT-OBJECT and other machinery is set up,
        ;; we want limits on printing to avoid infinite output.
@@ -63,9 +64,8 @@ echo //doing warm init
        ;; GC :FULL T isn't nearly as effective as PURIFY here?
        ;; (GC :FULL T gets us down to about 38 Mbytes, but PURIFY
        ;; gets us down to about 19 Mbytes.)
-       (let ((*gc-notify-stream* *standard-output*))
-         (sb-int:/show "done with warm.lisp, about to GC :FULL T")
-         (gc :full t))
+       (sb-int:/show "done with warm.lisp, about to GC :FULL T")
+       (gc :full t)
 
         ;; resetting compilation policy to neutral values in
         ;; preparation for SAVE-LISP-AND-DIE as final SBCL core (not
@@ -78,10 +78,19 @@ echo //doing warm init
                             (space 1)
                             (speed 1)))
 
+        ;; Lock internal packages
+        #+sb-package-locks
+        (dolist (p (list-all-packages))
+          (unless (member p (mapcar #'find-package '(:keyword :cl-user)))
+             (lock-package p)))
+
         (sb-int:/show "done with warm.lisp, about to SAVE-LISP-AND-DIE")
        ;; Even if /SHOW output was wanted during build, it's probably
        ;; not wanted by default after build is complete. (And if it's
        ;; wanted, it can easily be turned back on.)
        #+sb-show (setf sb-int:*/show* nil)
+        ;; The system is complete now, all standard functions are
+        ;; defined.
+        (setq sb-c::*flame-on-necessarily-undefined-function* t)
        (sb-ext:save-lisp-and-die "output/sbcl.core" :purify t)
        EOF