Skip to content

Commit

Permalink
0.7.10.16:
Browse files Browse the repository at this point in the history
	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).
  • Loading branch information
csrhodes committed Dec 11, 2002
1 parent 0e5e8dc commit f6f77e8
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 52 deletions.
5 changes: 0 additions & 5 deletions TODO
Expand Up @@ -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)
Expand Down
17 changes: 13 additions & 4 deletions build-order.lisp-expr
Expand Up @@ -527,10 +527,19 @@
("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")

Expand Down
9 changes: 9 additions & 0 deletions make-config.sh
Expand Up @@ -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/
Expand Down
42 changes: 0 additions & 42 deletions src/cold/warm.lisp
Expand Up @@ -21,48 +21,6 @@
(space 1)
(speed 2)))

;;;; 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))))))

;;;; package hacking

;;; Our cross-compilation host is out of the picture now, so we no
Expand Down
2 changes: 1 addition & 1 deletion version.lisp-expr
Expand Up @@ -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"

0 comments on commit f6f77e8

Please sign in to comment.