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.33
Back to top- new port: support added for x86-64 NetBSD. (thanks to Aymeric Vincent)
- improvement: support O_LARGEFILE access to files larger than 2GB on
x86-64/linux. (thanks to Daniel Janus; launchpad bug #453080)
- new feature: SB-INTROSPECT:WHO-SPECIALIZES-DIRECTLY to get a list of
definitions for methods specializing on the passed class itself.
- new feature: SB-INTROSPECT:WHO-SPECIALIZES-GENERALLY to get a list of
definitions for methods specializing on the passed class itself, or on
subclasses of it.
- new build flag: :sb-xref-for-internals; SBCL will collect xref information
about itself during the build (e.g. for M-? in Slime), if this flag is
enabled in customize-target-features.lisp. This will increase the core
size by about 5-6mb, though, so it's mostly interesting to SBCL
developers.
- new feature: various GENCGC tuning parameters have been experimentally
documented and exported from SB-EXT. See documentation for details.
- fixes and improvements related to Unicode and external formats:
- the Unicode character database has been upgraded to the
Unicode 5.2 standard, giving names and properties to a number of new
characters, and providing a few extra characters with case
transformations.
- improvement: restarts for providing replacement input/output on coding
errors for fd-stream external formats.
- improvement: where :<encoding> is a keyword corresponding to an
external format the system supports, it is now possible to specify
(:<encoding> :replacement <character>) as an external format which will
automatically substitute <character> on encoding or decoding errors for
streams and for STRING-TO-OCTETS and its inverse. (launchpad bug
#317072)
- improvement: the file streams underlying the standard streams (such as
*STANDARD-INPUT*, *TERMINAL-IO*) are opened with an external format
which uses the replacement mechanism to handle encoding errors,
preventing various infinite error chains and unrecoverable I/O
confusion.
- minor incompatible change: the utf-8 external format now correctly
refuses to encode Lisp characters in the surrogate range (char-codes
between #xd800 and #xdfff).
- fix a typo preventing conversion of strings into octet vectors
in the latin-2 encoding. (reported by Attila Lendvai; launchpad bug
#471689)
- fix a bug in the octet multibyte handling of decoding errors and the
USE-VALUE restart. (launchpad bug #314939)
- fix the bug underlying the expected failure in the FORCE-END-OF-FILE
restart on fd-stream decoding errors.
- fix a bug in the ATTEMPT-RESYNC fd-stream decoding restart when the
error is near the end of file.
- fix a double-error case in unibyte octet conversions, when the first
use of USE-VALUE is ignored.
- fix bugs in handling of undefined code points in unibyte encodings.
- fix LISTEN (and consequent hangs in READ-CHAR-NO-HANG) on bivalent
streams after an UNREAD-CHAR.
- enhancement: SB-INTROSPECT:ALLOCATION-INFORMATION also reports if the
object is allocated in a boxed region of dynamic space.
- enhancement: SB-POSIX:FORK now signals an error if an attempt to
fork with multiple Lisp threads running is made, instead of going
ahead with unpredictable consequences. (reported by Leslie Polzer)
- bug fix: uses of slot accessors on specialized method parameters within
the bodies of SLOT-VALUE-USING-CLASS methods no longer triggers a type
error while finalizing the class. This fix may cause classes with slot
accessors to be finalized later than previously. (reported by Lars Rune
Nøstdal; launchpad bug #473699)
- bug fix: restore buildability on the MIPS platform. (regression from
1.0.30.38, reported by Samium Gromoff)
- bug fix: inspecting closures is less likely to fail with a type error.
- bug fix: no timer starvation when setting the system clock back.
(launchpad bug #460283)
- bug fix: WITH-STANDARD-IO-SYNTAX now binds *PRINT-PPRINT-DISPATCH* to the
standard pprint dispatch table as specified by CLHS.
- bug fix: give CLISP a hint about a type declaration to enable it to build
the cross-compiler without warnings. (thanks to Josh Elasser; launchpad
bug #396597)
- bug fix: correctly dump literal objects in defaulting forms of arglists.
(reported by Attila Lendvai; launchpad bug #310132)
- bug fix: distinguish in type specifiers between arrays that might be
complex and arrays that are definitely complex. (launchpad bug #309129)
- bug fix: SUBTYPEP knows that the SYMBOL type is not SUBTYPEP the KEYWORD
type. (reported by Levente Mészáros; launchpad bug #485972)
- bug fix: setting the value of a symbol-macro within a method in the
presence of type declarations works properly again. (reported by Iban
Hatchondo; launchpad bug #485019)
New in version 1.0.32
Back to top- optimization: faster FIND and POSITION on strings of unknown element type
in high SPEED policies. (thanks to Karol Swietlicki)
- optimization: faster CONCATENATE 'STRING in low SPEED policies (reported
by David Vázquez)
- improvement: better error signalling for bogus parameter specializer names
in DEFMETHOD forms (reported by Pluijzer)
- bug fix: DELETE-FILE once again works on logical pathnames (regression
since 1.0.30.49)
- bug fix: LOGICAL-PATHNAME signals a TYPE-ERROR if pathspec is specified
incorrectly.
- bug fix: redefinition of a class via DEFCLASS without :DEFAULT-INITARGS
removes previous default initargs (reported by Lars Rune Nøstdal and
Samium Gromoff)
- bug fix: correct WHO-CALLS information for inlined lambdas with complex
lambda-lists. (reported by Peter Seibel)
- bug fix: SAVE-LISP-AND-DIE option :SAVE-RUNTIME-OPTIONS did not work
correctly when starting from an executable core without saved runtime
options (reported by Faré Rideau, thanks to Zach Beane)
- bug fix: (SETF SLOT-VALUE) signalled a warning which should have been
an optimization note instead. (reported by Martin Cracauer)
- bug fix: WITH-SLOTS did not work with THE forms. (thanks to David Tolpin)
- bug fix: Have RUN-PROGRAM with :INPUT T only run the subprocess in a
new process group if it doesn't need to share stdin with the sbcl
process. (thanks to Leslie Polzer)
- bug fix: SATISFIES could be misoptimized to refer to a local function.
(reported by Stanislaw Halik)
Older SBCL releases