0.7.10.16:
authorChristophe Rhodes <csr21@cam.ac.uk>
Wed, 11 Dec 2002 11:10:27 +0000 (11:10 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Wed, 11 Dec 2002 11:10:27 +0000 (11:10 +0000)
Fix one "outstanding embarrassment" (as per CSR sbcl-devel
2002-12-10): no more building of compiler files in
warm load.
... play symlink games instead, to build the troublesome
assembly files twice under different names (will need
adjustments to work on non-Unix filesystems (e.g.
NTFS) but no more than the rest of the build).

TODO
build-order.lisp-expr
make-config.sh
src/cold/warm.lisp
version.lisp-expr

diff --git a/TODO b/TODO
index 5dc47f1..2ec4472 100644 (file)
--- a/TODO
+++ b/TODO
@@ -33,11 +33,6 @@ for late 0.7.x:
                idiosyncratic ideas of what merits FAILURE-P, but it's
                embarrassing to have to use it when bootstrapping 
                under SBCL!),
-       ** weird double-loading (first in GENESIS, then in warm init)
-               of src/assembly/target/*.lisp stuff, and the associated
-               weirdness of the half-baked state (compiler almost but
-               not quite ready for prime time..) of the system after
-               cold init
 * fixups now feasible because of pre7 changes
        ** ANSIfied DECLAIM INLINE stuff (deprecating MAYBE-INLINE,
                including e.g. on the man page)
index 9388117..e9f3c54 100644 (file)
  ("src/compiler/target/type-vops")
  ("src/compiler/generic/late-type-vops")
 
- ("src/assembly/target/assem-rtns" :assem)
- ("src/assembly/target/array"      :assem)
- ("src/assembly/target/arith"      :assem)
- ("src/assembly/target/alloc"      :assem)
+ ;; KLUDGE: The assembly files need to be compiled twice: once as
+ ;; normal lisp files, and once by sb-c:assemble-file.  We play some
+ ;; symlink games to make sure we don't scribble over anything we
+ ;; shouldn't, but these are actually the same files:
+
+ ("src/compiler/assembly/target/assem-rtns")
+ ("src/compiler/assembly/target/array")
+ ("src/compiler/assembly/target/arith")
+ ("src/compiler/assembly/target/alloc")
+ ("src/assembly/target/assem-rtns" :assem :not-host)
+ ("src/assembly/target/array"      :assem :not-host)
+ ("src/assembly/target/arith"      :assem :not-host)
+ ("src/assembly/target/alloc"      :assem :not-host)
 
  ("src/compiler/pseudo-vops")
 
index 720cf14..bcbe481 100644 (file)
@@ -92,6 +92,15 @@ for d in src/compiler src/assembly; do
     cd $original_dir
 done
 
+echo //setting up symlink src/compiler/assembly
+if [ -h src/compiler/assembly ] ; then
+    rm src/compiler/assembly
+elif [ -w src/compiler/assembly ] ; then
+    echo "I'm afraid to replace non-symlink compiler/assembly with a symlink."
+    exit 1
+fi
+ln -s ../assembly src/compiler/assembly
+
 echo //setting up OS-dependent information
 original_dir=`pwd`
 cd src/runtime/
index 91bd152..8eb011d 100644 (file)
                     (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
index 536474c..481f87c 100644 (file)
@@ -18,4 +18,4 @@
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
 
-"0.7.10.15"
+"0.7.10.16"