From: Andreas F. <ant...@us...> - 2007-02-28 13:02:05
|
Update of /cvsroot/sbcl/sbcl In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv13648 Modified Files: make-target-2.lisp make-target-2.sh version.lisp-expr Added Files: make-target-2-load.lisp Log Message: 1.0.3.4: make-target-2.lisp split into compile and dump phases. * Split make-target-2.lisp into make-target-2.lisp and make-target-2-load.lisp, reducing unnecessary state that was kept around. Not keeping symbols that were interned during the compilation of PCL saves us 400kB on x86 and between 1MB and 1.5MB on x86_86. * Unintern symbols that are internal to CL-USER before dumping the core. This doesn't save any space; just removes confusion. --- NEW FILE: make-target-2-load.lisp --- ;;; Now that we use the compiler for macros, interpreted /SHOW doesn't ;;; work until later in init. #+sb-show (print "/hello, world!") ;;; Until PRINT-OBJECT and other machinery is set up, we want limits ;;; on printing to avoid infinite output. (Don't forget to undo these ;;; tweaks after the printer is set up. It'd be cleaner to use LET to ;;; make sure that happens automatically, but LET is implemented in ;;; terms of the compiler, and the compiler isn't initialized yet.) (setq *print-length* 10) (setq *print-level* 5) (setq *print-circle* t) ;;; Do warm init without compiling files. (defvar *compile-files-p* nil) #+sb-show (print "/about to LOAD warm.lisp (with *compile-files-p* = NIL)") (load "src/cold/warm.lisp") ;;; Unintern no-longer-needed stuff before the possible PURIFY in ;;; SAVE-LISP-AND-DIE. #-sb-fluid (sb-impl::!unintern-init-only-stuff) ;;; Now that the whole system is built, we don't need to hobble the ;;; printer any more, so we can restore printer control variables to ;;; their ANSI defaults. (setq *print-length* nil) (setq *print-level* nil) (setq *print-circle* nil) (sb-int:/show "done with warm.lisp, about to GC :FULL T") (sb-ext:gc :full t) ;;; resetting compilation policy to neutral values in preparation for ;;; SAVE-LISP-AND-DIE as final SBCL core (not in warm.lisp because ;;; SB-C::*POLICY* has file scope) (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))) ;;; Lock internal packages #+sb-package-locks (dolist (p (list-all-packages)) (unless (member p (mapcar #'find-package '("KEYWORD" "CL-USER"))) (sb-ext:lock-package p))) (sb-int:/show "done with warm.lisp, about to SAVE-LISP-AND-DIE") ;;; Even if /SHOW output was wanted during build, it's probably ;;; not wanted by default after build is complete. (And if it's ;;; wanted, it can easily be turned back on.) #+sb-show (setf sb-int:*/show* nil) ;;; The system is complete now, all standard functions are ;;; defined. (sb-kernel::ctype-of-cache-clear) (setq sb-c::*flame-on-necessarily-undefined-function* t) ;;; Clean up stray symbols from the CL-USER package. (do-symbols (symbol "CL-USER") (when (eq (symbol-package symbol) (find-package "CL-USER")) (unintern symbol "CL-USER"))) (sb-ext:save-lisp-and-die "output/sbcl.core") Index: make-target-2.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/make-target-2.lisp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- make-target-2.lisp 29 Dec 2005 16:08:31 -0000 1.1 +++ make-target-2.lisp 28 Feb 2007 13:01:59 -0000 1.2 @@ -12,45 +12,6 @@ (setq *print-circle* t) ;;; Do warm init. -#+sb-show (print "/about to LOAD warm.lisp") +(defvar *compile-files-p* t) +#+sb-show (print "/about to LOAD warm.lisp (with *compile-files-p* = T)") (load "src/cold/warm.lisp") - -;;; Unintern no-longer-needed stuff before the possible PURIFY in -;;; SAVE-LISP-AND-DIE. -#-sb-fluid (sb-impl::!unintern-init-only-stuff) - -;;; Now that the whole system is built, we don't need to hobble the -;;; printer any more, so we can restore printer control variables to -;;; their ANSI defaults. -(setq *print-length* nil) -(setq *print-level* nil) -(setq *print-circle* nil) - -(sb-int:/show "done with warm.lisp, about to GC :FULL T") -(gc :full t) - -;;; resetting compilation policy to neutral values in preparation for -;;; SAVE-LISP-AND-DIE as final SBCL core (not in warm.lisp because -;;; SB-C::*POLICY* has file scope) -(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))) - -;;; Lock internal packages -#+sb-package-locks -(dolist (p (list-all-packages)) - (unless (member p (mapcar #'find-package '(:keyword :cl-user))) - (lock-package p))) - -(sb-int:/show "done with warm.lisp, about to SAVE-LISP-AND-DIE") -;;; Even if /SHOW output was wanted during build, it's probably -;;; not wanted by default after build is complete. (And if it's -;;; wanted, it can easily be turned back on.) -#+sb-show (setf sb-int:*/show* nil) -;;; The system is complete now, all standard functions are -;;; defined. -(sb-kernel::ctype-of-cache-clear) -(setq sb-c::*flame-on-necessarily-undefined-function* t) -(sb-ext:save-lisp-and-die "output/sbcl.core") Index: make-target-2.sh =================================================================== RCS file: /cvsroot/sbcl/sbcl/make-target-2.sh,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- make-target-2.sh 5 Apr 2006 07:46:59 -0000 1.28 +++ make-target-2.sh 28 Feb 2007 13:01:59 -0000 1.29 @@ -29,7 +29,11 @@ # system with the :SB-SHOW feature enabled, it does it rather silently, # without trying to tell you about what it's doing. So unless it hangs # for much longer than that, don't worry, it's likely to be normal. -echo //doing warm init +echo //doing warm init - compilation phase ./src/runtime/sbcl \ --core output/cold-sbcl.core \ --no-sysinit --no-userinit < make-target-2.lisp +echo //doing warm init - load and dump phase +./src/runtime/sbcl \ +--core output/cold-sbcl.core \ +--no-sysinit --no-userinit < make-target-2-load.lisp Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.3210 retrieving revision 1.3211 diff -u -d -r1.3210 -r1.3211 --- version.lisp-expr 28 Feb 2007 12:56:26 -0000 1.3210 +++ version.lisp-expr 28 Feb 2007 13:01:59 -0000 1.3211 @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.3.3" +"1.0.3.4" |