;;;; -*- coding: utf-8; fill-column: 78 -*-
-changes relative to sbcl-1.0.47:
- * bug fix: better support for Solaris /bin/sh in sh-based tests.
+changes 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: 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.
+ * optimization: the compiler is smarter about representation selection for
+ floating point constants used in full calls.
+ * 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.
+
+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.
+
+changes in sbcl-1.0.53 relative to sbcl-1.0.52:
+ * enhancement: on 64-bit targets, in src/compiler/generic/early-vm.lisp,
+ the parameter n-fixnum-tag-bits may now vary from 1 (fixnum =
+ (signed-byte 63)) to 3 (fixnum = (signed-byte 61)) at build-time.
+ * enhancement: SB-EXT:WAIT-FOR allows waiting for arbitrary events.
+ * minor(?) incompatible(?) change: The default fixnum width on 64-bit
+ targets is now 63 bits (up from 61).
+ * enhancement: DESCRIBE now reports a lambda-list and source location
+ for complext setf-expanders.
+ * bug fix: PUSH, PUSHNEW, POP, REMF, INCF, DECF, DEFINE-MODIFY-MACRO,
+ GETF, LOGBITP, LDB, and MASK-FIELD now arrange for non-primary values
+ of multiple-valued places to be set to NIL, instead of signalling an
+ error (per a careful reading of CLHS 5.1.2.3).
+ * bug fix: floating-point traps now work on darwin/x86 and /x86-64.
+ * bug fix: repair crash in x86oid darwin signal handling emulation
+ when built with certain compilers.
+ * bug fix: SB-ROTATE-BYTE misrotated to the right when using constant
+ rotation arguments on x86-64. (lp#882151)
+ * bug fix: low-level control flow optimisations could result in bogus
+ code in functions with tail and non-tail calls to local functions on
+ x86oids. (lp#883500)
+ * bug fix: on SPARC/:sb-unicode, avoid crashing the assembler by trying
+ to emit literal characters > (code-char 4095), for comparisons with
+ constant characters.
+ * bug fix: ROOM reported only the low 32 bits of dynamic space usage
+ on 64 bit platforms. (lp#881445)
+ * bug fix: DELETE-FILE did not MERGE-PATHNAMES, making it possible to
+ delete the wrong file when using relative pathnames. (lp#882877)
+ * bug fix: optimized SEARCH of vectors-on-vectors mishandled zero-length
+ sequences and :KEY NIL.
+
+changes in sbcl-1.0.52 relative to sbcl-1.0.51:
+ * enhancement: ASDF has been updated to version 2.017.
+ * enhancement: the --core command line option now accepts binaries with
+ an embedded core.
+ * enhancement: when built with :sb-core-compression, core files (regular
+ or executable) can be compressed with zlib. Use the :COMPRESSION
+ argument to SAVE-LISP-AND-DIE to specify a compression level.
+ * enhancement: --[no-]merge-core-pages determines whether the runtime
+ hints the operating system that identical core pages between SBCL
+ processes should share the same physical memory. Default is to only
+ enable this for compressed cores.
+ * optimization: SLEEP no longer conses.
+ * optimization: *PRINT-PRETTY* no longer slows down printing of strings
+ or bit-vectors when using the standard pretty-print dispatch table.
+ * bug fix: non-function FTYPE declarations no longer cause a compiler-error.
+ (lp#738464)
+ * bug fix: compiler-errors causes by MEMBER types in conjunction with with
+ AREF, CHAR, etc. (lp#826971)
+ * bug fix: compiler-errors causes by integer arguments with composed of
+ multiple ranges to ARRAY-IN-BOUNDS-P. (lp#826970)
+ * bug fix: ,@ and ,. now signal a read-time error for certain non-list
+ expressions. (lp#770184)
+ * bug fix: complex single float literals are correctly aligned when used
+ as arguments of arithmetic operators.
+ * bug fix: on 32-bit platforms, rounding of double floats larger than a
+ fixnum is correct. (reported by Peter Keller)
+ * bug fix: stray FD-HANDLERs are no longer left lying around after unwinds
+ from RUN-PROGRAM. (lp#840190, reported by Dominic Pearson; fix from Max
+ Mikhanosha)
+ * bug fix: redefining classes such that slots with custom allocation are
+ added or removed works again.
+
+changes in sbcl-1.0.51 relative to sbcl-1.0.50:
+ * minor incompatible change: SB-BSD-SOCKET socket streams no longer
+ participate in SERVE-EVENT by default: pass :SERVE-EVENTS T to
+ MAKE-SOCKET-STREAM if using SERVE-EVENT.
+ * enhancement: added support for socket keepalive timeout intervals
+ and probe counts on Linux.
+ * enhancement: building 32-bit SBCL on Linux/x86-64 now works without a
+ chroot. (Use "SBCL_ARCH=x86 sh make.sh" to build.)
+ * enhancement: added new toplevel options --quit and --non-interactive
+ (lp#822712).
+ * enhancement: the Windows port of SBCL now builds and runs on Wine
+ (thanks to Anton Kovalenko).
+ * enhancement: more, and more correct, SSE instruction definitions on
+ x86-64 (thanks to Alexander Gavrilov).
+ * enhancement: SB-EXT:SPIN-LOOP-HINT assembles to an instruction designed
+ to help the processor execute spin loops, when applicable. Currently
+ implemented for x86 and x86-64.
+ * optimization: unsigned integer divisions by a constant are implemented
+ using multiplication (affects CEILING, FLOOR, TRUNCATE, MOD, and REM.)
+ * optimization: improved type-derivation for LOAD-TIME-VALUE.
+ * bug fix: correct RIP offset calculation in SSE comparison and shuffle
+ instructions. (lp#814688)
+ * bug fix: COERCE to unfinalized extended sequence classes now works.
+ (reported by Jan Moringen; lp#815155)
+ * bug fix: a compiler error during typecheck generation, reported by Eric
+ Marsden. (lp#816564)
+ * bug fix: obsolete instance protocol fires when shared slots are added
+ or removed.
+ * bug fix: fixed-format floating point printing with scaling factors.
+ (lp#811386)
+ * bug fix: using GCC >= 4.6 to build SBCL on x86 no longer breaks
+ backtraces. (lp#818460)
+ * bug fix: better backtraces for interrupted syscall frames on x86.
+ (lp#549673)
+ * bug fix: SSE comparison instructions can be disassembled even when one
+ operand is in memory. (lp#814702)
+ * bug fix: incomplete writes when not using SERVE-EVENTS. (lp#820599)
+ * bug fix: MULTIPLE-VALUE-BIND + VALUES -> LET conversion could lose derived
+ type information associated with the VALUES form.
+ * bug fix: broken warnings/errors for type-errors involving LOAD-TIME-VALUE
+ forms. (lp#823014)
+ * bug fix: OPEN :IF-EXISTS :APPEND now returns correct FILE-POSITION before
+ first write (lp#561642).
+ * bug fix: compiled closures from EVAL could not be DESCRIBEd. (lp#824974)
+ * bug fix: bound propagation involving conversion of large bignums to
+ floats no longer signals a SIMPLE-TYPE-ERROR, reported by Lutz Euler.
+ (lp#819269)
+ * bug fix: &REST to &MORE conversion still works in unsafe call to known
+ functions; reported by Lutz Euler (lp#826459).
+ * bug fix: bogus deadlocks from interrupts and GCs. (lp#807475, regression
+ since 1.0.48)
+
+changes in sbcl-1.0.50 relative to sbcl-1.0.49:
+ * enhancement: errors from FD handlers now provide a restart to remove
+ the offending handler.
+ * enhancement: SB-INTROSPECT:FIND-DEFINITION-SOURCE now works on structure
+ copiers as well.
+ * enhancement: location of user or system initialization file can now easily
+ be customized for saved cores. See: SB-EXT:*USERINIT-PATHNAME-FUNCTION*
+ and SB-EXT:*SYSINIT-PATHNAME-FUNCTION*.
+ * enhancement: SB-EXT:MAKE-THREAD accepts an argument list designator for
+ the thunk, as a keyword argument, :arguments.
+ * enhancement: constraint propagation is simplified (and sped up) when
+ COMPILATION-SPEED > SPEED.
+ * enhancement: SB-ALIEN exports alien type specifiers SIZE-T and OFF-T.
+ * enhancement: debugger understands &MORE arguments better.
+ * optimization: extracting bits of a single-float on x86-64 has been
+ optimized. (lp#555201)
+ * optimization: MAP and MAP-INTO are more efficient for non-simple vectors,
+ when (> SPEED SPACE).
+ * optimization: local call trampolines (x86 and x86-64) are emitted
+ inline.
+ * optimization: implicit value cells for dynamic-extent closed-over bindings
+ on x86 and x86-64 can hold unboxed values as well.
+ * meta-optimization: improved compilation speed, especially for large
+ functions. (lp#792363 and lp#394206)
+ * bug fix: bound derivation for floating point operations is now more
+ careful about rounding possibly closing open bounds. (lp#793771)
+ * bug fix: SB-POSIX:SYSCALL-ERROR's argument is now optional. (accidental
+ backwards incompatible change in 1.0.48.27)
+ * bug fix: occasional debugger errors in when a type-error occured in a
+ function with dynamic-extent &rest list.
+ * bug fix: &optional and &key supplied-p arguments in DEFSTRUCT
+ boa-construtors can be used to initialized structure slots.
+ * bug fix: FMAKUNBOUND removes the MACRO-FUNCTION, should one exist.
+ (lp#795705, regression)
+ * bug fix: DIRECTORY works better on logical pathnames.
+ * bug fix: RUN-PROGRAM no longer fails spuriously when argument strings
+ are of the order of ARRAY-TOTAL-SIZE-LIMIT. (lp#787237)
+ * bug fix: the compiler no longer constant-folds NaNs in
+ MAKE-{SINGLE,DOUBLE}-FLOAT. (lp#486812)
+ * bug fix: FORMAT now handles floating point rounding correct, eg.
+ (format nil "~,1F" 0.01) => "0.0" instead of "0.01" as previously.
+ (lp#308961)
+ * bug fix: style warning during lambda-list introspection of generic
+ functions with both optional and key argments.
+ * bug fix: regalloc doesn't barf on unused TNs due to type-directed constant
+ folding. (lp#729765)
+ * bug fix: Fixed an off-by-one in MAP-ALLOCATED-OBJECTS that might have caused
+ infinite loops.
+
+changes in sbcl-1.0.49 relative to sbcl-1.0.48:
+ * minor incompatible change: WITH-LOCKED-HASH-TABLE no longer disables
+ interrupts for its body.
+ * enhancement: source locations are now available for files loaded as
+ source, compile-time-too evaluation, and initialization files.
+ * enhancement: WITH-COMPILATION-UNIT :SOURCE-NAMESTRING allows providing
+ virtual source-file information, eg. overriding input-file of COMPILE-FILE
+ when a temporary file is used for compilation.
+ * enhancement: ASDF has been updated to version 2.015.3.
+ * enhancement: backtraces involving frames from the default evaluator are
+ more readable.
+ * enhancement: RUN-PROGRAM works with user-defined binary input and output
+ streams.
+ * enhancement: more informative compile-time warnings and runtime errors for
+ type-errors detected at compile-time.
+ * enhancement: deadlock detection for mutexes and spinlocks.
+ * enhancement: dynamic-extent for &rest lists stack allocate only their
+ spines, not their argumets. While portable code should not rely on this,
+ particularly in combination with inlining, it should make dynamic-extent
+ easier to use safely.
+ * enhancement: SB-POSIX improvements:
+ ** WNOHANG and WUNTRACED are exported.
+ ** SYSCALL-ERROR now also provides the name of the failing system call.
+ * enhancement: --script improvements:
+ ** errors on standard input, output, and error streams are handled and
+ cause scripts to exit silently, making them easier to use in shell
+ pipelines.
+ ** backtraces from scripts now go to standard error instead of the
+ terminal even if one is available.
+ ** --script can be an argument, causing the script to be loaded from
+ standard input.
+ * enhancement: MAKE-ALIEN-STRING provides an easy way to transport lisp
+ strings to foreign memory.
+ * enhancement: (SETF GC-LOGFILE) allows logging garbage collections to
+ a file, making it easier to understand heap dynamics.
+ * optimization: using a &REST argument only in APPLY or VALUES-LIST calls
+ allows the compiler to automatically elide rest-list allocation so long as
+ the call sites are in functions that the compiler knows cannot escape.
+ (lp#504575)
+ * optimization: CALL-NEXT-METHOD using explicit arguments is faster,
+ especially in safe code when none of the required arguments have changed
+ their identities.
+ * bug fix: blocking reads from FIFOs created by RUN-PROGRAM were
+ uninterruptible, as well as blocking reads from socket streams created
+ with for which :SERVE-EVENTS NIL. (regression from 1.0.42.43)
+ * bug fix: SET-SYNTAX-FROM-CHAR now removes dispatch-macro character syntax
+ from the to-char if the from-char is not a dispatch-macro character.
+ * bug fix: references to undefined variables in function calls that are
+ optimized away now signal a runtime error. (lp#722734)
+ * bug fix: miscompilation of MULTIPLE-VALUE-CALL when asserting derived
+ types from a function defined in the same file. (regression from
+ 1.0.43.57)
+ * bug fix: TRULY-THE forms are now macroexpandable and setf-expandable.
+ (lp#771673)
+ * bug fix: spurious errors during QUIT when standard streams were closed.
+
+changes in sbcl-1.0.48 relative to sbcl-1.0.47:
+ * incompatible change: SB!KERNEL:INSTANCE-LAMBDA, deprecated for over five
+ years, is now no longer supported.
* enhancement: read() and write() have been added to SB-POSIX.
* enhancement: types of DEFSTRUCT constructors are proclaimed more
accurately, allowing better typechecking of call-sites.
- * incompatible change: SB!KERNEL:INSTANCE-LAMBDA, deprecated for over five
- years, is now no longer supported.
+ * enhancement: errors during compile-time-too processing (i.e. EVAL-WHEN)
+ are no longer caught. (reverted to pre 1.0.34 behaviour)
* optimization: slightly faster ISQRT. (lp#713343)
+ * bug fix: better support for Solaris /bin/sh in sh-based tests.
* bug fix: TRACE behaves better when attempting to trace undefined
functions. (lp#740717)
- * bug fix: missed optimizations for (FUNCALL (LAMBDA ...) ...) in
- comparison to (FUNCALL #'(LAMBDA ...) ...).
+ * bug fix: missed optimizations for (FUNCALL (LAMBDA ...) ...) in comparison
+ to (FUNCALL #'(LAMBDA ...) ...).
+ * bug fix: ((LAMBDA ...) ...) forms with invalid argument counts resulted in
+ a compile-time error. (lp#720382)
+ * bug fix: forms such as (FUNCALL (FUNCTION NAME OOPS) ...) were compiled
+ without complaints.
+ * bug fix: less verbose source forms for functions from EVAL. (lp#747485)
+ * bug fix: sense of SLOT-BOUNDP-USING-CLASS was inverted in a MAKE-INSTANCE
+ optimization. (regression from 1.0.45.18/1.0.46.15)
+ * bug fix: package locks did not protects against compile-time side-effects
+ of DEFUN. (lp#675584)
+ * bug fix: --dynamic-space-size argument is validated more carefully.
+ (lp#721457)
+ * bug fix: memory fault from printing a malformed simple-condition.
+ (lp#705690)
+ * bug fix: redefining classes so that slot-definition classes change now
+ engages the obsolete instance protocol. (lp#766271)
+ * bug fix: constant improper lists could break source coverage recording.
+ (lp#767959)
+ * bug fix: compiling calls to eg. MEMBER with massive constant list arguments
+ could exhaust stack.
changes in sbcl-1.0.47 relative to sbcl-1.0.46:
* bug fix: fix mach port rights leaks in mach exception handling code on