SBCL 1.0.44 has been released, release notes follow:
changes in sbcl-1.0.44 relative to sbcl-1.0.43:
* enhancement: RUN-PROGRAM accepts :EXTERNAL-FORMAT argument to select the
external-format for its :INPUT, :OUTPUT, AND :ERROR :STREAMs.
* enhancement: ALLOCATION-INFORMATION also provides the page the object
* enhancement: default dynamic-space size can be configured at build-time
without touching source, using the --dynamic-space-size argument to
* enhancement: DESCRIBE recognizes symbols naming optimization policy
qualities, and mentions ALWAYS-BOUND declarations.
* enhancement: ATOMIC-INCF now supports AREF of (SIMPLE-ARRAY SB-EXT:WORD
as a place.
* enhancement: ASDF has been updated to 2.009.
* enhancement: the system detects known type-erros in calls better,
signalling a full warning about violated proclaimed FTYPEs and
of derived FTYPEs within the same file, including self-calls.
* enhancement: new function: SB-EXT:DELETE-DIRECTORY is now provided.
* optimization: constant-folding exploits numeric and character types, in
addition member types.
* optimization: numeric, character and member types that are inhabited by
exactly one value are tested with EQL.
* optimization: more conditional branches are eliminated during IR1.
Branches are simplified before performing if/if-conversion, and simple
equivalent branches (that only read the same constant or variable) are
* improvements to the Windows port:
** change: canonical unparsing form for pathname namestrings now uses /
directory separator. NATIVE-NAMESTRING still uses \ as the separator.
** bug fix: stackoverwriting due to incorrect usage of PeekConsoleInput
on Windows. (thanks to Kalyanov Dmitry)
** bug fix: build now works on cygwin with GCC 4.x installed. (thanks to
** bug fix: run-sbcl.sh now works on Cygwin. (thanks to Kalyanov Dmitry)
* bug fix: compiler failed to derive the result-type of MAKE-ARRAY as
(AND VECTOR (NOT SIMPLE-ARRAY)) when appropriate. (lp#309130)
* bug fix: (THE (VALUES ...)) in LOAD-TIME-VALUE caused a compiler-error.
* bug fix: interrupts arriving during CL:OPEN caused an error.
* bug fix: overeager character buffering could cause input to block
spuriously when reading from a pipe (lp#643686)
* bug fix: more efficient timer expiry should avoid starvation on systems
where number of SIGALRMs per second is restricted. (lp#375515)
* bug fix: non-unicode builds no longer fail (broken since 188.8.131.52).
* bug fix: compile-times no longer scale linearly with the size of
quoted lists in source-code. (lp#654289)
* bug fix: better errors for unknown external-formats in OPEN. (lp#561974)
* bug fix: DEBUG>SPEED no longer degrades ALIEN-FUNCALL performance quite
so badly. (lp#654485)
* bug fix: SB-INTROSPECT:FIND-DEFINITION-SOURCES-BY-NAME no longer signals
an error for eg. STRUCTURE. (lp#458015)
* bug fix: LOOP WITH NIL = ... signalled an unused variable style-warning.
(lp#613871, thanks to Roman Marynchak)
* bug fix: more reliable &REST list type derivation. (lp#655203)
* bug fix: PPRINT-LOGICAL-BLOCK multiply-evaluated :PER-LINE-PREFIX,
and issued pointles code-deletion notes for it, :PREFIX, and :SUFFIX.
* bug fix: the compiler didn't utilize the proclaimed ftype for functions
also declared NOTINLINE. (lp#655581)
* bug fix: the compiler could attempt to emit constant left shifts of
greater value than n-word-bits. (lp#309063)
* bug fix: (SETF SYMBOL-FUNCTION) and (SETF FDEFINITION) clear derived
type information for the function being set. (lp#659220)
* bug fix: the system used to signal bogus STYLE-WARNINGs when functions
containing self-calls were recompiled with a new signature, and failed
to warn when a self-call using the old signature was left in.
* bug fix: incorrect FILE-POSITION on streams opened using
:DEFAULT when the default external had character size other than 8 bits.
* bug fix: derived types of functions in the same file were implicitly
trusted, leading to potential heap corruption when those function were
defined incompatibly. (lp#657499)
* bug fix: existing ASDF source registries are ignored when building
* bug fix: short-form DEFSETF checks that the second argument is a symbol
(lp#655824, thanks to Roman Marynchak)
* bug fix: (SETF MACRO-FUNCTION) clobbered macro-definitions before
package-lock violation was detected. (lp#660752)
* bug fix: the system can store different docstrings for a single function
under different names. (lp#661631, regression from 184.108.40.206)
* bug fix: source-locations of DEFGENERIC forms weren't getting recorded
* bug fix: (COERCE X '(SIMPLE-VECTOR 5)) and similar coercions to vectors
of specified length could confuse the type derivation in unsafe code.
* bug fix: SB-POSIX:FORK now signals an error if an attempt to
fork with multiple Lisp threads running is made on every platform,
not just Darwin. (lp#451111)
* bug fix: SB-BSD-SOCKETS and SB-SIMPLE-STREAMS could leave stale
around when core was saved, which could cause undefined behaviour when
core was reified.
* bug fix: Allow UNTRACE of functions that are no longer defined
(lp#667657, thanks to Attila Lendvai)
* bug fix: MAKE-ARRAY calls with invalid keyword argument lists now signal
compile-time warning (lp#664373, thanks to Stas Boukarev)