Tags give the ability to mark specific points in history as being important
-
sbcl-1.1.5
8f78db11 · ·changes in sbcl-1.1.5 relative to sbcl-1.1.4: * minor incompatible change: SB-SPROF:WITH-PROFILING no longer loops by default. * new feature: package local nicknames. See manual for details. * new feature: SB-EXT:MAP-DIRECTORY provides a powerful interface for directory traversal: it is the backend used by SBCL for CL:DIRECTORY. * enhancement: easier to use restarts for resolving name-conflicts resulting from IMPORT, EXPORT, or USE-PACKAGE. * enhancement: variant DEFPACKAGE forms now signal a full error with restarts provided for resolving the situation. (lp#891351) * enhancement: by setting SB-EXT:*ON-PACKAGE-VARIANCE* appropriately variant DEFPACKAGE forms can now signal a full error with restarts provided for resolving the situation. See manual for details. (lp#891351) * enhancement: make-random-state now uses CryptGenRandom as a seed on Windows. (Thanks to Anton Kovalenko.) (lp#1102748) * enhancement: backtrace improvements ** secondary CLOS dispatch functions have better debug names (lp#503081) ** easier to read method names in backtraces. See SB-DEBUG:*METHOD-FRAME-STYLE*. ** SB-DEBUG:PRINT-BACKTRACE and SB-DEBUG:LIST-BACKTRACE are available as forwards-compatible replacements for SB-DEBUG:BACKTRACE and SB-DEBUG:BACKTRACE-AS-LIST. ** SB-DEBUG:*SHOW-ENTRY-POINT-DETAILS** has been deprecated, as the same information is available in less intrusive form as frame annotations. * enhancement: SB-POSIX now provides MAP-ANON. * enhancement: test-suite results are colorized, failures in red, unexpected success in green. Works on Windows and on terminals with ANSI escape code support. Can be disabled with --no-color. * optimization: SB-CONCURRENCY:QUEUE implementation is more efficient. (thanks to James M. Lawrence) * bug fix: no more unused variable style warnings from RESTART-CASE macroexpansion (lp#1113859) * bug fix: no more unused variable style warnings when loading sb-bsd-sockets.asd (lp#1114681) * bug fix: deleting a package removes it from implementation-package lists of other packages. * bug fix: SB-SPROF:WITH-PROFILING is now usable in the Slime REPL on Darwin. This does not fix the occasional "interrupt already pending" issue, though. * bug fix: (setf (documentation 'x 'function)) and (setf (documentation #'x t)) set documentation in different places. (regression since 1.0.43.63) * bug fix: build on newer glibc. (lp#1095036) -
sbcl-1.1.4
43156bac · ·changes in sbcl-1.1.4 relative to sbcl-1.1.3: * optimization: LOOP expressions using "of-type character" have slightly more efficient expansions. * bug fix: very long (or infinite) constant lists in DOLIST do not result in very long compile times or heap exhaustion anymore. (lp#1095488) * bug fix: `#3(1) is read as #(1 1 1), not as #(1). (lp#1095918) * bug fix: adjust-array ignored :initial-element for simple-vectors. (lp#1096359) * bug fix: optimizations to MAKE-INSTANCE with literal list initargs no longer cause infinite loops (on circular data) or violate eqlity constraints. (lp#1099708) * bug fix: FIRST was not being open coded. (regression from 1.1.0) -
sbcl-1.1.3
e31ed154 · ·changes in sbcl-1.1.3 relative to sbcl-1.1.2: * enhancement: warnings about bad locale settings, LANG, LC_CTYPE, etc. (lp#727625) * enhancement: support for C-c to interrupt the foreground thread on Windows. (Thanks to Anton Kovalenko.) * enhancement: STDCALL alien callbacks. (Thanks to Anton Kovalenko.) * enhancement: Safepoint builds on POSIX platforms can now optionally be built without pseudo-atomic sequences and their run-time overhead. * enhancement: Threads created outside of Lisp can enter Lisp through alien callbacks and appear as Lisp threads for the duration of that function invocation. On safepoint builds only. * enhancement: Miscellaneous improvements to namestrings and underlying calls to OS functions for file system access on Windows. (Thanks to Anton Kovalenko.) * enhancement: The MSI installer support for Windows now uses Windows Installer XML at least version 3.5 and includes various usability improvements. (Thanks to Dmitry Kalyanov and Anton Kovalenko.) * enhancement: The sb-bsd-sockets contrib now supports non-blocking-mode on Windows. (Thanks to Anton Kovalenko.) * enhancement: The Windows backend now supports the x86-64 platform. (Thanks to Anton Kovalenko.) * bug fix: fasls are now once again directly executable (on platforms supporting shebang lines, with a suitably-installed sbcl). * bug fix: make.sh --help no longer runs clean.sh. (lp#937001) * bug fix: Fix CAS access to slots of direct instances of structure classes in the presence of subclasses sharing the same conc-name. * bug fix: Logical pathname namestrings on Windows have been changed to be lower-case, to minimize differences between POSIX and Windows. -
-
sbcl-1.1.2
0df89145 · ·changes in sbcl-1.1.2 relative to sbcl-1.1.1: * notice: System requirements for SBCL on Microsoft Windows: Windows NT 5.1 or newer (Windows XP, Server 2003) is required. Support for Windows 2000 (NT 5.0) is no longer being maintained. * notice: Starting with this version, SBCL on Windows no longer supports building with disabled thread support. * enhancement: frlocks have been added to SB-CONCURRENCY contrib module. * enhancement: New feature sb-dynamic-core allows the runtime to be rebuilt or relocated without requiring changes to the core file on all linkage table platforms. Required on Windows. (Thanks to Anton Kovalenko.) * enhancement: Console I/O streams use UCS-2. (Thanks to Anton Kovalenko.) * enhancement: I/O on Windows unnamed pipes is interruptible asynchronously using interrupt-thread, timers when running on Windows NT version 6.1 or newer (Windows 7, Server 2008 R2). (Thanks to Anton Kovalenko.) * enhancement: Support for the experimental safepoint-based stop-the-world protocol on the PowerPC platform. * bug fix: Non-blocking reads from the Windows console were not necessarily non-blocking. Thanks to Anton Kovalenko. (lp#308923) * bug fix: stability of threads on Windows has been improved upon through an updated stop-the-world protocol (thanks to Anton Kovalenko). -
sbcl-1.1.1
0baeb07f · ·changes in sbcl-1.1.1 relative to sbcl-1.1.0: * enhancement: WITH-COMPILATION-UNIT no longer grabs the world-lock. (COMPILE and COMPILE-FILE still do.) * optimization: the SPARC backend now supports the precise generational (GENCGC) garbage collection. Enabled by default on Solaris/SPARC and Linux/SPARC. Thanks to Raymond Toy (via CMUCL). * enhancement: add experimental support for the SB-THREAD feature and the timer facility on Windows. Thanks to Dmitry Kalyanov and Anton Kovalenko. Threads are enabled by default, and this version of SBCL is considered to be the last and final release to officially support building with threads disabled. * optimization: The compiler no longer rotates loops in some cases where this transformation actually lead to worse code being generated. * bug fix: SB-CLTL2:MACROEXPAND-ALL correctly handles shadowing of symbol-macros by lexical bindings. * bug fix: stack allocation was prevented by high DEBUG declaration in several cases. * bug fix: SB-EXT:GC-LOGFILE signaled an error when no logfile was set. (thanks to SANO Masatoshi) * bug fix: PARSE-NATIVE-NAMESTRING performed non-native parsing when :JUNK-ALLOWED was true. * bug fix: type derivation inferred overly conservative types for unions of array types. (lp#1050768) -
sbcl-1.1.0
bb0248a7 · ·changes in sbcl-1.1.0 relative to sbcl-1.0.58: * enhancement: New variable, sb-ext:*disassemble-annotate* for controlling source annotation of DISASSEMBLE output. Defaults to T. * enhancement: TIMEOUT arguments added to WITH-MUTEX and WITH-RECURSIVE-LOCK, and WAIT-P argument added to WITH-RECURSIVE-LOCK. * enhancement: SB-EXT:ATOMIC-PUSH and SB-EXT:ATOMIC-POP allow atomic operations on list heads. * enhancement: Optional features (not enabled by default) allow the use of signals for inter-thread synchronization to be reduced on certain supported platforms (currently Linux, Solaris, and FreeBSD on x86 and x86-64). Set (and :sb-thread :sb-safepoint :sb-thruption :sb-wtimer) to test these experimental features. Known remaining bugs include minor thread safety issues, less timely freeing of memory by GC, and certain (not yet optimally low) runtime overhead. Thanks to Anton Kovalenko. * optimization: CL:SORT and CL:STABLE-SORT of lists are faster and use fewer comparisons, particularly on almost-sorted inputs. * bug fix: Reading floats with large exponents no longer takes too much time before reporting that the exponent is too large. * bug fix: SB-BSD-SOCKETS:SOCKET-RECEIVE with a UDP socket now works correctly when the received datagram is larger than the provided buffer. (lp#1023438, thanks to Robert Uhl) * bug fix: SB-EXT:GET-CAS-EXPANSION returned a bogus read-form when given a SYMBOL-VALUE form with a constant symbol argument. * bug fix: SB-EXT:GET-CAS-EXPANSION signaled an error when a macro expanding into a DEFCAS defined place was used as the place. * bug fix: FIND and POSITION signaled a type-error when non-bits where looked for from bit-vectors. * bug fix: a race condition around thread creation could (in SBCL 1.0.57) lead to internal errors or crashes (lp#1058799). * documentation: a section on random number generation has been added to the manual. (lp#656839) -
sbcl-1.0.58
4bc19d9c · ·changes in sbcl-1.0.58 relative to sbcl-1.0.57: * enhancement: implicit generic function warnings now specify the package in which the new generic function is being created. * enhancement: SB-EXT:ATOMIC-UPDATE makes it easy to perform non-destructive updates of CAS-able places (similar to Clojure's swap!). * enhancement: run-program no longer decodes and re-encodes environment when :environment argument is not provided. (lp#985904) * enhancement: errors during compiler-macro expansion no longer cause runtime errors, only a compile-time warning, otherwise behaving as if the compiler macro had declined to expand. * optimization: On x86-64, code alignment of block headers is done with multi-byte NOPs now instead of repetitions of the single-byte NOP. * optimization: MAP-INTO is substantially faster when the target sequence is of unknown type; mapping into lists is no longer O(N^2). (thanks to James M. Lawrence) * optimization: the compiler no longer heap-conses to check exits in cases where the exit function is dynamic extent, or when it can prove the exit function cannot escape. * optimization: SB-SEQUENCE:DOSEQUENCE is faster on vectors of unknown element type, and vectors that aren't SIMPLE-ARRAYs. * optimization: CL:SORT and CL:STABLE-SORT are more efficient in execution speed (around 1/3 the time in some cases), and a little better in terms of comparison calls. (Thanks to Takeru Ohta) * bug fix: On SPARC, a limitation on the number of code constants emittable by the compiler has been lifted, allowing certain long functions to compiled and assembled which had previously been unsupported; fixes cl-bench on this ISA (lp#1008996). * bug fix: potential for infinite recursion during compilation of CLOS slot typechecks when dependency graph had loops. (lp#1001799) * bug fix: error forms reported with some program-errors were not escaped properly. * bug fix: functions from EVAL are now on more equal footing with functions from COMPILE. (lp#1000783, lp#851170, lp#922408) * bug fix: ENSURE-GENERIC-METHOD-COMBINATION accepts method combination objects as its :METHOD-COMBINATION argument, not just lists designating method combinations. (lp#936513) * bug fix: run-program no longer unconditionally uses /tmp/ for temporary files. (lp#968837). * bug fix: restore build on solaris/sparc. (lp#1008506) * bug fix: an issue with LDB in the PowerPC backend has been resolved; this fixes an issue found with cl-postgres (thanks to Tomas Hlavaty). * bug fix: compiler-macro lambda-lists specifying non-keyword symbols as keyword arguments no longer accidentally match unevaluated symbols against them. * bug fix: FORMAT used to loop infinitely in some cases when a COLINC parameter was zero, now it signals an error. (lp#905817, fixed since 1.0.56.19) * bug fix: run-program with :pty t no longer makes the pty as the process's controling terminal. -
sbcl-sbcl-1.0.58
b558c556 · ·changes in sbcl-sbcl-1.0.58 relative to sbcl-1.0.57: * enhancement: implicit generic function warnings now specify the package in which the new generic function is being created. * enhancement: SB-EXT:ATOMIC-UPDATE makes it easy to perform non-destructive updates of CAS-able places (similar to Clojure's swap!). * enhancement: run-program no longer decodes and re-encodes environment when :environment argument is not provided. (lp#985904) * enhancement: errors during compiler-macro expansion no longer cause runtime errors, only a compile-time warning, otherwise behaving as if the compiler macro had declined to expand. * optimization: On x86-64, code alignment of block headers is done with multi-byte NOPs now instead of repetitions of the single-byte NOP. * optimization: MAP-INTO is substantially faster when the target sequence is of unknown type; mapping into lists is no longer O(N^2). (thanks to James M. Lawrence) * optimization: the compiler no longer heap-conses to check exits in cases where the exit function is dynamic extent, or when it can prove the exit function cannot escape. * optimization: SB-SEQUENCE:DOSEQUENCE is faster on vectors of unknown element type, and vectors that aren't SIMPLE-ARRAYs. * optimization: CL:SORT and CL:STABLE-SORT are more efficient in execution speed (around 1/3 the time in some cases), and a little better in terms of comparison calls. (Thanks to Takeru Ohta) * bug fix: On SPARC, a limitation on the number of code constants emittable by the compiler has been lifted, allowing certain long functions to compiled and assembled which had previously been unsupported; fixes cl-bench on this ISA (lp#1008996). * bug fix: potential for infinite recursion during compilation of CLOS slot typechecks when dependency graph had loops. (lp#1001799) * bug fix: error forms reported with some program-errors were not escaped properly. * bug fix: functions from EVAL are now on more equal footing with functions from COMPILE. (lp#1000783, lp#851170, lp#922408) * bug fix: ENSURE-GENERIC-METHOD-COMBINATION accepts method combination objects as its :METHOD-COMBINATION argument, not just lists designating method combinations. (lp#936513) * bug fix: run-program no longer unconditionally uses /tmp/ for temporary files. (lp#968837). * bug fix: restore build on solaris/sparc. (lp#1008506) * bug fix: an issue with LDB in the PowerPC backend has been resolved; this fixes an issue found with cl-postgres (thanks to Tomas Hlavaty). * bug fix: compiler-macro lambda-lists specifying non-keyword symbols as keyword arguments no longer accidentally match unevaluated symbols against them. * bug fix: FORMAT used to loop infinitely in some cases when a COLINC parameter was zero, now it signals an error. (lp#905817, fixed since 1.0.56.19) * bug fix: run-program with :pty t no longer makes the pty as the process's controling terminal. -
sbcl-1.0.57
77d88914 · ·changes in sbcl-1.0.57 relative to sbcl-1.0.56: * RANDOM enhancements and bug fixes: ** bug fix: the range and distribution of random integers could be catastrophically wrong when the compiler derived the type of its argument as a disjoint set of small integers. ** bug fix: the distribution of random integers is now completely uniform even when the specified limit is not a power of two. (Previously some values could be about 0.1 % more probable than others in the worst case.) ** RANDOM on large integer arguments is generally faster and conses less than before; this is visible for fixnums above a length of about 24 bits, but extremely so for bignums: the old implementation used time and space quadratical in the size of the argument there, the new one is linear. * enhancement: redesigned protocol for quitting SBCL. SB-EXT:EXIT is the new main entry point, SB-EXT:QUIT is deprecated. * enhancement: additions to the SB-THREAD API: RETURN-FROM-THREAD, ABORT-THREAD, MAIN-THREAD-P, and MAIN-THREAD. * enhancement: FASL loading no longer grabs the world-lock. * enhancement: GENCGC reclaims space more aggressively when objects being allocated are a large fraction of the total available heap space. (lp#936304) * enhancement: backtraces show the correct number of arguments for frames called with too many arguments. * enhancement: support for abort(3), exit(3), and _exit(2) has been added to SB-POSIX. * enhancement: ASDF has been updated 2.21. * optimization: fewer uses of full calls to signed modular functions. (lp#903821) * optimization: typechecking alien values is typically 5 x faster. * optimization: FDEFINITION, SYMBOL-FUNCTION, MACRO-FUNCTION, and FBOUNDP are 20% faster. * bug fix: file compilation performance issues when dumping subtypes of CHARACTER (lp#994487) * bug fix: fixed disassembly of some SSE instructions on x86-64. * bug fix: SB-SIMPLE-STREAMS signals an error for bogus :CLASS arguments in OPEN. (lp#969352, thanks to Kambiz Darabi) * bug fix: CASE normal-clauses do not allow T and OTHERWISE as keys. (lp#959687) * bug fix: (SETF (FIND-CLASS X) NIL) removed proper name of the underlying classoid even if X was not the proper name of the class. (lp#941102) * bug fix: declaration leakage between lexical environments due to careless use of NCONC in MAKE-LEXENV. (lp#924276) * bug fix: ENSURE-DIRECTORIES-EXIST now works when *default-pathname-defaults* contains NAME or TYPE components. * bug fix: PPRINT couldn't print improper lists with CARs being some symbols from CL package, e.g. (loop . 10). * bug fix: run-program with existent or non-existent files for :output or :input when :if-output-exists or :if-input-does-not-exist are NIL properly returns NIL instead of signalling an obscure error. * bug fix: fix miscompilation of some logand forms with large constant arguments. (lp#974406) * bug fix: account for funcallable-instance objects properly in ROOM. * bug fix: incorrect octets reported for c-string decoding errors. (lp#985505) * bug fix: miscompilation of LDB on the PowerPC platform. (thanks to Bruce O'Neel) * bug fix: better input error reporting for COMPILE-FILE. (lp#493380) * bug fix: default size of non-nursery generations has been shrunk on GENCGC, allowing faster release of memory back to the OS. (lp#991293) * bug fix: WITH-DEADLINE (:SECONDS NIL :OVERRIDE T) now drops any existing deadline for the dynamic scope of its body. * bug fix: compiler-internal interval arithmetic needed to be more conservative about open intervals when operated on by monotonic but not strictly-monotonic functions. (lp#975528) * bug fix: copy-tree caused stack exhaustion on long linear lists, and now it's also slightly faster. (lp#998926) * bug fix: better error messages for malformed declarations. (lp#1000239) * bug fix: define-condition didn't return the name of the defined condition. * documentation: ** improved docstrings: REPLACE (lp#965592) -
sbcl-1.0.56
dfac7cf0 · ·changes in sbcl-1.0.56 relative to sbcl-1.0.55: * bug fix: fix copy-structure. When copying from stack to heap, garbage could end up in the heap making GC unhappy. (Thanks to James Knight, lp#911027) * enhancements ** SBCL can now be built using Clang. ** ASDF has been updated 2.20. * bug fix: compiler errors when weakening hairy integer types. (lp#913232) * bug fix: don't complain about a too-hairy lexical environment for inlining when the function has never been requested for inlining. (lp#963530) -
sbcl-1.0.55
abb03f93 · ·changes in sbcl-1.0.55 relative to sbcl-1.0.54: * enhancements to building SBCL using make.sh: ** --fancy can be specified to enable all supported feature enhancements. ** --with-<feature> and --without-<feature> can be used to specify which features to build with. ** --arch option can be used to specify the architecture to build for. (Mainly useful for building 32-bit SBCL's on x86-64 hosts, not full-blows cross-compilation.) * enhancement: extended package prefix syntax <pkgname>::<form-in-package> which allows specifying name of the default interning package for the whole form. * enhancement: when *READ-EVAL* is true, arrays with element type other than T can be printed readably using #.-based syntax. (Thanks to Robert Brown) * enhancement: MAKE-ALIEN signals a storage-condition instead of returning a null alien when malloc() fails. (lp#891268) * enhancement: SB-EXT:PRINT-UNREADABLY restart for PRINT-NOT-READABLE conditions can be conveniently accessed through function with the same name, analogously to CONTINUE. * enhancement: SB-EXT:*SUPPRESS-PRINT-ERRORS* can be used to suppress errors from the printer by type, causing an error marker to be printed instead. (Thanks to Attila Lendvai) * enhancement: BACKTRACE and DESCRIBE now bind *PRINT-CIRCLE* to T, and generally behave better when errors occur during printing. * enhancement: the test runner now takes a --report-skipped-tests argument to report the individual tests skipped as well as the number of skipped tests. * enhancement: undefined functions now appear in backtraces as ("undefined function") instead of ("bogus stack frame") on x86oids. * enhancement: detected deadlocks no longer cause stderr to be spammed, and deadlock errors are reported in an easier-to-decipher manner. * enhancement: DESCRIBE on type designators reports the expansion in more cases. * enhancement: SBCL now provides either an explicit :BIG-ENDIAN or :LITTLE-ENDIAN in *FEATURES*, instead of :BIG-ENDIAN being implied by lack of the :LITTLE-ENDIAN feature. (Thanks to Luís Oliveira, lp#901661) * enhancement: better disassembly of segment-prefixes on x86 and other instruction prefixes (e.g. LOCK) on x86 and x86-64. * optimization: FIND and POSITION on bit-vectors are orders of magnitude faster (assuming KEY and TEST are not used, or are sufficiently trivial.) * optimization: SUBSEQ on vectors of unknown element type is substantially faster. (lp#902537) * optimization: specialized arrays with non-zero :INITIAL-ELEMENT can be stack-allocated. (lp#902351) * optimization: the compiler is smarter about representation selection for floating point constants used in full calls. * optimization: the compiler no longer refuses to coerce large fixnums to single floats inline, except on x86 where this limitation is still necessary. * bug fix: deadlock detection could report the same deadlock twice, for two different threads. Now a single deadlock is reported exactly once. * bug fix: interval-arithmetic division during type derivation did not account for signed zeros. * bug fix: compiler error when typechecking a call to a function with non-constant keyword arguments. * bug fix: misoptimization of TRUNCATE causing erratic behaviour. * bug fix: condition slot accessors no longer cause undefined function style-warnings when used in the :REPORT clause of the DEFINE-CONDITION form that defines them. (lp#896379) * bug fix: DEFGENERIC warns about unsupported declarations, as specified by ANSI. (lp#894202) * bug fix: SUBTYPEP tests involving forward-referenced classes no longer bogusly report NIL, T. * bug fix: bogus style-warnings for DEFMETHOD forms that both declared some required arguments ignored and performed assignments to others. (lp#898331) * bug fix: *EVALUATOR-MODE* :COMPILE treated (LET () ...) identically to (LOCALLY ...) leading to internally inconsistent toplevel-formness. * bug fix: non-toplevel DEFSTRUCT signaled a style warning for unknown type. * bug fix: redefining a function whose previous definition contained an unknown type no longer causes a style-warning. (lp#806243) * bug fix: undefined functions now appear in backtraces as ("undefined function") instead of ("bogus stack frame") on non-x86oids. * bug fix: backtraces are no longer cut off at ("undefined function") when called under certain circumstances (involving a caller-allocated stack frame) on PPC. * bug fix: RUN-PROGRAM leaked a file-descriptor per call on non-Windows systems. (regression since 1.0.53) * bug fix: GC deadlocks from dladdr() on certain platforms. * bug fix: broken standard streams no longer automatically cause recursive errors on debugger entry. * bug fix: build ignored --dynamic-space-size=<size> argument to make.sh (regression since 1.0.53) * bug fix: attempts to stack allocate a required argument to a function with an external entry point caused compiler-errors. * bug fix: compiler notes for failed stack allocation for a function argument no longer claim to be unable to stack allocate the function. * bug fix: COERCE now signals a type-error on several coercions to subtypes of CHARACTER that are forbidden according to ANSI. (lp#841312) * bug fix: missing failure-to-stack-allocate compiler notes for some forms of MAKE-ARRAY with dynamic-extent. (lp#902351) * bug fix: some of the compile-time side-effects of DEFCLASS were not caught by package locks. -
sbcl-1.0.54
185b926d · ·changes in sbcl-1.0.54 relative to sbcl-1.0.53: * minor incompatible changes: ** RENAME-FILE on a symbolic links used to rename the linked-to file instead of the link. ** DELETE-DIRECTORY on symbolic link to a directory used to delete the directory, but now signal an error instead. Use TRUENAME to resolve the pathname if you wish to delete the linked directory, and DELETE-FILE if you wish to delete the ** The internal SB-THREAD::SPINLOCK API has been deprecated, and using symbols associated with it will trigger a compile-time warning. * thread-related enhancements: (This work has been funded by the SBCL Threading 2011 IndieGoGo campaign. Many thanks to generous donors!) ** Threading is now more reliable on non-Linux platforms. We still don't consider threads on non-Linux platforms good enough to enable them by default, but they're in a clearly better shape now. ** Deadlines supported now on all platforms. ** All blocking functions in the threading API now have a :TIMEOUT argument. ** Semaphore notification objects have been added to SB-THREAD. ** SB-CONCURRENCY contrib now includes Allegro-style GATE objects. ** SB-EXT:COMPARE-AND-SWAP has been extended to support SLOT-VALUE, STANDARD-INSTANCE-ACCESS, and FUNCALLABLE-STANDARD-INSTANCE-ACCESS. ** Users can now defined new places usable with SB-EXT:COMPARE-AND-SWAP using an API anologous to defining new SETFable places. * GC-related enhancements and bug fixes: ** --dynamic-space-size and --control-stack-size now understand Kb, Mb, and Gb suffixes. Default is megabytes as before. ** on GENCGC targets, the default dynamic space size is now 512Mb for 32-bit systems, and 1Gb for 64-bit systems. (OpenBSD/x86-64 is the only exception, defaulting to mere 444Mb to fit under default ulimits.) The new defaults are in place to prevent hitting swap on low-end systems. Use build-time option --dynamic-space-size to build an SBCL with another default, or the runtime option to adjust the size at startup: a good size is at most equal to the amount of physical memory the system has. ** on GENCGC targets, nursery and generation sizes now default to 5% of dynamic-space size. ** on GENCGC targets, SB-KERNEL:MAKE-LISP-OBJ no longer categorically refuses to create SIMPLE-FUN objects. ** on 64-bit GENCGC targets, setting the nursery size above 4Gb now works. (lp#870868) ** on CHENEYGC targets, SB-KERNEL:MAKE-LISP-OBJ now does the same validation of pointer objects as GENCGC does, instead of a comparatively weak bounds-check against the heap spaces. * SB-BSD-SOCKETS bug fixes: ** GET-PROTOCOL-BY-NAME had a significant memory leak. ** GET-HOST-BY-NAME and GET-HOST-BY-ADDRESS small amounts of memory on systems with getaddrinfo(). ** GET-HOST-BY-NAME and GET-HOST-BY-ADDRESS weren't thread or interrupt safe outside systems with getaddrinfo(). * enhancement: ASDF has been updated 2.019. * enhancement: special-case TCO prevention for functions which never return extended to untrusted types, keeping one more frame's worth of debug information around in many cases. * enhancement: debug-names of anonymous and local function are more descriptive. Affects backtraces and SB-SPROF results. (lp#805100) * enhancement: on win32, ABS of complex floats guards better against overflows. (lp#888410) * enhancement: RUN-PROGRAM now distinguishes exec() failing from child process exiting with code 1. (lp#676987) * enhancement: convenience function SET-SBCL-SOURCE-LOCATION for informing the system where on the filesystem the SBCL sources themselves are located. (Thanks to Zach Beane) * enhancement: the compiler is now able to derive tighter bounds for floating point numbers in some cases. (Thanks to Lutz Euler, lp#894498) * bug fix: on 64-bit targets, atomic-incf/aref does index computation correctly, even on wide-fixnum builds. (lp#887220) * bug fix: (DIRECTORY "foo/*/*.*") did not follow symlinks in foo/ that resolved to directories. * bug fix: type mismatch when assigning to lexical variables no longer result in fasl-dumping internal type objects. (lp#890750) * bug fix: type mismatch on (SETF AREF) and function return values no longer result in fasl-dumping internal type objects. * bug fix: With several combinations of argument types, for example (EXPT <integer> <(complex double)>), EXPT now uses double-precision throughout instead of partially calculating only to single-precision. (lp#741564; thanks to Lutz Euler) * bug fix: SYMBOL-VALUE-IN-THREAD is no longer able to construct bogus objects when interrupted by GC on PPC.