Path to this page:
Subject: CVS commit: pkgsrc/lang/sbcl
From: Robert Swindells
Date: 2025-06-01 20:18:14
Message id: 20250601181814.E5038FBE3@cvs.NetBSD.org
Log Message:
Update to sbcl-2.5.5.
Changes in sbcl-2.5.5 relative to sbcl-2.5.4
* minor incompatible change: the output from TRACE is now prefixed
by a FRESH-LINE on *TRACE-OUTPUT*.
* platform support:
* On Linux, the system is better at negotiating with the
kernel to find locations for Lisp memory spaces, succeeding
more often than previously.
* bug fix: resolve signed/unsigned char mismatch in RUN-PROGRAM on
Windows. (#2110525, reported by awlygj)
* bug fix: compiler confusion given sufficiently complex derived
type constraints. (#2109902)
* bug fix: compiler inconsistency in low-level representation
leading to inconsistent transformations. (#2109837)
* bug fix: return NIL from calls to DOCUMENTATION on illegal
function names.
* bug fix: calls to APPLY or VALUES-LIST on some combinations of
constant arguments could lose the constant nature after
transformation. (thanks to Hayley Patton)
* optimization: some micro-improvements to bignum operations,
particularly on x86-64 and arm64
* optimization: allow the result of MAKE-STRING to be allocated on
the stack when :element-type is unknown.
* optimization: the compiler will recognize the use of ZEROP on
the results of LENGTH and REM (on suitable operands) to avoid
full computation of the intermediate result.
Changes in sbcl-2.5.4 relative to sbcl-2.5.3
* enhancement: :FUN-END breakpoints now support the known values
return convention when DEBUG > 0. This means that tracing local
functions works in more situations.
* platform support:
* on x86-64, relocation of static space is always enabled.
* save-lisp-and-die with :callable-exports can be used for
sbcl.dll on Windows.
* Building with UCRT64 on Windows is now fully supported.
* bug fix: :FUN-END breakpoints work on PowerPC, SPARC, and MIPS again.
* bug fix: incorrect rounding when converting some bignums to floats.
* bug fix: the second value of the truncation functions is more
consistently computed for bignum floats.
* bug fix: fix code generation for constants being considered from
conflicting type propagation information. (#2107652)
* bug fix: fix 32-bit range check code generation on
x86-64. (#2106432)
* bug fix: types are correctly propagated from the keyword
argument processor to their uses. (#2106358, reported by Vasily
Postnicov)
* bug fix: fix compilation error from CHECK-TYPE when the value
checked is a keyword argument and the type specifier argument is
not a valid type specifier. (#2104089)
* bug fix: generate stack-manipulation code in the presence of
non-local exits and dynamic-extent declarations even more
carefully. (#2043242)
* optimization: (LOGIOR A (- (MASK-FIELD (BYTE 1 constantN) A))),
or its equivalent (LOGIOR A (- (LOGAND (ASH 1 constantN) A))),
is recognized as an idiom for sign-extending the N+1-bit field
in A, and can be used for signed modular arithmetic.
* optimization: ROUND is faster for floats.
* optimization: TRUNCATE/FLOOR/etc. are faster on ratios.
* optimization: MAKE-SEQUENCE does not invoke the full type
algebra when the provided type specifier is simple.
* optimization: don't attempt to align branch targets if the SPACE
optimization quality is greater than 1.
* optimization: circularity detection for printing now places its
temporary data structures on the stack.
* optimization: faster GCD on fixnums, especially when the
difference in magnitude is large.
* optimization: the implementation of ISQRT has been replaced with
the (faster) algorithm currently implemented in CPython.
Changes in sbcl-2.5.3 relative to sbcl-2.5.2
* enhancement: breakpoint debugger commands have been
added. Included is a stepper based on breakpoints requiring no
extra instrumentation. However, it still has less functionality
than the existing single stepper. See the new debugger manual
section titled "Breakpoint Commands" for more information on the
new commands.
* minor incompatible change: the behaviour of
:save-runtime-options has been restored to match the
documentation. (#2096995, reported by Zach Beane)
* minor incompatible change: invoking CHANGE-CLASS from user code
no longer grabs the CLOS world lock. Callers must take
responsibility for ordering execution of CHANGE-CLASS and any
changes to the class hierarchy.
* platform support:
* (CAS SAP) is implemented on ARM v8.1 directly with CAS
instructions.
* on x86-64, list constructors emit more compact code
sequences, particularly in the presence of multiple
references to the same object.
* on x86 and x86-64, fix the stack overflow check to use
signed comparisons.
* on Darwin/arm64 and Linux/x86-64, provide a restart to
disable floating-point exceptions of the type signalled, and
another to disable all floating-point exceptions.
* bug fix: cycle detection in class precedence lists happens
before adding classes to the direct subclasses of the parent.
* bug fix: stack-allocated unaligned cons cells no longer cause
errors in the debugger.
* bug fix: local function type declarations no longer inhibit tail
calls in (SAFETY 0) code. (#2039301)
* bug fix: bad or unknown type specifiers in CHECK-TYPE do not
crash or slow down the compiler. (#2102644, #2102653, #2102714,
#2104048)
* bug fix: numerous bug fixes relating to the type system's
handling of arrays make SUBTYPEP more reliable and less likely
to express a contradiction. (#1996980, #2100563, #2100728,
#2100779, #2100784, #2100812, #2100825, #2101192, #2101215,
#2101803, #2102684)
* bug fix: improve other aspects of the type system's
self-consistency. (#2101073, #2101170, #2101183, #2101189,
#2101399, #2101589)
* bug fix: fix compiler type error when deriving the type of
FTRUNCATE. (#2101073)
* bug fix: fix compiler error when deriving constraints for
single-floats. (#2102759)
* bug fix: startup tuning for particular microarchitectures no
longer accidentally disables one of the optimizations.
* optimization: ROW-MAJOR-AREF is transformed to use the same
array machinery as one-dimensional array references. (Thanks to
Scott Burson for the suggestion)
* optimization: list constructors emit shorter code sequences on
x86-64, particularly in the presence of multiple references to
the same object.
* optimization: FLOOR and CEILING on ratios do not unnecessarily cons.
* optimization: provide specialized CALL-NEXT-METHOD functions for
the no-argument and full-argument cases.
Changes in sbcl-2.5.2 relative to sbcl-2.5.1
* minor incompatible change: in some instances when the compiler
cannot prove that a NIL-valued branch is unreachable, where NIL
is not compatible with the expected type, a type warning will no
longer be issued.
* minor incompatible change: the compiler will more strictly treat
type declarations for &OPTIONAL and &KEY arguments in FTYPE
declarations, no longer effectively adding an implicit (OR
... <default>) type when the function itself has a default value
not matching the declared type for that argument.
* enhancement: type errors in structure constructors are now
restartable, with a USE-VALUE restart provided.
* enhancement: CHECK-TYPE warns about type conflicts at compile-time.
* enhancement: FTYPE declarations for functions which set their
parameters are checked.
* enhancement: new print control variable
SB-EXT:*PRINT-CIRCLE-NOT-SHARED*, when used in conjunction with
*PRINT-CIRCLE*, prints #1# only for circularities and not simple
sharing.
* platform support
* on Windows, make sure to commit memory after zeroing during
save-lisp-and-die. (#2097197, reported by _3b)
* on Linux, add the TCP_USER_TIMEOUT constant to
SB-BSD-SOCKETS. (thanks to Mihai Bazon)
* on *BSD, make TCP_KEEPCNT, TCP_KEEPIDLE and TCP_KEEPINTVL
available where the OS supports it.
* on x86-64, optimize BOUNDP for known-global symbols.
* on x86-64, optimize KEYWORDP for some arguments.
* on arm64, don't trigger an assertion when using FMOV on
complex single-float registers.
* on arm64, improve type checking for (AND SYMBOL (NOT NULL)).
* bug fix: using structure read macros with shared structure
markers no longer signals type errors when the shared structure
is in a slot with a type. (#308936)
* bug fix: non-conforming user macros which modify their source no
longer trigger internal errors. (#1371719, reported by _3b)
* bug fix: the combination of CONSTANTLY and DYNAMIC-EXTENT
declarations no longer causes an internal compiler
error. (#2059950, reported by bohonghuang)
* bug fix: treat inlined functions analogously to constants in the
compiler. (#2095560, reported by Vasiliy Postnicov)
* bug fix: FTYPE declarations for &optional and &key arguments do
not include default values when checking types.
* bug fix: Storing coverage data no longer leads to
miscompilations allowing reachability of unreachable
code. (#2092451, reported by mrkissinger)
* optimization: elide bounds-checking for multidimensional arrays
with known dimensions. (reported by aeth)
* optimization: alien callbacks are generally less heavyweight.
* optimization: REMOVE shares the tail of the input list when
there's nothing to remove.
Files: