X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcold%2Fwarm.lisp;h=6dbdb4c04b06717ab6e941c2639688b277b0f230;hb=a10eba73462a7203914114f3a4bdac98c741ec08;hp=de0abbc721657ce6abebd56306db4adac90e6092;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/cold/warm.lisp b/src/cold/warm.lisp index de0abbc..6dbdb4c 100644 --- a/src/cold/warm.lisp +++ b/src/cold/warm.lisp @@ -10,8 +10,6 @@ ;;;; files for more information. (in-package "COMMON-LISP-USER") - -;;;; $Header$ ;;;; general warm init compilation policy @@ -29,7 +27,7 @@ ;;;; do belong in cold load and will hopefully make it back there reasonably ;;;; soon). -- WHN 19991207 -(dolist (stem '(;; FIXME: The files here from outside the src/pcl/ directory +(dolist (stem '(;; FIXME: The files here from outside the src/pcl directory ;; 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 @@ -48,12 +46,16 @@ ;; (Hopefully this will go away as we move the files above into cold load.) ;; -- WHN 19991214 (let ((fullname (concatenate 'string stem ".lisp"))) - (sb!int:/show "about to compile" fullname) + ;; (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!int:/show "done compiling" fullname) + #+sb-show (print "/done compiling src/assembly file") (if compilation-failure-p (error "COMPILE-FILE of ~S failed." fullname) (unless (load compiled-truename) @@ -144,14 +146,13 @@ ;;; ;;; FIXME: This has mutated into a hack which crudely duplicates ;;; functionality from the existing mechanism to load files from -;;; stems-and-flags.lisp-expr, without being quite parallel. (E.g. -;;; object files end up alongside the source files instead of ending -;;; up in parallel directory trees.) Maybe we could merge the -;;; filenames here into stems-and-flags.lisp-expr with some new flag -;;; (perhaps :WARM) to indicate that the files should be handled not -;;; in cold load but afterwards. Alternatively, we could call -(dolist (stem '( - ;; CLOS, derived from the PCL reference implementation +;;; build-order.lisp-expr, without being quite parallel. (E.g. object +;;; files end up alongside the source files instead of ending up in +;;; parallel directory trees.) Maybe we could merge the filenames here +;;; into build-order.lisp-expr with some new flag (perhaps :WARM) to +;;; indicate that the files should be handled not in cold load but +;;; afterwards. +(dolist (stem '(;; CLOS, derived from the PCL reference implementation ;; ;; This PCL build order is based on a particular ;; linearization of the declared build order @@ -161,8 +162,9 @@ "src/pcl/iterate" "src/pcl/early-low" "src/pcl/macros" + "src/pcl/compiler-support" "src/pcl/low" - "src/pcl/fin" + ;; "src/pcl/fin" merged into "src/pcl/low" in 0.6.11.43 "src/pcl/defclass" "src/pcl/defs" "src/pcl/fngen" @@ -193,25 +195,32 @@ "src/pcl/print-object" "src/pcl/precom1" "src/pcl/precom2" - ;; functionality which depends on CLOS + + ;; miscellaneous functionality which depends on CLOS "src/code/force-delayed-defbangmethods" + + ;; CLOS-level support for the Gray OO streams + ;; extension (which is also supported by various + ;; lower-level hooks elsewhere in the code) + "src/pcl/gray-streams-class" + "src/pcl/gray-streams" + ;; other functionality not needed for cold init, moved ;; to warm init to reduce peak memory requirement in ;; cold init - "src/code/describe" ; FIXME: should be byte compiled - "src/code/inspect" ; FIXME: should be byte compiled + "src/code/describe" + "src/code/inspect" "src/code/profile" "src/code/ntrace" - #+nil "src/code/run-program" ; not working as of 0.6.7 "src/code/foreign" + "src/code/run-program" + ;; Code derived from PCL's pre-ANSI DESCRIBE-OBJECT ;; facility is still used in our ANSI DESCRIBE ;; facility, and should be compiled and loaded after ;; our DESCRIBE facility is compiled and loaded. - "src/pcl/describe" ; FIXME: should probably be byte compiled - ;; FIXME: What about Gray streams? e.g. "gray-streams.lisp" - ;; and "gray-streams-class.lisp"? - )) + "src/pcl/describe")) + (let ((fullname (concatenate 'string stem ".lisp"))) (sb-int:/show "about to compile" fullname) (multiple-value-bind @@ -260,10 +269,3 @@ (safety 1) (space 1) (speed 1))) - -;;; FIXME: It would be good to unintern stuff we will no longer need -;;; before we go on to PURIFY. E.g. -;;; * various PCL stuff like INITIAL-CLASSES-AND-WRAPPERS; and -;;; * *BUILT-IN-CLASSES* (which can't actually be freed by UNINTERN at -;;; this point, since it passed through another PURIFY earlier -;;; at cold init time).