X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=fed0849d1090bd478f7d1fc070acd0e6416f1ea4;hb=ae92eeae8842e86eeaae614bab1672804a28c7fd;hp=0226ff5280919a5c94b047ea9b15e9e2299dc5c9;hpb=4f9b5cd4268d3e28ac54748c4871e07f38acfd4c;p=sbcl.git diff --git a/NEWS b/NEWS index 0226ff5..fed0849 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,34 @@ ;;;; -*- coding: utf-8; fill-column: 78 -*- +changes in sbcl-1.0.28 relative to 1.0.27: + * bug fix: timers could go off in the wrong order, be delayed indefinitely + (thanks to Ole Arndt for the patch) + * bug fix: RESTART-FRAME and RETURN-FROM-FRAME stack corruption + +changes in sbcl-1.0.27 relative to 1.0.26: + * new port: support added for x86-64 OpenBSD. (thanks to Josh Elsasser) + * new port: support added for x86-64 Solaris. (thanks to Alex Viskovatoff) + * improvement: the system either recovers from stack exhaustion or dies + properly as opposed to leaving the user uncertain of whether the handler + trampled on some random memory next to the stack or having to rely on + --lose-on-corruption (which is still a good idea to use in production + because stack exhaustion can happen in signal handlers which will likely + lead to hangs.) + * bug fix: fix gc related interrupt handling bug on ppc (regression from + 1.0.25.37, reported by Harald Hanche-Olsen) + * bug fix: work around signal delivery bug in darwin (regression from + 1.0.25.44, reported by Sidney Markowitz) + * bug fix: fix ERROR leaking memory (reported by David Thompson) + changes in sbcl-1.0.26 relative to 1.0.25: - * incompatible change: GC-OFF and GC-ON are removed, they were + * 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 @@ -8,11 +36,32 @@ changes in sbcl-1.0.26 relative to 1.0.25: 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 changes in sbcl-1.0.25 relative to 1.0.24: * incompatible change: SB-INTROSPECT:FUNCTION-ARGLIST is deprecated, to be