Log message:
Update to sbcl-2.3.11.
Enable NetBSD/i386 build again.
Changes in sbcl-2.3.11 relative to sbcl-2.3.10
* minor incompatible change: streams with an external-format
specified with :REPLACEMENT will use their replacement data once
per stream unit that causes a decoding error (rather than, in
some cases, once for a sequence of bytes none of which is a
valid character start position for that external-format).
* minor incompatible change: external-format designators with
unsupported or unrecognized options now signal an error when
used.
* enhancement: During generic function dispatch, for a generic
function using standard- or short-method-combination, if there
are no applicable primary methods the system will call the
generic function SB-PCL:NO-PRIMARY-METHOD, whose default
behaviour is to signal an error. Users may define methods on
this generic function.
* enhancement: external formats for unibyte encodings and utf-8
now support newline variants.
* enhancement: character decoding and encoding errors signalled by
stream or octet functions now provide a USE-VALUE restart for
handlers to provide replacement input or output.
* enhancement: READ-SEQUENCE and WRITE-SEQUENCE support
user-defined sequences; the default implementation proceeds
element-by-element, reading or writing single bytes or
characters to or from the stream as appropriate.
* bug fix: OCTETS-TO-STRING using unibyte external formats with
unallocated codepoints (e.g. iso-8859-3) correctly signal or use
replacements rather than taking bits from the address of NIL and
converting those bits to a character.
* bug fix: FILE-STRING-LENGTH now returns NIL if the input datum
is not encodable in the stream's external format.
* bug fix: table-based multibyte external formats (EUC-JP,
Shift-JIS, GBK) now honour a replacement character (in the
external format or through restarts) when encoding to octets.
* bug fix: converting from octets using the UCS-2, UCS-4 and
UTF-32 external formats no longer reads past the end of an octet
array with a non-integral number of two- or four-byte units.
* bug fix: converting from octets using the UCS-2, UCS-4, UTF-16
or UTF-32 external formats now returns a simple string, as
required by the type declaration of OCTETS-TO-STRING.
* bug fix: providing an invalid external format argument to OPEN
or WITH-OPEN-FILE (or the internal MAKE-FD-STREAM) no longer
leaks a file descriptor.
* bug fix: SB-ROTATE-BYTE recognizes out-of-relevant-range BYTE
specifications for integers before attempting to cons up
enormous bignums for masking and shifting. (#2042937)
* bug fix: fix type derivation on compiling SB-ROTATE-BYTE forms
with non-zero POSITION in the byte specifier. (#2042775)
* bug fix: fix multiple assembler errors when compiling
MAKE-ARRAY, MAKE-STRING and similar with a large constant
size. (#2037347, #2038744)
* bug fix: fix internal error when compiling (SETF SBIT) with a
large constant index. (#2037415)
* bug fix: fix internal compiler error on invalid lambda list
parameters in LABELS. (#2040334)
* bug fix: fix internal compiler error when compiling some
infinitely-recursive LABELS forms. (#2042704)
* bug fix: fix internal compiler error when attempting to inline a
jump to a label that has been deleted. (#2043262)
* bug fix: FILL-POINTER should never be made to go negative. (#2042452)
* optimization: external formats with :REPLACEMENT no longer bind
handlers for coding errors around conversion functions, and so
should cons less and be faster.
* optimization: when the :EXTERNAL-FORMAT argument to
STRING-TO-OCTETS or OCTETS-TO-STRING is a compile-time constant,
the external format is resolved at load time rather than on each
call.
* optimization: the compiler is able to constrain the types of
inputs to some functions given a derived or asserted type of the
function's return value.
* optimization: the compiler performs fewer redundant type checks
in ASSOC, GETF and similar functions.
Changes in sbcl-2.3.10 relative to sbcl-2.3.9
* enhancement: The compiler now allows stack allocating vectors of
any size on all safety levels, not just those which it can prove
are of sub-page sizes. It can do this because it now inserts
code to check for stack overflow explicitly on higher safety
levels.
* enhancements to the disassembler:
* on arm64, x86-64, DISASSEMBLE annotates references to static
symbols.
* bug fix: calls to generic functions now detect erroneous
keywords (in the sense of CLHS 7.6.5) passed as arguments even
when auxiliary methods are applicable.
* bug fix: the standard method on SB-MOP:COMPUTE-EFFECTIVE-METHOD
no longer inserts calls to implementation-defined local
macros. (reported by Daniel Kochmański)
* bug fix: compiler error from state-machine-like LABELS forms in
some circumstances. (#2037318)
* bug fix: fix compile-time error in constant-folding RATIONAL on
literal float infinities. (#2037455)
* bug fix: failure on x86-64 to assemble code for EQL tests of
comparisons with immediates. (#2037456)
* bug fix: infinite loop in the compiler for simplification of
type tests of complicated union types. (#2038112, reported by
Paul M. Rodriguez)
* bug fix: inability to dump a literal displaced array containing
copies of its displacement target. (#2038233, reported by James
Kalenius)
* bug fix: compiler error in LOGBITP type derivation. (#2038241)
* bug fix: compiler error in AREF type derivation. (#2038659)
* bug fix: compiler internal consistency failure in overflow type
checks. (#2038736)
* bug fix: work around an infinite loop in type simplification by
not providing such types from the compiler. (#2038980, reported
by Richard Holcombe)
* bug fix: spurious run-time argument count errors from generic
function calls on arm64. (#2039006, reported by fiddlerwoaroof)
* bug fix: errors in SCALE-FLOAT on floating-point
infinities. (#2039613)
* bug fix: ROOM is slightly more robust to
incompletely-initialized instances at the point of running
ROOM. (Reported by Andreas Franke)
* bug fix: finalizers saved through SAVE-LISP-AND-DIE and
subsequently executed do not trigger memory faults. (Reported by
Bohong Huang)
* optimization: improvements to type derivation for ISQRT,
INTEGER-LENGTH, LOGCOUNT, LOG, DENOMINATOR.
Changes in sbcl-2.3.9 relative to sbcl-2.3.8
* enhancement: stack allocation via DYNAMIC-EXTENT now applies to
all values that a variable can take on (for example via SETQ),
not just the initial binding. This permits for example building
complex or recursive structures on the stack more easily via
iteration. See the updated manual entry for more details.
* minor incompatible change: some interfaces in the SB-POSIX
contrib module adhere to the spec that a NULL result from the C
library is an error if and only if errno was altered by the
call. SYSCALL-ERROR will be signaled if so.
* enhancement: the SB-POSIX contrib module provides DO-PASSWDS and
DO-GROUPS to allow users to iterate over password and group
databases safely.
* platform support:
* support for Darwin on x86 and PowerPC has been
restored. (#2033287, thanks to Kirill A. Korinsky, Sergey
Fedorov and barracuda156)
* bug fix: miscompilation due to erroneous type derivation in the
presence of multiplication of fixnums by ratios. (#2033695,
reported by Patrick Dussud)
* bug fix: compiler error when compiling signed- and unsigned
64-bit type checks in some cases. (#2033997, reported by Eric
Smith)
* bug fix: compiler error when the :INITIAL-CONTENTS argument to
MAKE-ARRAY is a constant non-sequence. (#2037328)
* bug fix: compiler error when constant-folding sequence functions
with :TEST or :KEY functions erroring on the given
sequence. (#2037341)
* bug fix: compiler error when arguments to array or sequence
functions imply a very large sequence size. (#2037443, #2037348)
* bug fix: compiler error when the return value of ADJUST-ARRAY is
not used. (#2037450)
* optimization: function types derived by the compiler can in some
cases be propagated backwards through the intermediate
representation.
* optimization: better type derivations for LDB, LOGBITP, RATIO.
* optimization: eliminate bound checks in more cases involving
transitive comparisons.
|
Log message:
Update to sbcl 2.3.8.
Add dependency on devel/gmp.
Set MKPIE_SUPPORTED to no.
Changes in sbcl-2.3.8 relative to sbcl-2.3.7
* enhancement: a mark-region parallel garbage collector is
available as a build-time option; it can be enabled by adding
`--without-gencgc --with-mark-region-gc` to the build command
line. (Thanks to Hayley Patton)
* enhancement: Stack allocation via DYNAMIC-EXTENT is now possible
for conditionals even when not all branches are
stack-allocatable. Previously all branches needed to be
stack-allocatable for the otherwise-inaccessible subparts to get
stack allocated.
* platform support:
* on Mac OS X Sonoma, loading the memory image no longer
fails. (#2029430, reported by cladur)
* on Darwin, we no longer reimplement nanosleep().
* on PPC64, undefined function errors now work.
* on ARM64/OpenBSD, enable the GCC TLS feature. (thanks to
Sébastien Marie)
* when building the system, only display a reasonable amount
of timing precision. (thanks to Philipp Marek)
* bug fix: handling of inlining functions compiled to return
unboxed values no longer crashes the compiler. (#2029020,
reported by Pascal J. Bourguignon)
* bug fix: the source location for code executed within a
top-level (EVAL-WHEN (:COMPILE-TOPLEVEL) ...) form is now more
useful.
* bug fix: address a race between user threads cancelling
finalizers and the finalizer thread executing them. (#2029306)
* bug fix: complex division returns the same value when evaluated
inline and out-of-line. (#2030097)
* bug fix: the pretty-printer no longer deletes
syntactically-significant whitespace immediately preceding a
newline. (#1985814, reported by Mark David)
* optimization: the compiler is more aware of the result type of
the NUMERATOR function.
* optimization: EQUAL and EQUALP compile to more efficient code
when the two arguments are known to be of the same nullable
type.
* optimization: converting bignums to floats uses no intermediate memory.
Changes in sbcl-2.3.7 relative to sbcl-2.3.6
* minor incompatible change: MACROLET macro functions are now
compiled with (SPEED 1), leading to fewer efficiency notes being
emitted when compiled in otherwise high-SPEED environments.
* minor incompatible change: when coalescing list data, the file
compiler respects substructure equality more accurately, with
the side-effect of coalescing along CDR chains as well as
CARs. (#2025086)
* minor incompatible change: FUNCTION type declarations for local
variables generate assertions around their use when called.
* platform support
* on OpenBSD, the regression test suite expectations have been
updated. (#2026809, thanks to Sebastien Marie)
* on OpenBSD, the data limit is now 1GB. (#2027536, thanks to
Sebastien Marie)
* on Darwin with the SB-FUTEX feature, do not use unpaired
mach_thread_self() syscalls, avoiding resource leaks when
creating threads.
* on 64-bit RISCV, add support for some REM-by-multiplication
optimizations.
* on Windows, work around a C compiler bug relating to SYSV_ABI.
* bug fix: FILE-POSITION on string output streams no longer
crashes or causes arbitrary memory overwrites. (#1839040)
* bug fix: the compiler no longer constant-folds POSITION to NIL
if the START or END arguments are not valid.
* optimization: the compiler derives types of &KEY arguments in
local calls. (#655562)
* optimization: type tests of values of known union type can be
faster if the type being tested for has a non-trivial
intersection with the known type.
* optimization: the low-level implementation of NUMBERP, REALP and
RATIONALP has been improved on x86-64 and arm64.
* optimization: the compiler removes known-NIL arguments from
calls to APPEND and NCONC, and empty sequences from calls to
CONCATENATE.
* optimization: checks for symbols being bindable are now
memoized, speeding up compiled uses of PROGV.
* optimization: SLOT-VALUE on STRUCTURE-OBJECTs with non-constant
slot-name argument is faster.
|
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.
|