\f
;;;; general warm init compilation policy
+
(proclaim '(optimize (compilation-speed 1)
(debug #+sb-show 2 #-sb-show 1)
(inhibit-warnings 2)
- (safety 1)
+ (safety 2)
(space 1)
(speed 2)))
\f
-;;;; KLUDGE: Compile and load files which really belong in cold load but are
-;;;; here for various unsound reasons. We handle them here, before the package
-;;;; hacking below, because they use the SB!FOO cold package name convention
-;;;; instead of the SB-FOO final package name convention (since they really
-;;;; do belong in cold load and will hopefully make it back there reasonably
-;;;; soon). -- WHN 19991207
-
-(dolist (stem '(;; FIXME: The assembly files here probably belong in
- ;; cold load instead of warm load. They ended up here
- ;; as a quick hack to work around the consequences of
- ;; my misunderstanding how ASSEMBLE-FILE works when I
- ;; wrote the cold build code. The cold build code
- ;; expects only one FASL filename per source file,
- ;; when it turns out we really need one FASL file for
- ;; ASSEMBLE-FILE output and another for COMPILE-FILE
- ;; output. It would probably be good to redo the cold
- ;; build code so that the COMPILE-FILE stuff generated
- ;; here can be loaded at the same time as the
- ;; ASSEMBLE-FILE stuff generated there.
- "src/assembly/target/assem-rtns"
- "src/assembly/target/array"
- "src/assembly/target/arith"
- "src/assembly/target/alloc"))
- ;; KLUDGE: Cut-and-paste programming, the sign of a true professional.:-|
- ;; (Hopefully this will go away as we move the files above into cold load.)
- ;; -- WHN 19991214
- (let ((fullname (concatenate 'string stem ".lisp")))
- ;; (Now that we use byte compiler for interpretation, /SHOW
- ;; doesn't get compiled properly until the src/assembly files have
- ;; been loaded, so we use PRINT instead.)
- #+sb-show (print "/about to compile src/assembly file")
- #+sb-show (print fullname)
- (multiple-value-bind
- (compiled-truename compilation-warnings-p compilation-failure-p)
- (compile-file fullname)
- (declare (ignore compilation-warnings-p))
- #+sb-show (print "/done compiling src/assembly file")
- (if compilation-failure-p
- (error "COMPILE-FILE of ~S failed." fullname)
- (unless (load compiled-truename)
- (error "LOAD of ~S failed." compiled-truename))))))
-\f
;;;; package hacking
-;;; Our cross-compilation host is out of the picture now, so we no longer need
-;;; to worry about collisions between our package names and cross-compilation
-;;; host package names, so now is a good time to rename any package with a
-;;; bootstrap-only name SB!FOO to its permanent name SB-FOO.
+;;; Our cross-compilation host is out of the picture now, so we no
+;;; longer need to worry about collisions between our package names
+;;; and cross-compilation host package names, so now is a good time to
+;;; rename any package with a bootstrap-only name SB!FOO to its
+;;; permanent name SB-FOO.
;;;
-;;; (In principle it might be tidier to do this when dumping the cold image in
-;;; genesis, but in practice the logic might be a little messier because
-;;; genesis dumps both symbols and packages, and we'd need to make that dumped
-;;; symbols were renamed in the same way as dumped packages. Or we could do it
-;;; in cold init, but it's easier to experiment with and debug things here in
-;;; warm init than in cold init, so we do it here instead.)
+;;; (In principle it might be tidier to do this when dumping the cold
+;;; image in genesis, but in practice the logic might be a little
+;;; messier because genesis dumps both symbols and packages, and we'd
+;;; need to make sure that dumped symbols were renamed in the same way
+;;; as dumped packages. Or we could do it in cold init, but it's
+;;; easier to experiment with and debug things here in warm init than
+;;; in cold init, so we do it here instead.)
(let ((boot-prefix "SB!")
(perm-prefix "SB-"))
(dolist (package (list-all-packages))
(dolist (stem '(;; CLOS, derived from the PCL reference implementation
;;
;; This PCL build order is based on a particular
- ;; linearization of the declared build order
- ;; dependencies from the old PCL defsys.lisp
+ ;; (arbitrary) linearization of the declared build
+ ;; order dependencies from the old PCL defsys.lisp
;; dependency database.
- "src/pcl/walk"
- ;; "src/pcl/iterate" removed 2001-12-20 njf
+ #+nil "src/pcl/walk" ; #+NIL = moved to build-order.lisp-expr
"src/pcl/early-low"
"src/pcl/macros"
"src/pcl/compiler-support"
"src/pcl/low"
- ;; "src/pcl/fin" merged into "src/pcl/low" in 0.6.11.43
+ "src/pcl/slot-name"
"src/pcl/defclass"
"src/pcl/defs"
"src/pcl/fngen"
"src/pcl/slots-boot"
"src/pcl/combin"
"src/pcl/dfun"
- "src/pcl/fast-init"
+ "src/pcl/ctor"
"src/pcl/braid"
"src/pcl/dlisp3"
"src/pcl/generic-functions"
;; to warm init to reduce peak memory requirement in
;; cold init
"src/code/describe"
+ "src/code/describe-policy"
"src/code/inspect"
"src/code/profile"
"src/code/ntrace"
;;; through the cold boot process. They need to be set somewhere. Maybe the
;;; easiest thing to do is to read them out of package-data-list.lisp-expr
;;; now?
-\f
-;;;; restoring compilation policy to neutral values in preparation for
-;;;; SAVE-LISP-AND-DIE as final SBCL core
-
-(sb-int:/show "setting compilation policy to neutral values")
-(proclaim '(optimize (compilation-speed 1)
- (debug 1)
- (inhibit-warnings 1)
- (safety 1)
- (space 1)
- (speed 1)))