Sbcl Versions Save

Mirror of Steel Bank Common Lisp (SBCL)'s official repository

sbcl-2.3.7

10 months ago
  • 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. (lp#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. (lp#2026809, thanks to Sebastien Marie) ** on OpenBSD, the data limit is now 1GB. (lp#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. (lp#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. (lp#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.

sbcl-2.3.6

11 months ago
  • platform support: ** restore building contribs on riscv; (lp#2002930) ** shorter constant-loading sequences on riscv; ** on OpenBSD, map the stack without executable permission (thanks to Sébastien Marie) ** Restore OpenBSD/arm64 for OpenBSD 7.3 (lp#2024003, reported by Robert Palm)
  • bug fix: AREF on multidimensional arrays with the wrong number of indices now signals an error. (lp#2022327, reported by EU)
  • bug fix: the nature of NIL as both STRING and SEQUENCE is correctly handled in the compiler's handling of string functions. (lp#2023118, reported by Patrick Poitras)
  • bug fix: the sb-bsd-sockets tests no longer fail on systems configured without IPv6. (reported by Will Senn)
  • bug fix: the compiler no longer transforms into incompletely-known functions (lp#1824351)
  • optimization: better (the word-sized-type (ASH word-sized word-sized)) when the result can overflow. For arm64 and x86-64.
  • optimization: better unoptimized calls to CEILING, FLOOR.
  • optimization: functions that involve coercing floats now cons less. For arm64 and x86-64.
  • optimization: array displacement to simple arrays is slightly faster. (reported by Shubhamkar Ayare)

sbcl-2.3.5

1 year ago
  • 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. (lp#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. (lp#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.

sbcl-2.3.4

1 year ago
  • 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.

sbcl-2.3.3

1 year ago
  • 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. (lp#2008673)
  • bug fix: loading the SB-SIMPLE-STREAMS contrib no longer incompatibly overwrites CL:OPEN's function type. (lp#2008811)
  • bug fix: implement the special-case automatic function definition for PCL's slot accessor functions in the SB-EVAL interpreter. (lp#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. (lp#2009493, reported by Kirill)
  • bug fix: restore compilation on ARM64 with OpenBSD. (lp#2009585, reported by okflo)
  • bug fix: compiling a HANDLER-BIND with an function undefined at compile-time produces a compile-time STYLE-WARNING. (lp2010176)
  • bug fix: support files bigger than 4GB on ARM64/Linux, *BSD. (lp#2011453, reported by Yan)
  • bug fix: it is now possible to run sb-simd tests on systems without AVX2. (lp#2011923, thanks to Sergio Durigan Junior)
  • bug fix: miscompilation of some conditional moves. (lp#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. (lp#2012577, thanks to Ari Projansky)
  • bug fix: warn the user when they have declared a structure or standard-object slot of :TYPE NIL.

sbcl-2.3.2

1 year ago
  • 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. (lp#1992349, reported by Mykola Matvyeyev)
  • bug fix: type derivation of VECTOR-LENGTH leading to wrong type handling for MEMBER types involving vectors. (lp#2004094)
  • bug fix: equality constraint propagation in the presence of constants could cause code to be not deleted when it should have been. (lp#2006487)
  • bug fix: better compile time when the compiler needs to perform checks to see if fixnum or word computations result in overflow. (lp#2007741)
  • bug fix: miscompilation on ARM64. (lp#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;

sbcl-2.3.1

1 year ago
  • 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. (lp#2000004, reported by Shubhamkar Ayare)
  • bug fix: incorrect type simplification of certain CONS types. (lp#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. (lp#2002896, reported by 3b)
  • bug fix: don't trip an internal assertion in weak hash tables with finalizers. (lp#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.

sbcl-2.3.0

1 year ago
  • 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. (lp#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. (lp#1998008)
  • bug fix: fix miscompilation of integer/fixnum comparisons where both arguments are on the stack.

sbcl-2.2.11

1 year ago
  • platform support: ** arm64: allow the use of CLISP as a build host. (lp#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. (lp#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. (lp#1995224, reported by Kasper Gałkowski)
  • bug fix: INSPECT on an (ARRAY NIL) no longer hangs. (lp#1995639, reported by Michał Herda)
  • bug fix: Fix miscompilation of FILE-STRING-LENGTH when the first argument has a known FILE-STREAM type. (lp#1995881)

sbcl-2.2.10

1 year ago
  • platform support: ** win32: improved handling of stack overflow exceptions. (lp#1302866) ** Mac OS X: enforce stronger alignment when building the runtime. (lp#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. (lp#1982608, reported by Andrew Berkley)
  • bug fix: make sb-introspect tests pass when the system is built without support for source locations. (lp#1635349, reported by Tomas Hlavaty)
  • bug fix: erroneous assumption that the format-control of a simple condition was a string. (lp#1803727)
  • bug fix: compiler consistency failure in modular arithmetic widening. (lp#1990715)
  • bug fix: provide a stub for a helper function (lp#1992316)