Update contrib/asdf to newer upstream version ... fix loopiness ... add test-op definitions ... quote evaluation of *central-registry* components to make it more useful when a core is dumped containing asdf Rewrite asdf-using contrib makefiles to use common asdf-module.mk ... and their .asd files to define test-op
Install faster EQUAL on simple-bit-vectors ... word-at-a-time, not bit-at-a-time Frobs for correctness ... much like one that was solved for 0.7.3.5, we must be careful about identifying the last word of the bit vector, particularly for bit-vectors whose length is divisible by 32^Wn-word-bits. Less critical in this case, but we could still be reading into random space, even if not writing. Frobs for yet more speed ... allow CMUCL to optimize ASH, as long as none of the values are in the danger zone. Also reported the bug to CMUCL people, and it is now fixed, so when all traces of 18d are removed from this earth, the conditional in ASH-DERIVE-TYPE-AUX can go too.
Merge SXHASH improvements ... distribute (SXHASH <fixnum>) a little more widely over the available space; ... make (SXHASH <bit-vector>) consider rather more than just the first four bits. Miscellaneous cleanups ... don't delete contrib's html documentation ... make vanilla modules depend on the (newly-built) sbcl.core ... some cleanups in snapshot/SB-SHOW logic ... quit from the low-level debugger now exits the process with an error code (because, um, even getting to ldb is a pretty serious error)
The (ARRAY NIL) has landed. ... implement a SIMPLE-ARRAY-NIL primitive type, including in garbage collection and (ROOM) logic; ... adjust implementation of array creation and reference to deal with arrays that can't contain anything; ... (HAIRY-)DATA-VECTOR-REF are can no longer be FLUSHABLE; Enjoy!
contrib/ frobs ... install newer asdf, which fixes my stupid thinko for .sbcl/systems (though in point of fact there would be an argument, I think, for resolving user-homedir-pathname/SBCL_HOME later than we are. ... apply KMR patches (sbcl-devel 2003-03-04) for sb-aclrepl (and turn *CMD-CHAR* into *COMMAND-CHAR* in the process)
Merge mini backend-refactor, motivated by APD's *CHECK-CONSISTENCY*/non-local-exit observations ... OAOOize MAKE-DYNAMIC-SPACE-TNS VM support routine Also add tests for documentation in the presence of generalized function names that should have been merged before but were forgotten (sorry).
Merge "type system insanity" (CSR sbcl-devel 2002-03-01) ... extend INVOKE-COMPLEX-SUBTYPEP-ARG1-METHOD to take return values for the case that no next method is found ... define and use (once!) equivalent logic for COMPLEX-= ... be more uncertain on intersections of class types, since we create them when we don't know enough to canonicalize ... various other cases demand more uncertainty, too (e.g. intersections involving HAIRY-TYPEs) No known failures inherent to the type system!
Fix some more type system stuff ... the NEGATION type method should test for TYPE=, not EQ, with *EMPTY-TYPE* ... install some hair to deal with more RATIONAL/INTEGER confusion (I can no longer construct an example that causes the type system to get the answer wrong involving just INTEGER, RATIONAL, AND, OR and NOT. That's not to say that such an example doesn't exist, only -- as Fermat didn't quite say -- that my brain is too small to contain it)
Fix really stupid bug in CONS :SIMPLE-UNION method ... don't mix the CDR type into the CAR type While I'm there, make the CONS :SIMPLE-UNION method smarter ... canonicalize unions of (CONS A D) with (CONS A' D'), where A subtypep A', to (OR (CONS A (OR D D')) (CONS (AND A' (NOT A)) D')) the point being that this is then in a form that can be further canonicalized when more CONS types come along. This fixes about 5 bugs from pfdietz's suite.
Committed patch for gencgc refactoring based on work done on threads branch. ... to make header file management a lot simpler, and allow the use of interesting typedefs in genesis :C-TYPE slot options, we split runtime.h into lots of smaller files that can be (semi-)independently included. ... all GC and GCish functions now have the same interface, so no need for (eq *internal-gc* #'collect-garbage) test in SUB-GC ... current_region_end_addr and current_region_free_pointer go away, eliminating potential for weird bugs when they're not synchronized properly. Yay OAOO ... disabled (actually, removed) inline allocation, as it depended on old current_region_* (see above) and appears to make not a lot of actual difference to run times anyway pseudo-atomic support is now always compiled in. I can see no good reason for not having it ... much code in alloc() collapsed. Also alloc() no longer attempts to drop its PA and do a collection in the middle of allocation - instead it uses the existing maybe_gc flag to indicate that collection should happen when the allocation is done. Possibly this has bad effects when trying to allocate an object bigger than available dynamic space, but that would fit if a GC were done first. Given the (complete lack of) error handling for out-of-memory conditions in this and all previous SBCL versions, it would be a foolish programmer who was depending on this anyway, though.