|
From: Christophe R. <cs...@ca...> - 2026-01-26 21:36:59
|
Dear all,
SBCL 2.6.1 is now available from the usual places in version control and
from SourceForge. Visible changes in this release are summarized below.
Thanks to the efforts of some valiant contributors, this month has seen
support added for a number of platforms, including FreeBSD on PowerPCs,
and Linux on LoongArch -- as ever with new ports, reports of success or
failure are particularly welcome.
Christophe
changes in sbcl-2.6.1 relative to sbcl-2.6.0:
* minor incompatible change: the never-documented :NO-CONSTRUCTOR-DEFUN
option to DEFSTRUCT is no longer supported.
* platform support:
** support for the LoongArch architecture has been added. (thanks to
ZiLong Wang)
** support for FreeBSD on 32-bit and 64-bit PowerPC platforms has been
added. (thanks to Piotr Kubaj)
** SB-ALIEN now supports passing and returning structures by value (rather
than by reference) in accordance with the platform ABIs, on x86-64 and
arm64 platforms. (lp#313202, thanks to Jesse Bouwman)
** wide compare-and-exchange is supported on the arm64 platform for
Armv8.1-A or later.
* bug fix: signal a DIVISION-BY-ZERO error in calls of (/ 0 0).
(lp#2137266, reported by khbit)
* bug fix: compiler infinite loop from previously-acceptable recursive
inline expansions. (lp#2137380, reported by Frode Fjeld)
* bug fix: unnormalized inequality constraints causing a compiler infinite
loop. (lp#2137422, reported by Jesse Bouwman)
* bug fix: compiler infinite loop from a deleted loop with an remnant
TAGBODY. (lp#2137493)
* bug fix: miscompilation of REDUCE #'APPEND with non-null INITIAL-VALUE and
:FROM-END NIL. (lp#2137736, reported by Vasily Postnicov)
* bug fix: encode XREF locations in a way that allows for higher form
numbers. (lp#2137765, reported by Jim White)
* bug fix: lookups of optimized memory movers fails when *PRINT-BASE* is not
10. (lp#2138812, reported by Robert Dodier)
* bug fix: CLRHASH on a hash table with weak keys should not corrupt the
table's index vector. (lp#2138965, reported by Patrick Poitras)
* bug fix: address a number of type derivation subtleties related to
floating point zeros.
* optimization: various combinations of arithmetic operations with variables
and constants are simplified to have fewer calls.
* optimization: elide full calls to CONJUGATE when its argument is known to
be of type REAL. (lp#2137354, thanks to Vasily Postnicov)
* optimization: the compiler knows more about the type and results of
ARRAY-DIMENSION.
* optimization: transform ARRAY-DIMENSIONS away on objects with array types
of known dimensions. (lp#2138581, thanks to Vasily Postnicov)
* optimization: (equal (array-dimensions a) (array-dimensions b)) does not
cons intermediate lists.
* optimization: (make-array (array-dimensions a)) does not cons a list.
|