Path to this page:
Subject: CVS commit: pkgsrc/lang/sbcl
From: Robert Swindells
Date: 2023-06-03 14:42:24
Message id: 20230603124224.B3EC3FA88@cvs.NetBSD.org
Log Message:
Changes in sbcl-2.3.5 relative to sbcl-2.3.4
* enhancement: Unicode support has been updated to support version
15.0.0 of the Unicode standard, including addition of characters
and their collation keys, and refinements to grapheme-, word-
and line-breaking algorithms.
* new contrib module: an interface to perf, a
performance-analysing tool for Linux. (thanks to Luke Gorrie and
Philipp Marek)
* platform support:
* on x86-64, prefer using the LEAVE instruction rather than
MOV/POP at function epilogue to restore RSP/RBP.
* support SB-FUTEX on OpenBSD. (thanks to Elijah Stone)
* support SB-FUTEX on Darwin/arm64. (thanks to Elijah Stone)
* fix compilation with clang on Windows. (#2018601, thanks to
Andrew)
* bug fix: inspecting objects with unbound slots produces output
that is less confusable with the string "unbound". (thanks to
Nicolas Martyanoff)
* optimization: make TN-REFs doubly-linked, allowing faster
deletion. (#2018124, reported by Matt Kaufmann)
* optimization: MAPCAN/MAPCON are less accidentally
quadratic. (thanks to Gleefre)
* optimization: improved arithmetic operations in the form of (the
word-sized-type (-+* word-sized word-sized)) when the result can
overflow. For arm64 and x86-64.
Changes in sbcl-2.3.4 relative to sbcl-2.3.3
* enhancement: attempts to call non-callable objects can now
provide USE-VALUE restarts on x86-64 and arm64.
* bug fix: ioctl() (both in SBCL's internals and through SB-POSIX)
was broken on ARM64/Darwin. (reported by fiddlerwoaroof)
* platform support:
* support for cross-compiling the system to Android has been
added; (thanks to Gleefre)
* include likely absolute paths for gmp and mpfr on
ARM64/Darwin; (thanks to Elias Lawson-Fox)
* include another absolute path for mpfr on Windows; (thanks
to Ari Projansky)
* the PROMISE-COMPILE feature from the SB-CONCURRENCY contrib
is now available on all threaded platforms;
* optimization: VALUES-LIST performs less redundant work on x86-64
and ARM64.
Changes in sbcl-2.3.3 relative to sbcl-2.3.2
* enhancement: LET-bound anonymous closures declared dynamic
extent can now be stack allocated, just like closures bound with
FLET or LABELS. Otherwise-inaccessible closure subparts of
objects declared dynamic extent can now also be stack allocated
* optimization: many standard CL functions which take functional
arguments will automatically stack allocate any downward funarg
closures.
* optimization: better arithmetic between signed and unsigned
words on arm64.
* optimization: reduce consing when doing arithmetic resulting in
small (3 words or fewer) bignums.
* bug fix: miscompilation of some additions of signed and unsigned
words on x86-64. (#2008673)
* bug fix: loading the SB-SIMPLE-STREAMS contrib no longer
incompatibly overwrites CL:OPEN's function type. (#2008811)
* bug fix: implement the special-case automatic function
definition for PCL's slot accessor functions in the SB-EVAL
interpreter. (#2008922, reported by Jonathan Braud)
* bug fix: allow the build to succeed under SBCLs older than 2.0.0
in the event that the host emits STYLE-WARNINGs while compiling
the cross-compiler. (#2009493, reported by Kirill)
* bug fix: restore compilation on ARM64 with OpenBSD. (#2009585,
reported by okflo)
* bug fix: compiling a HANDLER-BIND with a function undefined at
compile-time produces a compile-time STYLE-WARNING. (#2010176)
* bug fix: support files bigger than 4GB on ARM64/Linux,
*BSD. (#2011453, reported by Yan)
* bug fix: it is now possible to run sb-simd tests on systems
without AVX2. (#2011923, thanks to Sergio Durigan Junior)
* bug fix: miscompilation of some conditional moves. (#2012312,
reported by Patrick Poitras)
* bug fix: SB-GMP no longer signals a TYPE-ERROR when raising a
ratio base to a negative integer exponent. (#2012577, thanks to
Ari Projansky)
* bug fix: warn the user when they have declared a structure or
standard-object slot of :TYPE NIL.
Changes in sbcl-2.3.2 relative to sbcl-2.3.1
* incompatible change: the :ORDER long-form-option in
DEFINE-METHOD-COMBINATION accepts NIL as well as
:MOST-SPECIFIC-FIRST and :MOST-SPECIFIC-LAST. A value of NIL
implies no particular ordering of the methods, and so disables
checks of multiple methods with the same specializers in that
group.
* bug fix: evaluate the :ORDER long-form-option in
DEFINE-METHOD-COMBINATION properly, avoiding an infinite loop in
DEFINE-METHOD-COMBINATION if the :ORDER argument leads to a
cycle of compile-time constants.
* bug fix: better compile time on chains of conditionals which
have gaps in integer ranges. (#1992349, reported by Mykola
Matvyeyev)
* bug fix: type derivation of VECTOR-LENGTH leading to wrong type
handling for MEMBER types involving vectors. (#2004094)
* bug fix: equality constraint propagation in the presence of
constants could cause code to be not deleted when it should have
been. (#2006487)
* bug fix: better compile time when the compiler needs to perform
checks to see if fixnum or word computations result in
overflow. (#2007741)
* bug fix: miscompilation on ARM64. (#2007758, reported by Stephen
Westfold)
* optimization: on x86-64, use SIMD instructions for UTF-8 buffer
decoding;
* various type-driven optimizations:
* comparisons of rationals with constant ratios or floats;
* comparisons of unsigned-bytes with fixnums;
* comparisons of fixnums with constant powers of two;
* equality of numbers with integers too large to be exactly
represented as floats;
* arithmetic operations on a mixture of signed and unsigned
word-sized quantities;
Changes in sbcl-2.3.1 relative to sbcl-2.3.0
* sb-graph has been removed. To visualize IR1 in sbcl, it is
recommended to use the function IR1-TO-DOT (which only survives
the final tree shake if the feature :sb-devel is enabled at
build time).
* platform support:
* implement some peephole optimizations on arm64;
* support float traps on arm64;
* bug fix: package-manipulation operations within fasls work as
expected in the absence of explicit block compilation
requests. (#2000004, reported by Shubhamkar Ayare)
* bug fix: incorrect type simplification of certain CONS
types. (#1999352, reported by Paul Dietz)
* bug fix: method combination group selection interprets the
symbol * as a wildcard element within proper qualifier-pattern
lists. (reported by Maciej Katafiasz and by Daniel Kochmański)
* bug fix: &WHOLE can be used without error in
define-method-combination arguments lambda lists. (reported by
Daniel Kochmański)
* bug fix: bogus debug variables generated for closure variables
whose value cell had not yet been allocated could cause
segfaults and gc crashes (reported by _death on #sbcl)
* bug fix: handling of float NaNs in two-arg numeric comparison
functions is more consistent with the required semantics in IEEE
754 when comparing with rationals.
* bug fix: ensure that the hide-packages test passes even when the
system retains internal cross-reference metadata. (#2002896,
reported by 3b)
* bug fix: don't trip an internal assertion in weak hash tables
with finalizers. (#1998064)
* optimization: load-time only code is no longer retained at
runtime when functions close over top level bindings.
* optimization: GO and RETURN-FROM now elide out-of-extent tag
checks when the compiler can prove it's safe even on high
safety.
* optimization: addition of a fixnum to a bignum generates less garbage.
* optimization: in many cases, type inference and code generation
is improved for and around numerical comparison functions.
Changes in sbcl-2.3.0 relative to sbcl-2.2.11
* enhancement: support for SLOT-VALUE and friends has been
extended to structure and condition instances.
* enhancement: the error message for invalid array index
conditions is clearer. (#1999337, reported by Hadrien Lacour)
* minor incompatible change: COMPILED-FUNCTION-P now returns false
for generic functions.
* minor incompatible change: the compiler emit STYLE-WARNING
conditions for FIND and POSITION where the item sought can never
be present in the sequence.
* optimization: support computing the remainder of a constant
division by multiplication.
* optimization: faster out of line float truncation routines.
* optimization: faster RATIONAL on 64-bit platforms.
* optimization: more compact testing of widetags on x86-64 and arm64.
* bug fix: type intersections of RATIONAL ranges with (NOT
INTEGER) are computed more consistently. (#1998008)
* bug fix: fix miscompilation of integer/fixnum comparisons where
both arguments are on the stack.
Changes in sbcl-2.2.11 relative to sbcl-2.2.10
* platform support:
* arm64: allow the use of CLISP as a build host. (#1996942,
reported by Andrew Patterson)
* enhancement: improvements to constraint propagation around
comparison functions.
* optimization: conditional move VOPs can work on boxed values and
produce less consing.
* optimization: NUNION and UNION are generally faster.
* bug fix: slot-makunbound-using-class can be redefined without
redefining the other slot methods. (#1956621, reported by Michał
Herda)
* bug fix: GETHASH on a table created without ":synchronized t"
when run concurrently in multiple threads could have returned
incorrect results.
* bug fix: build of contributed modules assumed that 'cat' was
always in /bin/cat on POSIX systems. (#1995224, reported by
Kasper Gałkowski)
* bug fix: INSPECT on an (ARRAY NIL) no longer hangs. (#1995639,
reported by Michał Herda)
* bug fix: Fix miscompilation of FILE-STRING-LENGTH when the first
argument has a known FILE-STREAM type. (#1995881)
Changes in sbcl-2.2.10 relative to sbcl-2.2.9
* platform support:
* win32: improved handling of stack overflow exceptions. (#1302866)
* Mac OS X: enforce stronger alignment when building the
runtime. (#1991485, reported by Yan)
* arm64: support for building the system without the
sb-unicode feature (i.e. with 8-bit characters) is restored.
* bug fix: do not elide the GC store barrier in
closures. (#1982608, reported by Andrew Berkley)
* bug fix: make sb-introspect tests pass when the system is built
without support for source locations. (#1635349, reported by
Tomas Hlavaty)
* bug fix: erroneous assumption that the format-control of a
simple condition was a string. (#1803727)
* bug fix: compiler consistency failure in modular arithmetic
widening. (#1990715)
* bug fix: provide a stub for a helper function (#1992316)
Changes in sbcl-2.2.9 relative to sbcl-2.2.8
* platform support:
* fix build on Darwin platforms with -fno-common. (#1980570,
thanks to Sergei Trofimovich)
* include /usr/local paths when building on
FreeBSD. (#1981112, reported by William G Lederer)
* several micro-optimizations on x86-64, including: better use
of INC/SUB, better SAP+, shorter KEYWORDP, better argument
count verification
* arm64: better KEYWORDP, better argument count verification
* fix build on 32-bit Windows. (#1988534, thanks to Alexis Rivera)
* x86-64: WITH-PINNED-OBJECTS can pin constants. (#1989037)
* bug fix: make sb-simd build in compiler-only SBCL. (thanks to
Tonas Hlavaty)
* bug fix: SB-SPROF:WITH-PROFILING now returns the value of its
body (as was advertised in its documentation).
* bug fix: catch malformed LET* forms in DEFMETHOD
bodies. (#1988880, reported by Patrick Poitras)
* enhancement: better source form tracking for atoms in LET bindings.
* optimization: reader character macro lookup is simpler and faster.
* optimization: FILL-POINTER (and its setter) are more compact.
Changes in sbcl-2.2.8 relative to sbcl-2.2.7
* minor incompatible change: support for 32-bit x86/Darwin has
been removed.
* bug fix: fix miscompilation related to empty infinite loops
preceded by conditional expressions. (#1986810, reported by
Artyom Bologov)
* bug fix: fix gc invariant violations. (#1983218, reported by
Marius Gerbershagen; #1983248, reported by Vasily Postnicov)
* bug fix: use CC to compile SBCL as a shared library. (#1976148,
reported by Pierre Neidhardt)
* bug fix: don't crash the system completely if RUN-PROGRAM fails
to create a pipe. (#1979841, reported by Thor Kristofferson)
* bug fix: be more disciplined about use of C system
includes. (#1981799, reported by Mark Evenson)
* bug fix: STRING/= returning wrong results for some cases when
:END1/:END2 were not compile-time constants. (#1983284)
* bug fix: compile-time checking of :START and :END keyword
arguments to FILL is more complete.
* optimization: adjacent type tests on the same value are more
compact (arm64, x86-64).
* optimization: the compiler can inline COPY-STRUCTURE in more cases.
* optimization: type checks for non-simple arrays are shorter.
* optimization: printing strings (as Lisp data) is faster.
Changes in sbcl-2.2.7 relative to sbcl-2.2.6
* minor incompatible change: the compiler emits full WARNINGs for
undefined references to variables in TYPE and DYNAMIC-EXTENT
declarations, and for SETQ of an undefined variable. (This was
the historic behaviour for everything except the DYNAMIC-EXTENT
case, which used to emit a STYLE-WARNING, but these diagnostics
got lost in a refactoring since sbcl-2.2.2)
* minor incompatible change: literal objects (strings, in
particular) in compiled code may at the discretion of the
runtime be placed in read-only memory. Violations of CLHS 3.7.1
could produce memory faults. If ":PURIFY NIL" is given to
SAVE-LISP-AND-DIE then no read-only memory will be used.
* enhancement: Unicode support has been updated to support version
10.0.0 of the Unicode standard, including addition of characters
and refinements to breaking and collation algorithms.
* bug fix: AVX is no longer used for loading simd-pack-256
constants. (#1928097)
* bug fix: fix building the manual when some contribs are blocked
or otherwise disabled. (#1979821, thanks to Robert Schiele)
* bug fix: fix type derivation of sequence functions with
highly-specific declared argument types. (#1980292, reported by
James Kalenius)
* bug fix: internal error when optimizing chains of conditionals
in local functions. (#1981607, reported by Pasha K)
* bug fix: fix comparison of negative floats with bignums.
* optimization: faster TRUNCATE with float arguments.
* optimization: EQUALP hashing of large floating point values
should generate less garbage.
Changes in sbcl-2.2.6 relative to sbcl-2.2.5
* minor incompatible change: support for 32-bit x86 on macOS has
been removed.
* new contrib: sb-simd, to provide a convenient interface for SIMD
programming on x86-64. (Thanks to Marco Heisig and other sb-simd
contributors)
* enhancement: core compression now uses zstd instead of zlib. (#1881089)
* enhancement: provide compiler warnings for specialized array
type mismatches in CONCATENATE.
* enhancement: provide compiler warnings for bad sequence bounding
index designator arguments to sequence functions.
* enhancement: The sb-mpfr contrib now allows coercion from
MPFR-FLOATs to CL:RATIONAL. (Thanks to Robert Smith)
* bug fix: fix compilation failure related to declaiming types of
constants. (#1977726, reported by Pierre Neidhardt)
* bug fix: fix race condition in CLOS optimized constructors. (#1951341)
* bug fix: fix too-eager elision of allocation barriers when
initializing closure and structure objects.
* optimization: fasl files are now usually smaller (up to 10% on
default policy) and may load faster, especially on high debug.
* optimization: faster string comparisons on arm64, x86-64.
* optimization: faster [n]string-down/upcase on arm64, x86-64.
* optimization: faster [n]reverse for 8- and 32-bit element
vectors on arm64, x86-64.
* optimization: faster type tests for (CONS (EQL symbol)) on x86-64.
Files: