X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=stems-and-flags.lisp-expr;h=16e0a85e380b3c2b1f896648d046ef4c97dc8517;hb=f143939b1dbaf38ebd4f92c851fbc4ecddf37af1;hp=5992a757a96adf358e19f8a867032726de2e3217;hpb=416152f084604094445a758ff399871132dff2bd;p=sbcl.git diff --git a/stems-and-flags.lisp-expr b/stems-and-flags.lisp-expr index 5992a75..16e0a85 100644 --- a/stems-and-flags.lisp-expr +++ b/stems-and-flags.lisp-expr @@ -120,6 +120,8 @@ ("src/code/defbangstruct") + ("src/code/funutils" :not-host) + ;; This needs DEF!STRUCT, and is itself needed early so that structure ;; accessors and inline functions defined here can be compiled inline ;; later. (Avoiding full calls not only increases efficiency, but also @@ -138,11 +140,7 @@ ;; inherited from CMU CL comcom.lisp. We shouldn't need two versions, ;; so I've deleted the one here. -- WHN 19990620 - ;; FIXME: There are lots of "maybe" notes in this file, e.g. - ;; "maybe should be :BYTE-COMPILE T". Once the system is stable, - ;; look into them. - - ("src/code/target-error" :not-host) ; maybe should be :BYTE-COMPILE T + ("src/code/target-error" :not-host) ;; a comment from classic CMU CL: ;; "These guys can supposedly come in any order, but not really. @@ -211,42 +209,40 @@ ("src/code/target-signal" :not-host) ; needs OS-CONTEXT-T from x86-vm - ("src/code/symbol" :not-host) - ("src/code/bignum" :not-host) - ("src/code/target-numbers" :not-host) - ("src/code/float-trap" :not-host) - ("src/code/float" :not-host) - ("src/code/irrat" :not-host) + ("src/code/symbol" :not-host) + ("src/code/bignum" :not-host) + ("src/code/numbers" :not-host) + ("src/code/float-trap" :not-host) + ("src/code/float" :not-host) + ("src/code/irrat" :not-host) ("src/code/char") ("src/code/target-char" :not-host) ("src/code/target-misc" :not-host) ("src/code/misc") - #!-gengc ("src/code/room" :not-host) - #!-gengc ("src/code/gc" :not-host) - #!-gengc ("src/code/purify" :not-host) - - #!+gengc ("src/code/gengc" :not-host) + ("src/code/room" :not-host) + ("src/code/gc" :not-host) + ("src/code/purify" :not-host) ("src/code/stream" :not-host) ("src/code/print" :not-host) - ("src/code/pprint" :not-host) ; maybe should be :BYTE-COMPILE T + ("src/code/pprint" :not-host) ("src/code/early-format") - ("src/code/target-format" :not-host) ; maybe should be :BYTE-COMPILE T + ("src/code/target-format" :not-host) ("src/code/defpackage" :not-host) - ("src/code/pp-backq" :not-host) ; maybe should be :BYTE-COMPILE T + ("src/code/pp-backq" :not-host) ("src/code/error-error" :not-host) ; needs WITH-STANDARD-IO-SYNTAX macro ("src/code/serve-event" :not-host) ("src/code/fd-stream" :not-host) - ("src/code/module" :not-host) ; maybe should be :BYTE-COMPILE T + ("src/code/module" :not-host) ("src/code/interr" :not-host) - ("src/code/query" :not-host) ; maybe should be :BYTE-COMPILE T + ("src/code/query" :not-host) ("src/code/sort" :not-host) ("src/code/time" :not-host) @@ -315,7 +311,7 @@ ;; The definitions for CONDITION and CONDITION-CLASS depend on ;; SLOT-CLASS, defined in classes.lisp. - ("src/code/condition" :not-host) ; FIXME: maybe should be :BYTE-COMPILE T + ("src/code/condition" :not-host) ("src/compiler/generic/primtype") @@ -426,12 +422,30 @@ ;; Compiling this requires fop definitions from code/fop.lisp and ;; trace table definitions from compiler/trace-table.lisp. - ("src/compiler/dump") + ("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/main") ; needs DEFSTRUCT FASL-OUTPUT from dump.lisp ("src/compiler/target-main" :not-host) ("src/compiler/ir1tran") + ("src/compiler/ir1-translators") ("src/compiler/ir1util") + ("src/compiler/ir1report") ("src/compiler/ir1opt") ;; Compiling this file requires the macros SB!ASSEM:EMIT-LABEL and @@ -450,7 +464,7 @@ ("src/compiler/dfo") ("src/compiler/checkgen") ("src/compiler/constraint") - ("src/compiler/envanal") + ("src/compiler/physenvanal") ("src/compiler/tn") ("src/compiler/life") @@ -519,12 +533,6 @@ ("src/compiler/entry") ("src/compiler/ir2tran") - ;; KLUDGE: This has #!+GENGC things in it which are intended to - ;; overwrite code in ir2tran.lisp, so it has to come after ir2tran.lisp. - ;; - ;; FIXME: Those things should probably be ir2tran.lisp instead, and the - ;; things they now overwrite should instead be #!-GENGC so they're never - ;; generated in the first place. ("src/compiler/generic/vm-ir2tran") ("src/compiler/copyprop") @@ -561,36 +569,20 @@ ("src/code/target-random" :not-host) ; needs "code/random" ("src/code/target-hash-table" :not-host) ; needs "code/hash-table" ("src/code/reader" :not-host) ; needs "code/readtable" - ("src/code/target-pathname" :not-host) ; needs "code/pathname", maybe - ; should be :BYTE-COMPILE T - ("src/code/filesys" :not-host) ; needs HOST from "code/pathname", - ; maybe should be :BYTE-COMPILE T + ("src/code/target-pathname" :not-host) ; needs "code/pathname" + ("src/code/filesys" :not-host) ; needs HOST from "code/pathname" ("src/code/save" :not-host) ; uses the definition of PATHNAME ; from "code/pathname" ("src/code/sharpm" :not-host) ; uses stuff from "code/reader" - ;; stuff for byte compilation - ;; - ;; This is mostly :NOT-HOST because even though byte code is - ;; "portable", it'd be hard to make it work on the cross-compilation - ;; host, because fundamental BYTE-FUNCTION-OR-CLOSURE types are - ;; implemented as FUNCALLABLE-INSTANCEs, and it's not obvious how to - ;; emulate those in a vanilla ANSI Common Lisp. - #| ; FIXME: byte compiler to go away completely - ("src/code/byte-types" :not-host) - ("src/compiler/byte-comp") - ("src/compiler/target-byte-comp" :not-host) - ("src/code/byte-interp" :not-host) ; needs byte-comp *SYSTEM-CONSTANT-CODES* - |# - - ;; defines SB!DI:DO-DEBUG-FUNCTION-BLOCKS, needed by target-disassem.lisp + ;; defines SB!DI:DO-DEBUG-FUN-BLOCKS, needed by target-disassem.lisp ("src/code/debug-int" :not-host) ;; target-only assemblerish stuff ("src/compiler/target-disassem" :not-host) ("src/compiler/target/target-insts" :not-host) - ("src/code/debug" :not-host) ; maybe should be :BYTE-COMPILE T + ("src/code/debug" :not-host) ;; These can't be compiled until CONDITION and DEFINE-CONDITION ;; are defined, and they also use SB-DEBUG:*STACK-TOP-HINT*. @@ -632,9 +624,6 @@ ;; fundamental target macros (e.g. CL:DO and CL:DEFUN) and support ;; for them - ;; - ;; FIXME: Since a lot of this code is just macros, perhaps it should be - ;; byte compiled? ("src/code/defboot") ("src/code/destructuring-bind") ("src/code/early-setf")