0.6.11.40:
[sbcl.git] / make-host-2.sh
index 9100dfe..63e4512 100644 (file)
@@ -56,16 +56,16 @@ $SBCL_XC_HOST <<-'EOF' || exit 1
          "Call FN with everything set up appropriately for cross-compiling
          a target file."
          (let (;; Life is simpler at genesis/cold-load time if we
-               ;; needn't worry about byte-compiled code.
-               (sb!ext:*byte-compile-top-level* nil)
-               ;; Let the target know that we're the cross-compiler.
-               (*features* (cons :sb-xc *features*))
-                ;; We need to tweak the readtable..
-                (*readtable* (copy-readtable))
+               ;; needn't worry about byte-compiled code.
+               (sb!ext:*byte-compile-top-level* nil)
                ;; In order to reduce peak memory usage during GENESIS,
                ;; it helps to stuff several toplevel forms together 
-                ;; into the same function.
-               (sb!c::*top-level-lambda-max* 10))
+               ;; into the same function.
+               (sb!c::*top-level-lambda-max* 10)
+               ;; Let the target know that we're the cross-compiler.
+               (*features* (cons :sb-xc *features*))
+               ;; We need to tweak the readtable..
+               (*readtable* (copy-readtable)))
             ;; ..in order to make backquotes expand into target code
             ;; instead of host code.
             ;; FIXME: Isn't this now taken care of automatically by
@@ -87,11 +87,16 @@ $SBCL_XC_HOST <<-'EOF' || exit 1
          (ensure-directories-exist filename :verbose t)
          (with-open-file (s filename :direction :output)
            (write *target-object-file-names* :stream s :readably t)))
+        ;; Let's check that the type system was reasonably sane. (It's
+       ;; easy to spend a long time wandering around confused trying
+       ;; to debug cold init if it wasn't.)
+       (when (find :sb-test *shebang-features*)
+         (load "tests/type.after-xc.lisp"))
        ;; If you're experimenting with the system under a
         ;; cross-compilation host which supports CMU-CL-style SAVE-LISP,
-        ;; this can be a good time to run it,
-       ;; The resulting core isn't used in the normal build, but
-        ;; can be handy for experimenting with the system.
+        ;; this can be a good time to run it. The resulting core isn't
+       ;; used in the normal build, but can be handy for experimenting
+       ;; with the system.
        (when (find :sb-show *shebang-features*)
           #+cmu (ext:save-lisp "output/after-xc.core" :load-init-file nil)
           #+sbcl (sb-ext:save-lisp-and-die "output/after-xc.core"))
@@ -101,14 +106,17 @@ $SBCL_XC_HOST <<-'EOF' || exit 1
 #
 # In a fresh host Lisp invocation, load the cross-compiler (in order
 # to get various definitions that GENESIS needs, not in order to
-# cross-compile GENESIS, compile and load GENESIS, then run GENESIS.
-# (We use a fresh host Lisp invocation here for basically the same
-# reasons we did before when loading and running the cross-compiler.)
+# cross-compile GENESIS, then load and run GENESIS. (We use a fresh
+# host Lisp invocation here for basically the same reasons we did
+# before when loading and running the cross-compiler.)
 #
-# (This second invocation of GENESIS is done because in order to
+# (Why do we need this second invocation of GENESIS? In order to
 # create a .core file, as opposed to just a .h file, GENESIS needs
-# symbol table data on the C runtime, which we can get only after the 
-# C runtime has been built.)
+# symbol table data on the C runtime. And we can get that symbol
+# data only after the C runtime has been built. Therefore, even
+# though we ran GENESIS earlier, we couldn't get it to make a .core
+# file at that time; but we needed to run it earlier in order to 
+# get to where we can write a .core file.)
 echo //loading and running GENESIS to create cold-sbcl.core
 $SBCL_XC_HOST <<-'EOF' || exit 1
        (setf *print-level* 5 *print-length* 5)