From: William H. N. <wil...@ai...> - 2001-08-27 14:05:37
|
On Mon, Aug 27, 2001 at 03:49:46AM +0100, Daniel Barlow wrote: > It's August, so time for the start of the annual "SBCL port to another > architecture" exercise. This time I want to get some exercise from > the imac in the corner, so I'm looking at an SBCL port to GNU/Linux on > the IBM/Motorola/Apple/Whoever PPC, based on Gary Byers 1997 CMUCL > port to that architecture. Nifty. > Timescale: I think it unlikely that it will be worth merging before 0.7 I dunno exactly how long 0.7.0 will take, but the interesting part -- elimination of the IR1 interpreter -- seems to be done now. Last night I checked in an IR1-interpreter-free version which should be the end of the flaky4_branch: it builds itself, builds under CMU CL, and seems to work essentially as well as the old IR1 interpreted version. (I've tripped across some bugs in the byte compiler/interpreter, and I haven't fixed all of them; but the switch to the new EVAL gives a fundamentally ANSI-compliant EVAL-WHEN, which is IMHO enough of a win to make up for raising the profile of old byte compiler bugs.) My remaining todo list looks something like Make the incompatible changes listed in NEWS. ?? changed fasl file extension to .fasl ?? changed debugger prompt to "5]", "5[2]", "5[3]", etc. ?? changed default output representation of printed unprintable ASCII characters to #\Nul, #\Soh, etc. ?? changed INTERNAL-TIME-UNITS-PER-SECOND to 1000 Do some FIXMEs with high disruptive potential (or at least try, then punt if they're hard:-) (or at least think about trying:-):-). E.g. ?? Search lists go away. ?? the big SB!CL repackaging in the FIXME note in DEFMACRO-MUNDANELY DEFCONSTANT ?? Get rid of :SB-CONSTRAIN-FLOAT-TYPE, :SB-PROPAGATE-FLOAT-TYPE, and :SB-PROPAGATE-FUN-TYPE features; the code they control becomes unconditional. (Then the cross float KLUDGE needs to be redone.) Systematize names in the Lisp code: ?? Consistently use standard global abbreviations for FUN, VAR, LEXENV, ARG, INIT, INST(instruction), SEQ, OK (not OKAY), and possibly others. (Maybe either DEF or DEFINE, as in the ANSI spec: DEFFOO when all as one word, DEFINE-FOO-BAR otherwise. Note that that affects some public extension names in the FFI, and we can deal with that by adding new names and deprecating the old ones.) (In C code, and perhaps in Lisp code too: PTR for POINTER.) ?? Unabbreviate PRED into PREDICATE, to avoid ambiguity with the competing abbreviations PRED/SUCC. Possibly unabbreviate some other stuff too. ?? Things named COMPLEX for non-SIMPLE vectors/arrays become HAIRY instead. COMPLEX is reserved for numbers with potentially nonzero imaginary parts. ?? Reserve DO-FOO names for things which have to do with iteration (e.g. DOTIMES, DOVECTOR, DO-NODES DO-DEBUG-FUNCTION-BLOCKS). The other stuff which used to be named DO-FOO gets various other names, sometimes just dropping the DO- prefix, e.g. DO-ARG-COUNT-ERROR becomes ARG-COUNT-ERROR, sometimes using FROB-FOO instead, sometimes making less systematic changes. ?? (I've flirted with the idea of -P suffixes to more predicate names, but I won't do it here. I don't know any automated way of hunting down predicates to find the ones to rename, and I'm not motivated to just manually review all 3000 pages of source.) ?? Rename %PRIMITIVE to %VOP, and do the related renamings discussed in the KLUDGE/FIXME notes at the definition of DEF-IR1-TRANSLATOR %PRIMITIVE. Systematize names in the C code: ?? redid many cpp macros as inline functions: LowtagOf, TypeOf (now tagof()), HeaderValue, Pointerp, CEILING, ALIGNED_SIZE, GET_FREE_POINTER, SET_FREE_POINTER, GET_GC_TRIGGER, SET_GC_TRIGGER, GetBSP, SetBSP, os_trunc_foo(), os_round_up_foo() ?? removed various avoid-evaluating-C-macro-arg-twice cruft. ?? renamed preprocessor definitions to uppercase: type_Mask, lowtag_Bits, lowtag_Mask, type_Bits (now N_TYPE_BITS). ?? Systematize indentation in the C code: 4 spaces. I think this should be almost completely routine. The only place where I think gotchas could be possible are tweaking INTERNAL-TIME-UNITS-PER-SECOND and removing search lists. -- William Harold Newman <wil...@ai...> "Our users will know fear and cower before our software! Ship it! Ship it and let them flee like the dogs they are!" -- Klingon programmer PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C |