Tags: akanouras/sbcl
Tags
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. (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.
changes in sbcl-2.3.6 relative to sbcl-2.3.5: * 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)
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. (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.
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. (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.
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. (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;
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. (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.
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. (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.
changes in sbcl-2.2.11 relative to sbcl-2.2.10: * 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)
changes in sbcl-2.2.10 relative to sbcl-2.2.9: * 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)
PreviousNext