All,
I've just released SBCL 1.0.26. As well as the NEWS file contents
(pasted below), it's worth being aware that there is a known issue in
CL:ROOM, which conses rather too many bignums.
Best,
Christophe
changes in sbcl-1.0.26 relative to 1.0.25:
* incompatible change: an interruption (be it a function passed to
INTERRUPT-THREAD or a timer function) runs in an environment where
interrupts can be enabled. The interruption can use
WITH-INTERRUPTS or WITHOUT-INTERRUPTS as it sees fit. Use
WITHOUT-INTERRUPTS to avoid nesting of interruptions and
potentially running out of stack. Keep in mind that in the absence
of WITHOUT-INTERRUPTS some potentially blocking operation such as
acquiring a lock can enable interrupts.
* incompatible change: GC-OFF and GC-ON are removed, as they were
always unsafe. Use WITHOUT-GCING instead.
* new feature: runtime option --disable-ldb
* new feature: runtime option --lose-on-corruption to die at the
slightest hint of possibly non-recoverable errors: running out of
memory, stack, alien stack, binding stack, encountering a memory
fault, etc. In the absence of --lose-on-corruption a warning is
printed to stderr.
* enhancement: detect binding stack exhaustion
* enhancement: detect alien stack exhaustion on x86/x86-64
* improvement: generally more stable and reliable interrupt handling
* improvement: there is a per thread interruption queue,
interruptions are executed in order of arrival
* improvement: a repeating timer reschedules itself when the it has
finished, but expiration times are spaced equally. If an
expiration time is in the past it will trigger after a short grace
period that may give a chance to other things to run.
* optimization: slightly faster gc on multithreaded builds
* optimization: faster WITHOUT-GCING
* bug fix: when JOIN-THREAD signals an error, do it when not holding
important locks so that the debugger/handler doesn't produce
recursive errors or deadlock.
* bug fix: real-time signals are not used anymore, so no more
hanging when the system wide real-time signal queue gets full.
* bug fix: INTERRUPT-THREAD on a dying thread could produce memory
fault.
* bug fix: finalizers, gc hooks never run in a WITHOUT-INTERRUPTS
* bug fix: fix random memory faults related to interrupts on alpha
* bug fix: fix random memory faults related to interrupts on sparc
* bug fix: fix deadlocks related to starting threads
* bug fix: fix deadlines on locks on futex platforms
* bug fix: restore errno in signal handlers
* bug fix: fix deadlocks related to hash tables
* bug fix: fix deadlocks in pcl
|