0.7.5.7:
[sbcl.git] / build-order.lisp-expr
index 613951e..86e1c98 100644 (file)
  ;; leaking into target SBCL code.
  ("src/code/backq")
 
+ ;; It's difficult to be too early with a DECLAIM SPECIAL (or DEFVAR
+ ;; or whatever) thanks to the sullenly-do-the-wrong-thing semantics
+ ;; of CL special binding when the variable is undeclared.
+ ("src/code/globals" :not-host)
+
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;; various DEFSETFs and/or other DEFMACROish things, defined as early as
  ;; possible so we don't need to fiddle with any subtleties of defining them
  ;;; supplied by basic machinery
 
  ("src/code/cross-misc"  :not-target)
+ ("src/code/cross-byte"  :not-target)
  ("src/code/cross-float" :not-target)
  ("src/code/cross-io"    :not-target)
  ("src/code/cross-sap"   :not-target)
+ ("src/code/cross-make-load-form" :not-target)
 
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;; stuff needed early both in cross-compilation host and in target Lisp
 
  ("src/code/defbangtype")
  ("src/code/defbangmacro")
+ ("src/code/defbangconstant")
 
  ("src/code/primordial-extensions")
 
- ;; for various constants e.g. SB!VM:*TARGET-MOST-POSITIVE-FIXNUM* and
+ ;; for various constants e.g. SB!XC:MOST-POSITIVE-FIXNUM and
  ;; SB!VM:N-LOWTAG-BITS, needed by "early-objdef" and others
  ("src/compiler/generic/early-vm")
  ("src/compiler/generic/early-objdef")
@@ -86,6 +94,7 @@
  ("src/code/parse-defmacro")   ; on host for PARSE-DEFMACRO
  ("src/code/early-extensions") ; on host for COLLECT, SYMBOLICATE, etc.
  ("src/compiler/deftype")      ; on host for SB!XC:DEFTYPE
+ ("src/compiler/defconstant")
  ("src/code/early-alieneval")  ; for vars needed both at build and run time
 
  ("src/code/specializable-array")
  ;; accessors.)
  ("src/code/type-class")
 
+ ("src/code/early-pcounter")
  ("src/code/pcounter" :not-host)
 
  ("src/code/ansi-stream" :not-host)
  ;;    and stuff."
  ;; Dunno exactly what this meant or whether it still holds. -- WHN 19990803
  ;; FIXME: more informative and up-to-date comment?
- ("src/code/globals"     :not-host)
  ("src/code/kernel"      :not-host)
  ("src/code/toplevel"    :not-host)
  ("src/code/cold-error"  :not-host)
  ("src/code/target-c-call"    :not-host)
  ("src/code/target-allocate"  :not-host)
 
- ;; This needs DEF-ALIEN-ROUTINE from target-alieneval.
+ ;; This needs DEFINE-ALIEN-ROUTINE from target-alieneval.
  ("src/code/misc-aliens" :not-host)
 
  ("src/code/array"         :not-host)
  #!+bsd   ("src/code/bsd-os"   :not-host)
  #!+linux ("src/code/linux-os" :not-host)
 
+ ;; sparc-vm and ppc-vm need sc-offset defined to get at internal
+ ;; error args. This file contains stuff previously in
+ ;; debug-info.lisp.  Should it therefore be :not-host?  -- CSR,
+ ;; 2002-02-05
+ ("src/code/sc-offset")
  ;; KLUDGE: I'd prefer to have this done with a "code/target" softlink
  ;; instead of a bunch of reader macros. -- WHN 19990308
  #!+pmax ("src/code/pmax-vm" :not-host)
  #!+rt    ("src/code/rt-vm"    :not-host)
  #!+hppa  ("src/code/hppa-vm"  :not-host)
  #!+x86   ("src/code/x86-vm"   :not-host)
+ #!+ppc   ("src/code/ppc-vm"   :not-host)
  #!+alpha ("src/code/alpha-vm" :not-host)
  #!+sgi   ("src/code/sgi-vm"   :not-host)
 
 
  ("src/code/stubs" :not-host)
 
+ ("src/code/exhaust" :not-host)
+
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;; compiler (and a few miscellaneous files whose dependencies make it
  ;;; convenient to stick them here)
  ("src/compiler/globaldb")
  ("src/compiler/info-functions")
 
+ ("src/code/force-delayed-defbangconstants")
  ("src/code/defmacro")
  ("src/code/force-delayed-defbangmacros")
 
  ;; for e.g. SPECIFIER-TYPE, needed by primtype.lisp
  ("src/code/early-type")
 
- ;; FIXME: Classic CMU CL had SAFETY 2 DEBUG 2 set around the compilation
- ;; of "code/class". Why?
+ ;; FIXME: Classic CMU CL had (OPTIMIZE (SAFETY 2) (DEBUG 2) declared
+ ;; around the compilation of "code/class". Why?
  ("src/code/class")
 
  ;; The definition of CONDITION-CLASS depends on SLOT-CLASS, defined
  ;; for DEFSTRUCT ALIEN-TYPE, needed by host-type.lisp
  ("src/code/host-alieneval")
 
- ;; can't be done until definition of e.g. DEF-ALIEN-TYPE-CLASS in
+ ;; can't be done until definition of e.g. DEFINE-ALIEN-TYPE-CLASS in
  ;; host-alieneval.lisp
  ("src/code/host-c-call")
 
  ;; defines IR1-ATTRIBUTES macro, needed by proclaim.lisp
  ("src/compiler/knownfun")
 
+ ;; needs FUN-INFO structure slot setters, defined in knownfun.lisp
+ ("src/compiler/fun-info-funs")
+
  ;; stuff needed by "code/defstruct"
  ("src/code/cross-type" :not-target)
  ("src/compiler/generic/vm-type")
 
  ;; Compiling this requires fop definitions from code/fop.lisp and
  ;; trace table definitions from compiler/trace-table.lisp.
- ("src/compiler/dump"
-  ;; FIXME: When building sbcl-0.pre7.14.flaky4.5 under sbcl-0.6.12.1
-  ;; with :SB-SHOW on the target *FEATURES* list, cross-compilation of
-  ;; this file gives a WARNING in HEXSTR,
-  ;;   Lisp error during constant folding:
-  ;;   Argument X is not a REAL: NIL
-  ;; This seems to come from DEF!MACRO %WITH-ARRAY-DATA-MACRO code
-  ;; which looks like
-  ;;     (cond (,end
-  ;;            (unless (or ,unsafe? (<= ,end ,size))
-  ;;             ..))
-  ;;           ..)
-  ;; where the system is trying to constant-fold the <= form when the
-  ;; ,END binding is known to be NIL at compile time. Since the <= form 
-  ;; is unreachable in that case, this shouldn't be signalling a WARNING;
-  ;; but as long as it is, we have to ignore it in order to go on.
-  :ignore-failure-p)
+ ("src/compiler/dump")
 
  ("src/compiler/main") ; needs DEFSTRUCT FASL-OUTPUT from dump.lisp
  ("src/compiler/target-main" :not-host)
  ("src/compiler/ir1report")
  ("src/compiler/ir1opt")
 
- ;; Compiling this file requires the macros SB!ASSEM:EMIT-LABEL and
- ;; SB!ASSEM:EMIT-POST-IT, defined in assem.lisp.
- ("src/compiler/late-vmdef")
-
  ("src/compiler/ir1final")
  ("src/compiler/array-tran")
  ("src/compiler/seqtran")
  ("src/compiler/generic/utils")
  ("src/assembly/assemfile")
 
+ ;; Compiling this file requires the macros SB!ASSEM:EMIT-LABEL and
+ ;; SB!ASSEM:EMIT-POST-IT, defined in assem.lisp, and also possibly
+ ;; the definition of the LOCATION-INFO structure (if structures in
+ ;; the host lisp have setf expanders rather than setf functions).
+ ("src/compiler/late-vmdef")
+
  ("src/compiler/fixup") ; for DEFSTRUCT FIXUP, used by insts.lisp
 
  ("src/compiler/target/insts")
  ("src/compiler/target/char")
  ("src/compiler/target/memory")
  ("src/compiler/target/static-fn")
- ("src/compiler/target/arith")
+ ("src/compiler/target/arith"
+  ;; KLUDGE: for ppc and sparc this appears to be necessary -- see the
+  ;; comment below regarding src/compiler/target/array -- CSR,
+  ;; 2002-05-05
+  :ignore-failure-p) 
  ("src/compiler/target/subprim")
 
  ("src/compiler/target/debug")
+ ;; src/compiler/sparc/c-call contains a deftransform for
+ ;; %ALIEN-FUNCALL -- CSR
+ ("src/compiler/early-aliencomp")
  ("src/compiler/target/c-call")
  ("src/compiler/target/cell")
  ("src/compiler/target/values")
  ("src/compiler/target/nlx")
  ("src/compiler/target/show")
  ("src/compiler/target/array"
-  ;; KLUDGE: Compiling this file raises alarming warnings of the form
+  ;; KLUDGE: Compiling this file for X86 raises alarming warnings of
+  ;; the form
   ;;    Argument FOO to VOP CHECK-BOUND has SC restriction
   ;;    DESCRIPTOR-REG which is not allowed by the operand type:
   ;;      (:OR POSITIVE-FIXNUM)
   ;; these warnings are severe enough that they would ordinarily abort
   ;; compilation, for now we blithely ignore them and press on to more
   ;; pressing problems. Someday, though, it would be nice to figure out
-  ;; what the problem is and fix it.. -- WHN 19990323
+  ;; what the problem is and fix it. (See the comments in
+  ;; src/compiler/x86/array for a candidate patch.) -- WHN 19990323
   :ignore-failure-p)
  ("src/compiler/target/pred")
  ("src/compiler/target/type-vops")
                                                 ;   "compiler/generic/core"
 
  ("src/code/eval"              :not-host) ; uses INFO, wants compiler macro
- ("src/code/target-sap"        :not-host) ; uses SAP-INT-TYPE
+ ("src/code/target-sap"        :not-host) ; uses SAP-INT type
  ("src/code/target-package"    :not-host) ; needs "code/package"
  ("src/code/target-random"     :not-host) ; needs "code/random"
  ("src/code/target-hash-table" :not-host) ; needs "code/hash-table"
 
  ("src/code/bit-bash"    :not-host) ; needs %NEGATE from assembly/target/arith
 
- ("src/code/target-load" :not-host) ; needs specials from code/load.lisp
-
+ ("src/code/target-load" :not-host) ; needs special vars from code/load.lisp
+ ("src/compiler/target/sanctify" :not-host) 
  ;; FIXME: Does this really need stuff from compiler/dump.lisp?
  ("src/compiler/target-dump" :not-host) ; needs stuff from compiler/dump.lisp
 
- ("src/code/cold-init" :not-host ; needs (SETF EXTERN-ALIEN) macroexpansion
-  ;; FIXME: When building sbcl-0.pre7.14.flaky4.5 under sbcl-0.6.12.1
-  ;; with :SB-SHOW on the target *FEATURES* list, cross-compilation of
-  ;; this file gives a WARNING in HEXSTR,
-  ;;   Lisp error during constant folding:
-  ;;   Argument X is not a REAL: NIL
-  ;; This seems to come from DEF!MACRO %WITH-ARRAY-DATA-MACRO code
-  ;; which looks like
-  ;;     (cond (,end
-  ;;            (unless (or ,unsafe? (<= ,end ,size))
-  ;;             ..))
-  ;;           ..)
-  ;; where the system is trying to constant-fold the <= form when the
-  ;; ,END binding is known to be NIL at compile time. Since the <= form 
-  ;; is unreachable in that case, this shouldn't be signalling a WARNING;
-  ;; but as long as it is, we have to ignore it in order to go on.
-  :ignore-failure-p)
+ ("src/code/cold-init" :not-host) ; needs (SETF EXTERN-ALIEN) macroexpansion
 
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;; target macros and DECLAIMs installed at build-the-cross-compiler time