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.3.16Back to top
- optimization: various small tweaks give around 5% faster garbage
- bug fix: better detection of when an impossible code path does
not need a warning. (#1668619)
- bug fix: stronger attempts to disable position-independent
executable building. (#1668986, patch from Mark Wright)
- bug fix: OPEN :IF-EXISTS NIL signalled a condition on Windows.
(#1674437, reported by Jan Idzikowski)
Older SBCL releases
New in version 1.3.15Back to top
- minor incompatible change: the reader will when feasible create
new symbols using a BASE-STRING for the print name. Additionally,
string literals can favor the base-string type if desired, though
the default is to always return UTF-32 strings for compatibility.
A preference for base-string does not disable reading Unicode.
The choice is controlled via (SETF READTABLE-BASE-CHAR-PREFERENCE).
If Unicode was disabled at build time, this setting does nothing.
- enhancement: SBCL generates more debug information by default.
- enhancement: type errors provide context information, such as which
variable is being bound, which slot of which structure is being set.
- enhancement: if #+immobile-symbols is in build-time *FEATURES* (not
enabled by default), then symbols will never be moved in memory
except by SAVE-LISP-AND-DIE. Immobility has helpful implications for
code generation as well as interaction with foreign routines.
This feature can only be enabled if #+immobile-space is enabled.
- enhancement: undefined function errors can be restarted on x86-64, to
either retry calling the function again or call a user supplied function.
- enhancement: sb-ext:restrict-compiler-policy accepts an upper bound in
addition to a lower bound.
- enhancement: #+immobile-code improves the speed of function calling.
Some delay may be noticed when redefining an existing function
from a saved core file however.
- defaults change: sb-ext:*disassemble-annotate* default to NIL, due to its
- new feature: SB-LINKABLE-RUNTIME, allowing linking with extra object
files to help with delivery of executables. (Thanks to François-René
- bug fix: data race in GENTEMP fixed - it can no longer return the
same interned symbol to multiple threads if called concurrently
- bug fix: interrupting LOADing of FASLs does not leave functions without
source locations. (#540276)
- bug fix: DYNAMIC-EXTENT-declared results of NOTINLINE local functions were
treated as if they were actually stack allocated (#1659964)
- bug fix: correctly handle the case of a non-local exit within a function
terminating the extent of dynamic-extent, dynamic-bound variables in the
presence of multiple-values (#1655011)
- bug fix: handling of SB-SYS:WITH-PINNED-OBJECTS in the interpreters (both
sb-eval and sb-fasteval) now actually pins objects on gencgc.
- bug fix: AVX registers are preserved during exceptions on x86-64 macOS.
- bug fix: (directory "SOMETHING/*/**/MORE") is no longer equivalent to
- bug fix: better console IO on Windows (#1660906)