Has it been a month already? Bump +FASL-FILE-VERSION+. Reasons: * "0.8.20.6: Make FILE-STREAM and STRING-STREAM potential mixins in CLOS" * "0.8.20.21: Add immediate single-floats on x86-64." * Probably others... Restore a modified version of the "slightly odd-looking stuff" that was removed in 0.8.20.30. It's there because the arch name is "x86-64" but the config file suffix is "x86_64-linux".
Slightly nicer behaviour on non-NPTL systems makes it possible to use thread-enabled binaries in thread-unfriendly environments again - but a warning is issued at startup and MAKE-THREAD signals an error Remove some slightly odd-looking stuff in make-config.sh: once again it is possible to "SBCL_ARCH=x86 sh make.sh" on an x86-64
Merge SB-FUTEX and SB-THREAD: the latter now requires the former. SBCL threads now require Linux kernel 2.6, or an NPTL backport to 2.4 such as the Red Hat one Lock/unlock functions take long (not int) as arguments: this makes a difference on 64 bit ports (or would do if we had threading support on either of them)
* fix issue reported by Juho Snellman on sbcl-devel 2005-03-18, and some related problems. * minor combinatorial explosion in debug.impure.lisp; most tests still skipped on x86/linux :/
Fix x86-64 backend bugs found using Paul Dietz's random tester. * Sign-extension in constant LOGAND, + and TRUNCATE VOPs. * Sign-extension of literal (unsigned-byte 32) passed as arguments on the stack. Fix handling of :START1 and :START2 in the string comparison deftransforms on simple-base-strings (ansi-tests MISC.572/573/574). Minor cleanup: Use the already defined *cache-expand-threshold* instead of magic numbers in pcl/cache.lisp.
Fix MAKE-PACKAGE.ERROR. (PFD ansi-tests, exposed by removal of the TOPLEVEL restart)
Improve sb-simple-streams's dependency information (problem noted by VJA sbcl-devel)
One more immediate-single-float fix ... update search_space().
Fix some GC problems introduced in the x86-64 immediate single-floats commit: * Make gencgc understand immediate single-floats too. * Fix typo in purify. Test changes: * Don't test floating-point overflow detection on x86-64, add a BUGS entry. * Change #-(x86 linux) to #-(and x86 linux) in debug.impure.lisp.
Fix MEMORY_FAULT_ERROR invocations in bsd-os.c. SBCL now builds on FreeBSD again.
Add immediate single-floats on x86-64. The implementation is conditionalized on (= SB!VM:N-WORD-BITS 64), so the following bits need to be done for the 64-bit Alpha port too: * Add some new type-test generators (%TEST-FIXNUM-AND-IMMEDIATE, %TEST-FIXNUM-IMMEDIATE-AND-HEADERS, %TEST-IMMEDIATE-AND-HEADERS). * Modify single-float move-vops and SINGLE-FLOAT-BITS.
Fix handling of SIG_MEMORY_FAULT in the (conceptual) interrupt_handle_now() case -- arrange_return_to_lisp_function() to MEMORY_FAULT_ERROR instead, for x86(-64). (I hope I haven't broken anything on other architectures... please check!) ... also log problem with reporting the error in BUGS
Merge sb-introspect improvements from Luke Gorrie (sbcl-devel "Re: definition-source-created in sb-introspect.lisp" 2005-03-13
"Mature debugger function looking for love; WLTM a serious hacker to share my kinks with. ``It's what's inside that counts.'' Rpl 2 SBCL CVS, X86-CALL-CONTEXT"
suppressed a VERIFY-BACKTRACE test, because it seems to be broken independent of the haiblefixes I'm merging merged various fixes from Bruno Haible sbcl-devel 2005-03-10. (Note that some can't be properly exercised w/out a Mac or CLISP, but since they were self-evidently broken before (e.g., #+DARWIN or SUBTYPEP where only #!+DARWIN or SB!XC:SUBTYPEP makes sense), I merged them on the theory that it can't be making things fundamentally worse.:-) (+ unrelated .cvsignore tweaks to reduce general CVS nagging)
Fixed cross-compilation problems to and from Darwin/PPC. * #+darwin changed to #!+darwin before linkage-table constants in src/compiler/ppc/parms.lisp
* add TOPLEVEL/TOP debugger command for convenience, making it return to the top level. * use the gained screen real-estate to insert an empty line between restarts and the first frame.
A rewrite of the x86-64 disassembler infrastructure for better handling of operand sizes and register widths (patch by Lutz Euler, sbcl-devel/"Improving the x86-64 disassembler" on 2005-03-06).
* get rid of MAKE-NULL-INTERACTIVE-LEXENV * use READ & EVAL to process initialization files * more restarts available during initialization file and --eval option processing (CONTINUE is "skip to next form / option, ABORT is "skip this initialization file / all --eval options".)
* Fix bug, reported by David Tolpin on c.l.l: LOAD should bind *LOAD-PATHNAME* to the merged pathname.
Fix ctor/package deletion problems (Tim Daly sbcl-help 2005-03) ... MORE GENERALIZED FUNCTION NAMES
Fix sb-simple-streams; all tests pass again: * Test that clear-input can be called without errors but don't make assumptions about the stream state afterwards * Fix some LISTEN failures (simple-stream encapsulated in a two-way stream, incorrect assumptions about return value of stream-misc-dispatch :listen)
* Disable backtrace checking on (and x86 linux). * Describe bugs MISC.555 and MISC.563. * Define out-of-line %ATAN2 on x86 (fix MISC.564).
While we are discussing SB-WALKER, bug 276 has risen again: * fix a case with M-V-SETQ; * record a problem with global variables.
Make FILE-STREAM and STRING-STREAM potential mixins in CLOS (... and also, hackily, into structures.) ... adjust FD-STREAM, and the various ANSI string streams. ... sb-simple-streams can now make file-simple-stream and string-simple-stream subclasses (and hence subtypep) the relevant mixin. Caveat downloader I: This merge includes David Lichteblau's sb-simple-streams test suite extension, from which seven tests fail. Caveat downloader II: debug.impure.lisp is failing for me on x86/Linux. I'm pretty sure this is not my fault -- I blame the debugger restructuring -- but it could be anyway. Caveat user: Bad Things happen if you try to mix both string-stream and file-stream into the same subclass. Don't Do It.
* (funcall (compile nil '(lambda () (typep t '(member t nil))))) => T, not (T)
* use *DEBUG-IO* more consistently.
* don't use PREPROCESS-FOR-EVAL for EVAL in the debugger since the documentation was just updated to that effect, and it takes two arguments anyways. Restoring this as part of the debugger command loop might be nice, but potentially confusing.
Fix the compiler note emission from COUNT and EQUAL on bit-vectors. (reported by Lutz Euler sbcl-devel 2005-02-16) ... rewrite (1- (ash 1 <integer 1 n-word-bits>)) as (ash #xff...ff (- n-word-bits <integer 1 n-word-bits>))
* fix bug 32: print closures as #<CLOSURE name-goes-here>. * fix bug 33: better inspection of closures * remove bug 60: LIST-LOCATIONS has been deleted at some point in history, no point in keeping a bug about it. * move to using structured function names: (XEP FOO), etc instead of "XEP for FOO". Ditto for component names. * unless SB-DEBUG:*SHOW-ENTRY-POINT-DETAILS* is true display various entry points in backtraces as if they were "normal functions", and adjust the argument list accordingly. * fix for debugger I/O style issues: use *DEBUG-IO*, not *STANDARD-OUTPUT*. * use INTERACTIVE-EVAL in the debugger instead of reimplementing it. * update debugger documentation.
release, tagged as sbcl_0_8_20
Whoops. NEWS asserts that LOAD copes with :external-format arguments. Better make sure that the compiler is aware of that too.
* Fix MISC.535: CONSTANT-LVAR-P looks through CASTs. * Workaround lack of recursion recognition in XC for PRINCIPAL-LVAR-USE.