Tags: gsorbier/sbcl
Tags
changes in sbcl-1.4.7 relative to sbcl-1.4.6: * enhancement: better handling of unknown keyword arguments (lp#1750466) * enhancement: namestrings can now be computed for certain pathnames that previously did not have namestrings because of #\. characters in their name and/or type components. * bug fix: compiling a SLEEP call with a float positive infinity argument no longer causes an internal error (lp#1754081) * bug fix: keyword arguments provided to a generic function with EQL-specialized methods are checked more correctly (reported by Syll, lp#1760987)
changes in sbcl-1.4.6 relative to sbcl-1.4.5: * enhancement: DISASSEMBLE on a symbol naming a macro will disassemble the expander, not the code that traps attempted FUNCALL of the macro. * enhancement: The sb-sprof contrib now provides an experimental interface for accessing collected profiler data. * enhancement: The instruction-level profiling of the sb-prof contrib annotates the disassembler output more efficiently. * optimization: improved dynamic-extent handling of nested variables.
changes in sbcl-1.4.5 relative to sbcl-1.4.4: * minor incompatible change: building with/without the :sb-package-locks feature is no longer an option. Package locks are always compiled in, and removing :sb-package-locks from *features* will have no effect. * enhancement: FIND-PACKAGE does not acquire a mutex * enhancement: cheneygc can perform heap relocation on startup * enhancement: in threaded builds, finalizers execute in a system-internal thread so that a user thread which invokes GC is unblocked from performing work as soon it returns from GC and invokes any post-GC hooks. As such, it is more important than before to avoid assumptions about special variable bindings in finalizers, even in single-threaded code. * optimization: faster (funcall (or function symbol)) on x86-64.
changes in sbcl-1.4.4 relative to sbcl-1.4.3: * bug fix: pathname accessors such as PATHNAME-DIRECTORY work on SYNONYM-STREAMs. * bug fix: (pathname-{device,directory,name,type} ... :case :common) works as expected. In particular MAKE-PATHNAME composed with the accessors roundtrips properly when both use the same :case. (lp#1739906) * bug fix: DIRECTORY no longer gets confused when the value of *DEFAULT-PATHNAME-DEFAULTS* has a name or type component. (lp#1740563) * bug fix: pattern pieces in pathname components are correctly escaped during unparsing. * bug fix: DELETE-DIRECTORY no longer signals an error when the directory is supplied as a pathname with name and/or type components containing escaped characters. (lp#1740624) * bug fix: weak hash-tables no longer cause GC time to scale superlinearly (lp#1241771) * bug fix: CANCEL-FINALIZATION operates in approximately constant time per operation (lp#1587983) * bug fix: big-endian MIPS systems now (mostly) work again (broken since 1.3.14.x). * bug fix: backtrace from arg-count errors on systems other than x86, x86-64, ARM, and ARM64 now works again. * bug fix: backtrace from asynchronous interrupts on non-x86, non-x86-64 systems should now be more reliable. * enhancement: warnings and errors referring to bindings established by LET, LET*, FLET and LABELS point to the offending form more accurately. * enhancement: backtrace for invalid argument count produces the exact supplied arguments including the extra ones on all platforms (no longer just x86, x86-64, ARM, and ARM64).
changes in sbcl-1.4.3 relative to sbcl-1.4.2: * enhancement: SLEEP respects deadlines established by SB-SYS:WITH-DEADLINE. * bug fix: DECODE-TIMEOUT and operators accepting a timeout no longer signal an error when called with an argument that is of type (real 0) but not (unsigned-byte 62) (lp#1727789) * bug fix: fixed heap exhaustion bug when consing millions of small objects * bug fix: sb-safepoint builds are now a lot less prone to deadlocks and odd crashes (lp#1424031, lp#1268710) * bug fix: argumentless CALL-NEXT-METHOD where specialized-to-T or unspecialized parameters are mutated now uses the original (non-mutated) parameter values (lp#1734771) * bug fix: memory faults from lisp no longer use (thread-and-interrupt unsafe) global storage for fault addresses (everywhere), and now have cleaner backtraces (on x86 and x86-64). (lp#309068) * bug fix: pathnames with a directory component of the form (:absolute {:up,:wild,:wild-inferiors}) no longer fail to unparse. (lp#1738775) * bug fix: more reliable signal handling on macOS.
changes in sbcl-1.4.2 relative to sbcl-1.4.1: * minor incompatible change: SB-EXT:QUIT is no longer marked as deprecated and behaves like SB-EXT:EXIT. * enhancement: ASDF updated to 3.3.1. The ASDF release is dedicated to the late Elias Pipping who put enormous amounts of work into it despite his terminal illness. Thank you and rest in peace. (lp#1681201) * enhancement: alien routines compiled with '-fsanitize=thread' and/or '-fsanitize=memory' cause fewer false positives in error reporting. * optimization: fewer instances of consing float constants at runtime. * bug fix: a number of compiler bugs detected by Paul F. Dietz' randomized tester. (lp#1731503, lp#1730699, lp#1723993, lp#1730434, lp#1661911, lp#1729639, lp#1729471, lp#1728692) * bug fix: better errors from NAMESTRING and friends on pathnames with no namestrings. (lp#792154) * bug fix: EQUAL and EQUALP compiler transforms were too confident in deriving a result. (lp#1732277, lp#1732225) * bug fix: FILL sometimes returned the underlying data vector rather than the given array. (lp#1732553) * bug fix: SEARCH returned the wrong answer in some cases. (lp#1732952) * bug fix: the type (COMPLEX INTEGER) behaves more as specified by Function TYPEP, which has stronger constraints than System Class COMPLEX. (Reported by Eric Marsden, lp#1733400)
changes in sbcl-1.4.1 relative to sbcl-1.4.0: * optimization: faster foreign callbacks. * enhancement: complex arrays can be stack allocated. * enhancement: PROCESS-KILL now exists on win32 and PROCESS-PID actually returns the PID. * optimization: the register allocation method used by the compiler when optimizing for speed is now faster for functions with large bodies. * bug fix: SB-INTROSPECT:ALLOCATION-INFORMATION works on big-endian CPUs (fixes lp#490490 for real rather than by disabling a test) * bug fix: code objects and bignums of large enough size to be placed on GC pages without any other object no longer cause accidental copying during garbage collection. (gencgc only) * bug fix: sb-fasteval failure with 0-argument lambdas (lp#1722715) * bug fix: RUN-PROGRAM doesn't leak handles on win32 and PROCESS-CLOSE doesn't crash. (lp#1724472)
changes in sbcl-1.4.0 relative to sbcl-1.3.21: * minor incompatible change: DESTRUCTURING-BIND treats non-toplevel () as nested empty pattern. This seems to be what the standard mandates, so conforming code should not be affected. * ehancement: (GC :GEN 7) with gencgc will zero-fill dead pseudo-static objects so that they do not spuriously cause reachability of objects that would have been otherwise dead. * enhancement: PROCESS-STATUS now tracks stopped and continued processes properly (also fixes lp#1624941, based on patch by Elias Pipping). * bug fix: INSPECT handles errors signaled while printing slot values. (lp#454682) * bug fix: DESCRIBE works on classes like it used to. * bug fix: *LOAD-PATHNAME* and *LOAD-TRUENAME* are bound to pathnames when processing a sysinit or userinit file * bug fix: save-lisp-and-die is able to collect more garbage on non-x86oid gencgc targets. * bug fix: fixed out-of-bounds array read in optimized POSITION on bit-vectors * bug fix: signal emulation respects the 128-byte stack red zone on x86-64 macOS.
changes in sbcl-1.3.21 relative to sbcl-1.3.20: * minor incompatible change: the CLOBBER-IT restart for defstruct redefintion has been removed after a 15 year deprecation cycle. Use the new name, RECKLESSLY-CONTINUE. Note also that this restart is hidden if deemed unsafe due to altered placement of untagged slots in the structure. * enhancement: the assignment of -DSBCL_PREFIX= in src/runtime/GNUmakefile can be removed as a local patch, which results in an sbcl executable that finds its core file relative to itself by looking in "../lib/sbcl". * enhancement: backends using the generational GC are able to relocate dynamic space anywhere the operating system places it. This feature can be disabled by removing :relocatable-heap from the build configuration. Not supported on Windows. * enhancement: DEFMETHOD no longer signals IMPLICIT-GENERIC-FUNCTION-WARNING. * enhancement: better type conflict detection for high order functions, e.g. (find x "123" :test #'=) * enhancement: the tabular output of ROOM is aligned dynamically, preventing misaligned tables for larger sizes or counts. * enhancement: ROOM reports on immobile space if applicable. * optimization: optimized external-format routines. * bug fix: SB-INTROSPECT:ALLOCATION-INFORMATION returns :IMMOBILE instead of :FOREIGN for objects in immobile space. * bug fix: dotted lists in special forms and function call forms signal an appropriate error * bug fix: EQUALP hash tables with pathname keys now ignore internal slots. (lp#1712944, reported by Jason Miller)
changes in sbcl-1.3.20 relative to sbcl-1.3.19: * minor incompatible change: DEF{GENERIC,METHOD} no longer accept some illegal lambda lists such as (defgeneric bar (foo &key foo)) or (defgeneric baz (t)) that were accepted before. * optimization: a valueless &AUX binding in a BOA constructor does not force all slots reads in safe code to perform a full type check. * optimization: ATOMIC-PUSH and ATOMIC-POP generate better code * bug fix: the low-level debugger would erroneously print - or not print as the case may be - "(bad-address)" for some objects depending whether the --dynamic-space-size argument was used at Lisp startup * bug fix: a DEFCONSTANT with a non non-eql-comparable object as the value could cause miscompilation if that constant appeared as the default expression for an &OPTIONAL binding * bug fix: generic function lambda lists are now checked for repeated and otherwise illegal entries. (lp#1704114) * bug fix: setting gencgc_verbose = 1 could cause deadlock in fprintf() depending on the platform's stdio implementation. The relevant code has been changed to use snprintf() and write() instead.
PreviousNext