Path to this page:
Subject: CVS commit: pkgsrc/lang/sbcl
From: Robert Swindells
Date: 2024-05-03 15:13:38
Message id: 20240503131338.C9030FA2C@cvs.NetBSD.org
Log Message:
Update to sbcl-2.4.4.
Add lang/ecl as a build host option, enable this by default for aarch64.
Changes in sbcl-2.4.4 relative to sbcl-2.4.3
* minor incompatible change: after-GC hooks are now called in the
finalizer thread on threaded builds.
* platform support:
* on win32 on 64-bit systems, clear x87 state as well as SSE
state after an exception. (#2000435, reported by David
Scherfgen)
* enhancement: type assertions resulting from declarations
involving variable numbers of multiple values are now checked.
* enhancement: support for memory allocation arenas is now
available on the arm64 platform.
* enhancement: the cross-referencing facility is now able to
handle anonymous functions.
* enhacnement: the SB-INTROSPECT contrib finds callees in methods
of generic functions.
* bug fix: inconsistency in VOP definitions implementing DPB. (#2059842)
* bug fix: MASK-FIELD miscompilation. (#2059849)
* bug fix: caching a state-dependent type function leads to wrong
type inference further down the line. (#2059888)
* bug fix: internal consistency violation after failing to apply a
MAKE-ARRAY transform. (#2060083)
* bug fix: check the array index before constant-folding an array
reference. (#2060347)
* bug fix: don't try to apply type constraints from SATISFIES
types. (#2060756)
* bug fix: the JOIN-THREAD-PROBLEM function is now exported from
the SB-THREAD package. (#2063385, thanks to Benjamin Lee)
* bug fix: compare-and-swap works as expected on SLOT-VALUE of
FUNCALLABLE-STANDARD-OBJECT instances. (reported by qhong)
* bug fix: on arm64, and x86-64 with some non-default build
options, integer rounding functions treat minus zero more
consistently.
* bug fix: disassembly of stack allocation of vectors caused a
crash. (reported by bohonghuang)
* bug fix: don't leak memory when decompressing a compressed core.
* optimization: the amount of space needed for debug-info is about
50% less, leading to a total default image size reduction of
more than 10%.
* optimization: on arm64 and x86-64, encoding constants in machine
code is sometimes smaller.
* optimization: on arm64 and x86-64, list accumulation is done
with less space overhead.
* optimization: APPLY can apply a function to the REST of a &REST
list without additional consing.
Changes in sbcl-2.4.3 relative to sbcl-2.4.2
* enhancement: when dumping debug information to fasl files, the
system respects the SOURCE_DATE_EPOCH environment variable (if
set) as the latest timestamp to be used.
* contributed module: the sb-perf contributed module, an interface
originally by Luke Gorrie to Linux's perf, is now included by
default on Linux. (Thanks to Philipp Marek)
* platform support:
* on Linux and BSD variants, timezone querying is now faster.
* Arm64/Darwin: allow configuring the system with a
relocatable static space.
* PPC64: allow configuring the system with fasteval.
* bug fix: erroneous transform of EQUALP on characters (#2055425)
* bug fix: float rounders (FTRUNCATE and related functions) handle
minus zero more consistently, returning minus zero as the
primary value when rounding to zero from a negative value.
* bug fix: type checks for (VECTOR T) were giving the wrong answer
for vectors displayed to simple multi-dimensional
arrays. (reported by _death)
* bug fix: do not transform away division by BIT when the BIT
might still include 0. (#2056184, reported by xizang)
* bug fix: various errors related to imperfections in the perfect
hash generator. (#2055794, #2056341)
* bug fix: respect declarations for symbol macros inside
defmethod. (#2056514, reported by Jonathan Braud)
* bug fix: failure to set structure slots to floats on
Arm64. (#2058148, reported by Bibek Panthi)
* optimization: improvements to the implementation of CASE.
* optimization: faster PARSE-INTEGER :radix 10/16 on word-sized integers.
* optimization: improvements to LOGBITP.
Changes in sbcl-2.4.2 relative to sbcl-2.4.1
* bug fix: restore the ability to inherit from both SEQUENCE and
SB-MOP:FUNCALLABLE-STANDARD-OBJECT. (#2050088, reported by
Christophe Junke)
* bug fix: COERCE will not convert lambda forms to functions if
given a type naming a (strict) subclass of FUNCTION.
* bug fix: LOG with a double-float and a ratio argument (in either
order) do not lose precision through a single-float intermediate
argument.
* bug fix: LOG to the base 2 of integer powers of 2 are more
likely to get the mathematically precise answer.
* bug fix: LOG on ratios very near 1 with numerator or denominator
being near a power of 2 will use log1p and so will lose less
precision.
* bug fix: the utf-8 external format with Unix line-endings
updates its character size information when taking the fast path
for a buffer of ascii characters. (#2054169, reported by John
Carroll)
* bug fix: don't print the contents of a possibly no-longer-valid
dynamic-extent cons in PRINT-OBJECT method for THREAD
objects. (#2026195, reported by Jake Connor)
* bug fix: place external entry points for functions consistently
before any local functions. (#2051169, reported by Fedorov
Alexander)
* bug fix: remove unactionable optimization notes for backquoted
forms and ordinary calls to APPEND at high speed. (#2051401,
reported by Robert Brown)
* bug fix: infinite loop in COPY-SEQ on zero-length arrays of
element-type NIL. (#2051759, reported by Devon Sean McCullough)
* bug fix: fix compilation of non-top-level struct
constructors. (#2052329, reported by Robert Poitras)
* bug fixes in SB-SIMD:
* improve bounds checking in SB-SIMD. (#2012010, reported by
Patrick Poitras)
* fix SB-SIMD AVX f64.4-reverse (#2012986, thanks to Ari Projansky)
* fix SB-SIMD shuffles on AVX and SSE2 (#2012990, reported by
Ari Projansky)
* fix lifetimes in sse+xmm0 VOPs (#2015329, reported by Ari
Projansky)
* optimization: a number of internal tables, particularly those
related to Unicode support have been converted to use perfect
hash mechanisms, improving both speed and space.
* optimization: FIND, POSITION, ASSOC and RASSOC with constant
sequence arguments containing symbols as keys are compiled to
perfect hash lookups.
* optimization: the compiler runs a jump-to-jump elimination pass
on x86-64.
* system integrity: compiling the system itself on x86-64/linux
now produces bitwise-identical cross-compiled fasls whether the
build host is cmucl, ccl, clisp or sbcl itself.
Changes in sbcl-2.4.1 relative to sbcl-2.4.0
* enhancement: compact instance headers are partially supported
with the mark-region parallel garbage collector.
* enhancement: functions with declared return types have their
return values type-checked in optimization regimes with high
SAFETY and (DEBUG 3).
* platform support:
* disable ASLR on FreeBSD. (#2047655, thanks to Konstantin Belousov)
* link to libpthread on FreeBSD. (thanks to Konstantin Belousov)
* restore build on 64-bit riscv. (#2034713, #2048869, reported
by Guillaume LE VAILLANT)
* restore build on 64-bit ppc.
* fix case in referring to a header file. (#2047726, thanks to
Andrew Kravchuk)
* the fastrem-32 feature (for optimized computations of FLOOR)
is now available on all platforms.
* bug fix: resweep moved lines after compaction in the mark-region
parallel garbage collector.
* bug fix: infinite loops in the compiler on some constructs with
SATISFIES types. (#2047289, #2047706, #2049631)
* optimization: various hash tables implementing part of the
system (packages, Unicode data tables) have been converted to
use perfect hash functions.
* optimization: TYPECASE on structure class hierarchies is
implemented using a perfect hash.
* optimization: eliminate bound checks with relative offsets. (#1830314)
* optimization: the compiler has more knowledge of how to optimize
DIGIT-CHAR.
* optimization: the compiler can elide intermediates for some
calls to APPLY, CONCATENATE and MAKE-ARRAY with arguments that
are freshly-consed modifications of existing sequences.
* optimization: (LOOP FOR X IN (REVERSE LIST) ...) is now faster
and conses less.
* optimization: (LOOP ... APPEND ...) is more compact, and does
less work if appending NIL.
* optimization: type tests of various array types are faster and shorter.
Changes in sbcl-2.4.0 relative to sbcl-2.3.11
* minor incompatible change: *COMPILE-VERBOSE* and *LOAD-VERBOSE*
are bound to NIL when the system is started with the --script
command-line argument. (reported by Hraban Luyat, thanks to
Nicolas Martyanoff)
* minor incompatible change: when looking for its core file, the
system checks the validity of whatever is pointed to by
/proc/self/exe, and assesses argv[0] if /proc/self/exe is
invalid. (thanks to Philipp Marek)
* minor incompatible change: the system no longer provides type
names on the standard (CL) symbols ARRAY-RANK, ARRAY-TOTAL-SIZE,
PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX or
FLOAT-DIGITS. (#2045559)
* platform support:
* the mark-region parallel garbage collector can be enabled on
arm64. (Thanks to Hayley Patton)
* fix build on modern FreeBSDs. (#2046966, thanks to David
J. Flander)
* bug fix: restore compiler type inference correctness on calls to
REDUCE with :INITIAL-VALUE but no :FROM-END. (#2044856, reported
by Patrick Poitras)
* bug fix: compiler error when declaring SB-EXT:MUFFLE-CONDITIONS
on an unknown type. (#2045442)
* bug fix: the disassembler provided non-pretty output for
registers in some cases. (#2046004, reported by Fedorov
Alexander)
* bug fix: the system is slightly less likely to exhaust the stack
again when reporting a control stack exhaustion error.
* optimization: GC write barriers are eliminated in more cases.
* optimization: improved type derivation of iteration variables
with mixed types.
* optimization: remove unused initial values from LET bindings,
improving register type selection.
* optimization: lower EQUALP/EQUAL/EQL to EQL/EQ in FIND/MEMBER
based on the input types.
* optimization: better type derivation for DPB, LOGIOR.
Files: