"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
(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