* CLisp didn't like the combination, use a macrolet instead * Patch by Luis Oliveira
* have make-config.sh add mach-exception-handler to the features by default. This gets around the CrashReporter problems and enables debugging of SBCL processes with GDB.
First build problem found by James Knight's BuildBot. :-)
* Make the underlying FILE-POSITION on FD-STREAMs interrupt-safe. This is not enough to make FILE-POSITION on FD-STREAMs interrupt safe, as the ANSI-STREAM layer is not -- or at least I doesn't look like it to me. * Split FD-STREAM-FILE-POSITION into two parts for easier reading, and make the error behaviour more ANSI compliant. * Move FLUSH-OUTPUT-BUFFER to FINISH-FD-STREAM-OUTPUT to make it a one-stop-shopping implementation of finish-output for FD-STREAMs. * New function: FD-STREAM-OUTPUT-FINISHED-P, which returns false if there is any pending output on the stream. * Add comments explaining why certain VECTOR-SAP usages are safe without pinning the vector -- at least on x86oids. * Instead of (IF #-WIN32 P #+WIN32 T #-WIN32 THEN #+WIN32 ELSE), let us use #-WIN32 ELSE #+WIN32 (IF P THEN ELSE)...
* It's not like it's actually worked for anyone in ages, but people keep trying to use it...
* CLisp rightfully complains about this when used as a build host
* Factor out looping on SERVE-ALL-EVENTS to FINISH-FD-STREAM-OUTPUT. * Make IO-TIMEOUT a subclass of TIMEOUT. * Remove spurious SB!SYS: prefixes from src/code/stream.lisp and fd-stream.lisp. * Delete stale symbols ALLOCATE-SYSTEM-MEMORY-AT, C-PROCEDURE, POINTER, POINTER>, POINTER<, SERVER, SERVER-MESSAGE, and WITH-ENABLED-INTERRUPTS from SB-SYS. (Also delete commented out implementation of W-E-I in target-signal.lisp.)
* Instead of copying the output string each time we need to expand it, maintain a chain of buffers. For large inputs the improvement is vast, for small inputs the performance characteristics are essentially the same. One the average seems to cons about 30% less.
* SIMPLE-STRING is a special case in EXTRACT-UPGRADED-ELEMENT-TYPE
* Replace the typecase-based HAIRY-DATA-VECTOR-* with a table-driven dispatch on widetags * Move bounds checking of one-dimension AREFs into HAIRY-DATA-VECTOR-* from the caller, so that we can avoid doing a full ARRAY-DIMENSION in the common case. * 3-5x speedup on generic array accesses
* Use CODE-INSTRUCTIONS instead of (%PRIMITIVE CODE-INSTRUCTIONS). * Eliminate TRULY-THE and THE from src/code/room.lisp. * Byte-counts don't necessarily fit into fixnums, so remove some of the fixnum declarations (reported by Faré on sbcl-devel.) * Test-case.
* Hashing on just the first 4 elements makes EQUALP tables essentially useless for many kinds of data due to collisions. Hash all the elements. * Optimize a couple of other cases that are probably common (u-b 8 vectors, fixnum vectors). * Change EQUALP-HASH to punt to EQ-HASH when appropriate
* CACHE-NUMBER-VECTOR-REF and WRAPPER-CACHE-NUMBER-VECTOR-REF were equivalent to LAYOUT-CLOS-HASH. Use only the latter for easier reading. * *PREVIOUS-NWRAPPERS* is protected by the PCL lock, so ok. * The whole of dlisp2.lisp is currently dead code.
…XHASH) * The value of SXHASH on non-string/bitvector arrays should not change when the contents of the array change (clhs sxhash, clhs 184.108.40.206). So the commit in 0.9.15.21 is invalid. * But luckily nothing requires us to use SXHASH for our own tables. Change the definition of EQUAL-HASH to punt to EQ-HASH for data types where EQUAL == EQL
* WITHOUT-INTERRUPTS while using the temp-vector that is also bound to the thread-local *ZAP-ARRAY-DATA-TEMP*, so that interrupt handlers calling ADJUST-ARRAY cannot stomp on the data. Also zero out the temp-vector immediately, and be a bit more sensible about filling it. * STABLE-SORT has been audited for interrupt-safety vrt. its cached temporary vector, and is already OK. * Squeeze a mighty 1050 words out of the core by using empty vectors for both of the above to start with.
… core * Also shrink the table if sufficiently many symbols are uninterned from the package * Shrinks the core by 800k * Patch by Lutz Euler on sbcl-devel 2007-04-01