X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcold%2Fshared.lisp;h=d088aa2ad7f863c920061eef636907ac33504ff2;hb=4a466c4908db0f6f5c468ae0eabb500ffac07aba;hp=18e71e4d9c38834659d2dda9052915dc9e721cb0;hpb=dfa55a883f94470267b626dae77ce7e7dfac3df6;p=sbcl.git diff --git a/src/cold/shared.lisp b/src/cold/shared.lisp index 18e71e4..d088aa2 100644 --- a/src/cold/shared.lisp +++ b/src/cold/shared.lisp @@ -17,15 +17,22 @@ ;;; GC tuning has little effect on the x86 due to the generational ;;; collector. For the older stop & copy collector, it assuredly -;;; does. GC time is proportional to the amount of non-grabage +;;; does. GC time is proportional to the amount of non-garbage ;;; needing collection and copying; when the application involved is -;;; the SBCL compiler, it doesn't take any longer to collect 20Mb than -;;; 2 -dan, 20000819 - -#+sbcl +;;; the SBCL compiler, it doesn't take any longer to collect 20 Mb than +;;; to collect 2 Mb. -dan, 20000819 +;;; +;;; Actually, tweaking *BYTES-CONSED-BETWEEN-GCS* to 20Mb instead of +;;; the default 2 seemed to make SBCL rebuild O(25%) faster on my 256 +;;; Mb K6/3, so I think it does have some effect on X86/GENCGC. I +;;; haven't looked into why this would be, though. Also, I'm afraid +;;; that using 20Mb here might be unfriendly to people using more-reasonable +;;; machines (like old laptops with 48Mb of memory..) so I've +;;; suppressed this tweak except for Alpha. -- WHN 2001-05-11 +#+(and sbcl alpha) ; SBCL/Alpha uses stop-and-copy, and Alphas have lotso RAM. (progn (sb-ext:gc-off) - (setf sb-KERNEL::*bytes-consed-between-gcs* (* 20 (expt 10 6))) + (setf (bytes-consed-between-gcs) (* 20 (expt 10 6))) (sb-ext:gc-on) (sb-ext:gc)) @@ -37,11 +44,6 @@ (defpackage "SB-COLD" (:use "CL")) (in-package "SB-COLD") -;;; prefix for source filename stems when cross-compiling -(defvar *src-prefix* "src/") -;;; (We don't bother to specify the source suffix here because ".lisp" is such -;;; a good default value that we never have to specify it explicitly.) - ;;; prefixes for filename stems when cross-compiling. These are quite arbitrary ;;; (although of course they shouldn't collide with anything we don't want to ;;; write over). In particular, they can be either relative path names (e.g. @@ -272,7 +274,7 @@ (defparameter *stems-and-flags* (read-from-file "stems-and-flags.lisp-expr")) -(defmacro for-stems-and-flags ((stem flags) &body body) +(defmacro do-stems-and-flags ((stem flags) &body body) (let ((stem-and-flags (gensym "STEM-AND-FLAGS-"))) `(dolist (,stem-and-flags *stems-and-flags*) (let ((,stem (first ,stem-and-flags)) @@ -281,7 +283,7 @@ ;;; Check for stupid typos in FLAGS list keywords. (let ((stems (make-hash-table :test 'equal))) - (for-stems-and-flags (stem flags) + (do-stems-and-flags (stem flags) (if (gethash stem stems) (error "duplicate stem ~S in stems-and-flags data" stem) (setf (gethash stem stems) t)) @@ -313,7 +315,6 @@ (load (in-host-compilation-mode (lambda () (compile-stem stem - :src-prefix *src-prefix* :obj-prefix *host-obj-prefix* :obj-suffix *host-obj-suffix* :compile-file #'cl:compile-file @@ -339,7 +340,6 @@ (funcall *in-target-compilation-mode-fn* (lambda () (compile-stem stem - :src-prefix *src-prefix* :obj-prefix *target-obj-prefix* :obj-suffix *target-obj-suffix* :ignore-failure-p ignore-failure-p