(load "src/cold/defun-load-or-cload-xcompiler.lisp")
(load-or-cload-xcompiler #'host-load-stem)
(defun proclaim-target-optimization ()
- (let ((debug (if (find :sb-show *shebang-features*) 2 1)))
+ (let ((debug (if (position :sb-show *shebang-features*) 2 1)))
(sb-xc:proclaim `(optimize (compilation-speed 1)
(debug ,debug)
(sb!ext:inhibit-warnings 2)
(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)
+ ;; In order to increase microefficiency of the target Lisp,
+ ;; enable old CMU CL defined-function-types-never-change
+ ;; optimizations. (ANSI says users aren't supposed to
+ ;; redefine our functions anyway; and developers can
+ ;; fend for themselves.)
+ #!-sb-fluid (sb!ext:*derive-function-types* t)
;; In order to reduce peak memory usage during GENESIS,
;; it helps to stuff several toplevel forms together
- ;; into the same function.
+ ;; into the same function. (This can't be the compiler
+ ;; default in general since it's non-ANSI in the case
+ ;; of e.g. some package-side-effecting forms, but it's
+ ;; safe in all the code we cross-compile.)
(sb!c::*top-level-lambda-max* 10)
;; Let the target know that we're the cross-compiler.
(*features* (cons :sb-xc *features*))
;; 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*)
+ (when (position :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.
-
- (when (find :sb-show *shebang-features*)
+ ;; with the system. (See slam.sh for an example.)
+ (when (position :sb-after-xc-core *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")
)