News
New SBCL versions are usually released at the end of each
month: check the Sourceforge File List to see the current version. The new features of the two most recent SBCL releases are listed below.
Please see the complete news page for details on all historical SBCL releases.
New in version 1.0.16
- minor incompatible change: revert the changes to sb-posix's error
signaling added in 1.0.14.
- minor incompatible change: change PROBE-FILE back to returning
NIL whenever we can't get a truename, as was the case before 1.0.14.
- minor incompatible change: SB-BSD-SOCKETS:NAME-SERVICE-ERROR now
inherits from ERROR instead of just CONDITION.
- new feature: SB-INTROSPECT can provide source locations for instances
as well. (thanks to Tobian Ritterweiler)
- optimization: binding special variables now generates smaller code
on threaded platforms.
- optimization: MEMBER and ASSOC are over 50% faster for :TEST #'EQ
and cases where no :TEST is given but the compiler can infer that
the element to search is of type (OR FIXNUM (NOT NUMBER)).
- optimization: better LOGNOT on fixnums.
- optimization: modular arithmetic for a particular requested width
is implemented using a tagged representation unless a better
representation is available.
- fixed bug 423: TRULY-THE and *CHECK-CONSISTENCY* interaction.
- bug fix: SB-BSD-SOCKETS:MAKE-INET-ADDRESS checks the input string
for wellformedness and returns a specialized vector. (reported by
Francois-Rene Rideau)
- bug fix: FIND-CLASS was not thread-safe. (reported by Attila Lendvai)
- bug fix: ~R was broken for vigtillions. (thanks to Luis Oliveira)
- bug fix: attempt to obtain *SCHEDULER-LOCK* recursively when
unscheduling timer at the same time as another timer fires.
- bug fix: don't reschedule timers for dead threads.
- bug fix: periodic polling was broken. (thanks to Espen S Johnsen)
- bug fix: copying output from RUN-PROGRAM to a stream signalled
bogus errors if select() was interrupted.
- enhancement: add support for fcntl's struct flock to SB-POSIX.
New in version 1.0.15
- enhancement: cleaner backtraces for interactive interrupts, as
well as other cases where the interesting frames used to be
obscured by interrupt handling frames.
- enhancement: untracing a whole package using (UNTRACE "FOO") is
now supported, and tracing a whole package using (TRACE "FOO") now
traces SETF-functions as well.
- enhancement: implement SB-POSIX:MKTEMP and SB-POSIX:MKDTEMP.
- SB-DEBUG:PRINT-FRAME-CALL now prints the entry-point kind even
when SB-DEBUG:*SHOW-ENTRY-POINT-DETAILS* is NIL.
- unreadably printed representation of hash-tables now includes
weakness if any.
- bug fix: partially fixed #188: type propagation from assignments
is now more efficient.
- bug fix: fixed #407: (COERCE X 'SINGLE-FLOAT) and (COERCE X
'DOUBLE-FLOAT) are not flushable.
- bug fix: on x86 and x86-64 pointer based EQ-hashing now uses the
full address of the object, and none of the tag bits.
- bug fix: readably printing hash-tables now respects other printer
control variables. (reported by Cedric St-Jean)
- bug fix: compiler gave a bogus STYLE-WARNING for the :SYNCHRONIZED
keyword with MAKE-HASH-TABLE.
- bug fix: export SB-POSIX:MKSTEMP.
- bug fix: SORT was not interrupt safe.
- bug fix: XREF accounts for the last node of each basic-block as
well.
- bug fix: MAKE-INSTANCE optimizations interacted badly with
non-keyword :DEFAULT-INITARGS in the presence of :BEFORE/:AFTER
methods on SHARED-INITIALIZE. (thanks to Matt Marjanovic)
- bug fix: the CTOR optimization for MAKE-INSTANCE should no longer
create obsolete instances in the case of redefinition or
obsoletion of a superclass. (thanks to Andy Hefner)
- bug fix: Support for the Alpha architecture has been revived; it had
suffered somewhat from lack of maintenance since sbcl-1.0.
- improvements to the Windows port:
- The system detects the codepage to use at startup, instead of
using the value from the saved core. (thanks to Kei Suzuki)
Older SBCL releases