Tags: catull/sbcl
Tags
changes in sbcl-2.1.1 relative to sbcl-2.1.0: * platform support: ** restore non-threaded NetBSD builds; ** adjust how the finalizer thread is started; (lp#1906571, lp#1907872) ** fix the encoding of PEXTR on x86-64; * minor incompatible change: emit warnings for list iteration forms when the object being iterated over is known not to be a list. (lp#1908819, reported by Michael Fiano) * bug fix: detect 2 or 1 as an invalid number of arguments passed to optimized slot writing or reading effective method respectively. (lp#1909659, reported by Michal Herda) * bug fix: division by zero errors were in some cases not being signalled. (lp#1910098, reported by il71) * bug fix: erroneous coercions in the type system could lose precision. (lp#1910294) * bug fix: literal (read-time evaluated) NaNs in source code no longer cause compiler crashes. (lp#1909881, reported by Michal Herda) * bug fix: detect more erroneous syntax in method bodies. (lp#1912362, reported by Paul M. Rodriguez) * optimization: the compiler's understanding of EXPT is improved, reducing the introduction of COMPLEX types. (lp#1908830, reported by Michael Fiano) * optimization: the compiler is better at computing numeric contagion when (COMPLEX FLOAT) types are involved. * micro-optimizations: ** moving from slightly-bigger-than-fixnum ranges is more efficient on x86-64; ** encode character comparisons with smaller operands on x86-64; ** truncating (and related operations) on floats can be inlined in more cases on 64-bit platforms; ** rounding can use specialized instructions on ARM64 and on x86-64 when SSE4 is available;
changes in sbcl-2.1.0 relative to sbcl-2.0.11: * minor incompatible change: the MAKE-EA internal function, used in the assembler, has been removed (affecting some libraries defining their own Virtual Operations) * new feature: SB-EXT:PRIMITIVE-OBJECT-SIZE can be used to interrogate the low-level size in memory of objects. (lp#1636910, reported by anquegi) * platform support: ** pass required -std argument to the compiler on Solaris (lp#1885751, thanks to Jesse Off) ** better treatment of non-ASCII program arguments on Windows (lp#1907970, reported by Timofei Shatrov) ** implement the improved TYPEP with structure types on all other supported platforms (32-bit PowerPC, ARM, ARM64, MIPS, SPARC, RISC-V) * enhancement: stream dispatch (to vanilla ANSI / Gray / Simple variants) has been rewritten and optimized, fixing a number of bugs including: ** performance of WRITE-SEQUENCE on composite streams (lp#309136) ** handling of CLOSE on SYNONYM-STREAM (lp#1904257, reported by Richard M Kreuter) ** handling of CLOSE on BROADCAST-STREAM with no components (lp#1904722, reported by Richard M Kreuter) ** loading SB-SIMPLE-STREAMS breaks functionality of other stream classes (lp#1908132) ** some excessive consing in READ-LINE * enhancements related to RUN-PROGRAM: ** improved the documentation related to the ARGS argument (lp#806733, reported by mon_key) ** added a PRESERVE-FDS argument * bug fix: ensure that TYPE-OF returns something even on internal instances, which may become visible in the debugger. (lp#1908261, reported by Philipp Marek) * bug fix: iteration variables established by standard forms should always be considered used by the compiler. (lp#719585, reported by Roman Marynchak) * bug fix: don't allow compiler transformations to weaken the requirement against extended (list-form) function names in FUNCALL and related operators. (lp#310069) * bug fix: improve automated version number generation in branches. (lp#897867, thanks to Martin Cracauer) * bug fix: add possibly-spurious futex wakes when unwinding from a call to futex-wait, to avoid deadlocks from interrupted waits. (lp#1038034) * bug fixes in the compiler: ** error on malformed DESTRUCTURING-BIND (lp#1738638) ** error on malformed SPECIAL declaration (lp#1740756) ** error from use of VALUES type in COERCE (lp#1887712) ** enforcement of FTYPE types involving &OPTIONAL (lp#1903932) ** checking for proper-list-ness before applying transforms (lp#1905512) ** compilation of LAMBDA form including a malformed DEFUN (lp#1906056) ** memory fault from VALUES-related handling in high DEBUG code (lp#1906563) ** transforms handle explicit NIL arguments in :END arguments to SEARCH (lp#1907924) * bug fix: return COMPILED-FUNCTION for TYPE-OF on compiled functions. (lp#1906583) * some bugs were also closed in this release cycle as obsolete, having been fixed by the passage of time or other change in the environment: ** floating point error reporting on OS X (lp#309454) ** load-shared-library not working from non-main threads on OS X (lp#592425) * optimization: CONSTANTLY on constant arguments returns a more efficient function. (lp#1852585) * optimization: perform fewer Lisp/Alien representation conversions in callbacks. * optimization: perform fewer redundant widetag tests when doing type tests of complicated union types. * optimization: signed-integer division on machine-word sized operands is now implemented using multiplication, affecting TRUNCATE, FLOOR, CEILING, MOD and REM. (This optimization was already performed on unsigned-integer division)
changes in sbcl-2.0.11 relative to sbcl-2.0.10: * minor incompatible change: (ARRAY NIL (*)) is not a subtype of STRING, as is consistent with a majority of maintained CL implementations. * minor incompatible change: ARRAY-RANK-LIMIT is decreased from 65529 to 256 * optimization: TYPEP on structure types is faster and more compact on x86[-64] and ppc64. * optimization: LOGCOUNT is faster on arm64. * optimization: SIGNUM can be inlined if its argument type is known. (lp#1903533) * bug fix: compiler crash in tail call handling. (lp#1903938) * bug fix: crash in traceroot. (lp#1903419, reported by Michal Herda) * bug fix: DESCRIBE called with a string as second argument no longer mutates that string. (lp#1903901, reported by Michal Herda) * bug fix: stack clobbering by 256-bit SIMD packs on x86-64. (lp#1901685, reported by Marco Heisig)
changes in sbcl-2.0.10 relative to sbcl-2.0.9: * minor incompatible change: the funarg given to SB-SPROF:MAP-TRACES does not receive a wallclock time with each trace. * minor incompatible change: INTERNAL-TIME-UNITS-PER-SECOND has been increased to 10^6 on 64-bit architectures. * minor incompatible change: SIGPIPE is ignored by default again. (lp#1897624) * minor incompatible change: the system code compiled under the :LINKAGE-TABLE feature is now unconditionally compiled in, and the corresponding entry in *FEATURES* has been removed. * enhancement: style-warnings are issued for variables which have an assignment but no "for-value reference" (per CLHS glossary entry) * bug fix: SB-CLTL2:MACROEXPAND-ALL did not expand MULTIPLE-VALUE-BIND and MULTIPLE-VALUE-SETQ * bug fix: CPUID-based feature detection had an index/mask confusion (lp#1899239) * bug fix: fix a deadlock on Windows (lp#1896802) * bug fix: eliminate type errors when wall clocks go back (lp#1028026, lp#1032111) * bug fix: fix EOF handling in read-char-no-hang on concatenenated streams (lp#690408, reported by Willem Broekema) * bug fix: fix MAP-INTO on extended sequences (lp#1855375, thanks to James Kalenius) * bug fix: SB-GMP can now raise -1, 0 and 1 to the power of a bignum. (thanks to Aaron Chen) * bug fixes in tests: ** add a C function declaration (lp#1897627, thanks to Bob Felts) ** parse vmmap output more liberally (lp#1897722, reported by Bob Felts)
changes in sbcl-2.0.9 relative to sbcl-2.0.8: * incompatible change: HPPA and DEC Alpha architecture support has been removed. * minor incompatible change: the compiler signals a warning at compile-time when an initform of T, NIL or 0 does not match a STANDARD-CLASS slot's declared type. * minor incompatible change: the runtime no longer uses SIGPIPE internally, so the signal is deliverable to user code as is customary. Ignoring the signal - in lieu of the OS default of process termination - is obtainable via (SB-SYS:ENABLE-INTERRUPT SB-UNIX:SIGPIPE :IGNORE). * platform support: ** a number of obsolete portability layers (particularly on the Windows platform) have been removed in favour of direct calling of the native interfaces. ** RUN-PROGRAM now accepts a :WINDOW argument to control whether a subprocess window should be displayed. (Thanks to Luis Borges de Oliveira) ** the use of futexes implied by :SB-FUTEX is now implemented on FreeBSD. * bug fix: SB-SPROF can distinguish between SBCL-internal assembly routines. * bug fix: SB-SPROF has better output in its reports for anonymous functions. * optimization: CALL-NEXT-METHOD with supplied arguments in required positions is now faster if the supplied arguments are EQL to the original arguments.
changes in sbcl-2.0.8 relative to sbcl-2.0.7: * platform support: ** added support for NetBSD/ARM64; ** threads on Linux now have OS-visible names; ** removed unnecessary emulation of pthread functions on Windows; ** work around a sigwait() bug on Mac OS X; ** allow safepoint build on Mac OS X, though it probably doesn't work very well (reported by Chris Wagner, lp#1382811) ** removed stub support for HPUX. * optimization: SB-THREAD:MAKE-THREAD is faster on most platforms. * optimization: faster RATIONAL when the result is a RATIO. * optimization: improved cross-type comparisons (float/ratio/bignum). * bug fix: EQUALP on pathnames was wrong * bug fixes: fix compiler issues in: ** COUNT (lp#1889391) ** VECTOR-LENGTH (lp#1888919) ** constant-folding (lp#1888384) ** FIND and POSITION (lp#1887316)
changes in sbcl-2.0.7 relative to sbcl-2.0.6: * minor incompatible change: SB-THREAD:THREAD-OS-TID returns NIL for a thread which has exited. * minor incompatible change: OPEN no longer calls TRUENAME implicitly on a string filespec prior to issuing an open() system call. * minor incompatible change: PATHNAME is no longer a STRUCTURE-OBJECT. * documentation: HASH-FUNCTION is a function designator. (lp#1888028, reported by Jacek Zlydach) * bug fix: eliminated a potential garbage-collector deadlock when linking with TCMalloc. * bug fix: foreign threads (those not made by SB-THREAD:MAKE-THREAD) can not crash with a "GC_PENDING, but why?" error when returning back from Lisp into the foreign caller. * bug fix: sb-fasteval crashed trying to install a JIT-compiled DEFSTRUCT accessor in a locked package. * bug fix: removed misuse of putwc() which caused stdio streams to drop characters. * bug fix: the "maximum interrupt nesting depth exceeded" error generated in the C runtime is significantly less likely to occur. * bug fix: sb-sprof should no longer segfault from calling pthread_kill() on a nonexistent thread. * bug fix: a portability issue arising from various build hosts (lp#1886255, reported by Pierre Neidhart) * bug fix: spurious compiler warnings from REDUCE with :INITIAL-VALUE. (lp#1885515, reported by Michael South) * bug fix: an inconsistency between class hierarchies and the type system under some circumstances involving redefinition. (lp#1886397, reported by Atilla Lendvai) * bug fix: the USE-VALUE restart for OPEN on non-existent files is more likely to function as expected. (lp#1886587) * bug fix: various invalid inputs to ROTATE-BYTE no longer cause compiler errors. (lp#1887164, lp#1888152) * optimization: PPC64 on linux uses the __thread annotation on C variables in preference to pthread_setspecific() and pthread_getspecific().
changes in sbcl-2.0.6 relative to sbcl-2.0.5: * planned incompatible change: the defined symbols in the Metaobject Protocol, currently accessible from both SB-MOP and SB-PCL packages, will in a later release be no longer exported from SB-PCL. * platform support: ** better support for dynamic-extent on the SPARC architecture. ** bug fix for loading very large core files. ** bug fix for logior and logxor on PPC64. * enhancement: EQUALP on structure instances uses code specialized to each structure type, inlining comparison of non-pointer slots. * enhancement: some standard operators, such as WITH-OUTPUT-TO-STRING and CHANGE-CLASS, have been adapted to use dynamic-extent temporary objects, and so cons less garbage on the heap. * enhancement: read tables are more space- and speed efficient * bug fix: stream conditions with dynamic-extent streams have the stream replaced by a stub. (reported by Matt Kaufmann) * bug fix: garbage collections triggered from foreign callbacks crashed. (lp#1884403, reported by Andrew Kent) * bug fix: compiler failure in compiling MAKE-LIST. (lp#1881349) * bug fix: using the debugger from frames with calls to functions with unsupplied optional arguments is less likely to cause heap corruption. (lp#1883745)
changes in sbcl-2.0.5 relative to sbcl-2.0.4: * platform support: ** experimental support for ARM32 and ARM64 on OpenBSD ** better musl libc support. (lp#1768368, thanks to Eric Timmons) ** more correct use of futexes on 64-bit Linux. (lp#1876825, reported by Ilya Perminov) ** restore building on current Solaris. (lp#1881393, thanks to Shawn Ellis) * enhancement: CMUCL-style START-BLOCK and END-BLOCK declarations are now supported for block compiling forms at a sub-file granularity. * enhancement: IPv6 support in sb-bsd-sockets is enabled on Windows. * minor change: *compile-print* now makes it more clear what block compilation is actually doing. The default output is now slightly more verbose as a result. * bug fix: number keys in EQUALP hash tables are correctly hashed. (lp#1878653, reported by Syll) * bug fix: EQness is better preserved given partial sharing of list contents in the file compiler. (lp#1583753, reported by Denis Budyak) * bug fix: the peephole pass neglected to preserve jump table labels. (lp#1876485) * bug fix: fix compiler crash in block compilation merging of toplevel lambdas. (lp#1865336, reported by il71) * bug fix: sb-introspect's function-lambda-arglist is better at extracting default values of nested macro arguments. (lp#1876194) * bug fix: RESTART-BIND's body is an implicit progn, and so does not accept declarations. (lp#1876303, reported by Michal Herda) * optimization: EQUAL hash tables with keys involving structure-objects will have fewer systematic collisions.
changes in sbcl-2.0.4 relative to sbcl-2.0.3: * platform support: ** 32-bit RISC-V is now fully supported. Unlike other ports, its backend is entirely shared with 64-bit RISC-V. ** native threads are now supported on RISC-V. ** fix and add some x86-64 vector instructions. (reported by Shubhamkar Ayare) ** improve pointer representation on ppc64 for low-level performance improvement. ** threads are more stable on big-endian ppc64 * enhancement: forward-referenced type tests can now be open-coded by using block compilation. The result is that mutually referential defstructs are now efficiently compiled in block compilation mode, superseding a lighter mechanism that worked in fewer contexts. However, that lighter mechanism has been removed, so for now, users who want to efficiently compile mutually referential defstructs must explicitly opt-in using block compilation. * bug fix: defstructs with empty initforms in the sbcl source are now explicitly intiialized with NIL, as that is undefined behavior under ANSI. This helps cross compilation hosts which do not implicitly initialize empty initform slots to NIL. (Thanks to Karsten Poeck) * bug fix: backtracing through assembly routines now works properly on RISC-V. * bug fix: ASH no longer gets miscompiled in certain edge cases on RISC-V. * bug fix: &MORE args have been slightly optimized and are more correct on RISC-V. * bug fix: unused local functions with &REST/&KEY/&OPTIONAL now also issue a deletion note. * bug fix: APPLY on a large list ("large" being in excess of 2k to 16k items depending on the platform) can no longer crash the gencgc collector. * bug fix: sb-concurrency FRLOCK algorithm has been corrected. (lp#1087955) * bug fix: block compilation now respects inlining declarations better (like CMUCL). * optimization: hashing of structures with raw slots for EQUALP hash tables has been improved.
PreviousNext