+changes relative to sbcl-1.0.53:
+ * 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.
+
+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.
+ * 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: ((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
+ darwin/x86 and /x86-64. (thanks to Willem Oudshoorn for motivation and the
+ initial patch)
+ * enhancement: --script muffles style-warnings and compiler notes. (lp#677779)
+ * enhancement: redefinition warnings for macros from different files. (lp#434657)
+ * enhancement: better MACHINE-VERSION on Darwin x86 and x86-64. (lp#668332)
+ * enhancement: (FORMAT "foo" ...) and similar signal a compile-time warning. (lp#327223)
+ * enhancement: no more "in: LAMBDA NIL" messages from the compiler for forms
+ processed using EVAL -- now the appropriate toplevel form is reported instead.
+ * enhancement: more legible style-warnings for inappropriate IGNORE and IGNORABLE
+ declarations. (lp#726331)
+ * enhancement: :NOT-NULL option has been added to alien C-STRING type to indicate
+ that NIL/NULL is excluded from the type.
+ * enhancement: SB-INTROSPECT:MAP-ROOT allows mapping over pointers contained in
+ arbitrary objects.
+ * optimization: SLOT-VALUE &co are faster in the presence of SLOT-VALUE-USING-CLASS
+ and its compatriots.
+ * optimization: core startup time is reduced by 30% on x86-64. (lp#557357)
+ * bug fix: SB-DEBUG:BACKTRACE-AS-LIST guards against potentially leaking
+ stack-allocated values out of their dynamic-extent. (lp#310175)
+ * bug fix: attempts to use SB-SPROF for wallclock profiling on threaded
+ x86-64 builds caused a type-error.
+ * bug fix: calling COMPILE with something else than a lambda-expression as the
+ second argument reports a more sensible error. (lp#718905)
+ * bug fix: invalid combinations of :PREDICATE and :TYPE options in DEFSTRUCT
+ are detected. (lp#520607)
+ * bug fix: constant keyword argument checking didn't take :ALLOW-OTHER-KEYS
+ into account.
+ * bug fix: SLOT-BOUNDP information is correct during MAKE-INSTANCE in the
+ presence of (SETF SLOT-VALUE-USING-CLASS) and SLOT-BOUNDP-USING-CLASS
+ methods. (regression from 1.0.45.18)
+ * bug fix: INITIALIZE-INSTANCE :AROUND methods supplying initargs via
+ CALL-NEXT-METHOD work correctly. (regression from 1.0.45.19)
+ * bug fix: several foreign functions accepting string also accepted NIL and
+ consequently caused a memory fault at 0 now signal a type-error instead.
+ (lp#721087)
+ * bug fix: under rare circumstances, constraint propagation could rewrite a
+ variable reference to refer to a variable not in scope, causing an error
+ during physical environment analysis when attempting to close over the
+ variable. (lp#551227)
+ * bug fix: SIMPLE-CONDITION :FORMAT-CONTROL defaults to NIL.
+
+changes in sbcl-1.0.46 relative to sbcl-1.0.45:
+ * enhancement: largefile support on Solaris.
+ * enhancement: SB-PROFILE:REPORT now supports :LIMIT and :PRINT-NO-CALL-LIST
+ arguments (lp#710017)
+ * enhancement: SB-PCL:+SLOT-UNBOUND+ is exported, making it possible to
+ distinguish unbound instance slots when using STANDARD-INSTANCE-ACCESS
+ &co. (lp#718039)
+ * optimization: ERROR and CERROR are approximately 5 times faster.
+ * optimization: optimized constructors are used for MAKE-INSTANCE of classes
+ with applicable non-standard (SETF SLOT-VALUE-USING-CLASS),
+ SLOT-BOUNDP-USING-CLASS, and INITIALIZE-INSTANCE :AROUND methods, speeding
+ up instance creation in those cases.
+ * optimization: arithmetic operations with multiple constant arguments in now
+ have them reduced at compile-time. (lp#676414)
+ * optimization: determining current character position on string-streams for
+ pretty-printing was overly slow.
+ * bug fix: local tail calls to DYNAMIC-EXTENT functions can no longer cause
+ lifetime analysis to overwrite closed-over variables (lp#681092).
+ * bug fix: encoding errors from some multibyte external formats such as EUC-JP
+ were not handled correctly (lp#713063).
+ * bug fix: printing waitqueue objects without setting *PRINT-CIRCLE* to T is now
+ safe (lp#673630).
+ * bug fix: Solaris/x86-64 wasn't getting built with lutex support by
+ mistake. (lp#667297).
+ * bug fix: CONSTANTLY generated functions had bogus lambda-lists. (lp#713626)
+ * bug fix: RUN-PROGRAM :PTY option was racy on OpenBSD. (lp#669485)
+ * bug fix: UNINTERN takes a symbol, not a symbol designator -- could previously
+ unintern the wrong symbol with the same name. (lp#693796)
+ * bug fix: COPY-PPRINT-DISPATCH always has access to a pristine table,
+ making it possible to restore the initial table if it has been messed up.
+ (lp#678409)
+
+changes in sbcl-1.0.45 relative to sbcl-1.0.44:
+ * enhancement: ~/ and ~user/ are treated specially in pathnames.
+ Refer to documentation for details.
+ * enhancement: ASDF has been updated to version 2.010.
+ * optimization: mutated closed-over variables that are only accessed by
+ DYNAMIC-EXTENT closures (currently only FLET and LABELS functions
+ declared to be DYNAMIC-EXTENT) are stored directly in their containing
+ stack frame, rather than allocating a VALUE-CELL (lp#586103).
+ * optimization: UNWIND-PROTECT cleanup functions are now declared
+ DYNAMIC-EXTENT.
+ * bug fix: backtracing function with &REST arguments now shows the full
+ argument list. (lp#310173)
+ * bug fix: return types for functions with complex lambda-lists are now
+ derived properly (lp#384892)
+ * bug fix: when SPEED > SPACE compiling CONCATENATE 'STRING with constant
+ long string arguments slowed the compiler down to a crawl.
+ * bug fix: closure VALUE-CELLs are no longer stack-allocated (lp#308934).
+ * bug fix: non-standard MAKE-METHOD-LAMBDA methods could break RETURN-FROM
+ in the DEFMETHOD body.
+ * bug fix: #<SB-C::DEFINED-FUN ...> should no longer appear in compiler
+ messages, being instead replaced with the corresponding function name.
+ * bug fix: don't derive overly complex unions of numeric types for arithmetic
+ operators. (lp#309448)
+
+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
+ resides on.
+ * enhancement: default dynamic-space size can be configured at build-time
+ without touching source, using the --dynamic-space-size argument to make.sh.
+ * 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 violations
+ 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
+ merged.
+ * improvements to the Windows port:
+ ** change: canonical unparsing form for pathname namestrings now uses / as
+ 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
+ Kalyanov Dmitry)
+ ** 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.
+ (lp#646796)
+ * 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 1.0.36.15).
+ * 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. (lp#655126)
+ * bug fix: incorrect FILE-POSITION on streams opened using :EXTERNAL-FORMAT
+ :DEFAULT when the default external had character size other than 8 bits.
+ (lp#657183)
+ * 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
+ contribs (lp#659105)
+ * 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 1.0.29.24)
+ * bug fix: source-locations of DEFGENERIC forms weren't getting recorded
+ properly. (lp#384801)
+ * bug fix: (COERCE X '(SIMPLE-VECTOR 5)) and similar coercions to vectors
+ of specified length could confuse the type derivation in unsafe code.
+ (lp#655872)
+ * 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 finalizers
+ around when core was saved, which could cause undefined behaviour when the
+ 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 a
+ compile-time warning (lp#664373, thanks to Stas Boukarev)
+
+changes in sbcl-1.0.43 relative to sbcl-1.0.42:
+ * incompatible change: FD-STREAMS no longer participate in the serve-event
+ event-loop by default. (lp#316072)
+ ** In addition to streams created by explicit calls to MAKE-FD-STREAM this
+ affects streams from CL:OPEN.
+ ** Streams from SOCKET-MAKE-STREAM still participate in serve-event by
+ default, but this is liable to change: applications needing serve-event
+ for socket streams should explicitly request it using :SERVE-EVENTS T
+ in the call.
+ * enhancement: SB-EXT:WORD type is provided for use with SB-EXT:ATOMIC-INCF
+ &co.
+ * enhancement: CLOS effective method functions and defclass slot typechecking
+ function now have debug names for use in backtraces and profiles.
+ * enhancement: ASDF has been updated to version 2.004. (lp#605260, thanks to
+ Faré Rideau)
+ * enhancement: symbols are printed using fully qualified names in several
+ error and warning messages which are often associated with package
+ conflicts or mixups (lp#622789, thanks to Attila Lendvai)
+ * bug fix: SB-BSD-SOCKETS:SOCKET-CONNECT was not thread safe. (lp#505497,
+ thanks to Andrew Golding)
+ * bug fix: reading /proc files on Linux works. (lp#425199)
+ * bug fix: DOTIMES accepted literal non-integer reals. (lp#619393, thanks to
+ Roman Marynchak)
+ * bug fix: WRITE-TO-STRING compiler macro binding special variable names,
+ breaking code that tried to write the value of a printer control variable.
+ (lp#581564, thanks to Stas Boukarev)
+ * bug fix: WRITE compiler macro did not handle output stream designators
+ correctly. (lp#598374, thanks to Stas Boukarev)
+ * bug fix: better availability of names of foreign functions in backtraces
+ on Linux. (lp#626962, thanks to Stas Boukarev)
+ * bug fix: scripting and build for Solaris and FreeBSD. (lp#615497,
+ lp#627581, thanks to Josh Elsasser and Jim Wise)
+ * bug fix: build fixes for OpenBSD -current and 4.8 (lp#615489, lp#615492,
+ thanks to Josh Elsasser)
+ * bug fix: using aliases for builtin classes as defmethod specializers
+ without adding DEFTYPEs for them works. (lp#618387)
+ * bug fix: timetravel by getrusage() no longer causes type-errors during GC.
+ (lp#544421)
+ * bug fix: legally dynamic-extent lists and vectors used as
+ initialization arguments to MAKE-ARRAY can be stack allocated. (lp#586105)
+ * bug fix: inline-expansion creating references to dead lambda-variables
+ (lp#454681, thanks to Alexey Dejneka)
+ * bug fix: better error message for bogus numerical arguments to RANDOM.
+ (lp#598986, thanks to Stas Boukarev)
+ * bug fix: the compiler occasionally inlined references from incompatible
+ environments occurs. (lp#308951)
+ * bug fix: the compiler threw an error when trying to compile a local
+ function (labels or flet) known to take a specialized complex argument.
+ (not in launchpad, reported by sykopomp in #lispgames)
+ * bug fix: package-locks failed to protect against compile-time effects of
+ DEFUN when the symbol previously had a macro definition. (lp#576637)
+ * bug fix: spurious ignore warnings even given (DECLARE IGNORE) in methods
+ when parameter bindings mutated. (reported by Faré Rideau; lp #611361)
+ * bug fix: workaround for compiler hang in ORDER-UVL-SETS (lp#308914)
+ * bug fix: evaluation in debugger REPL works using the global context when
+ in frames that do not have sufficient debug information.
+ * bug fix: exceeding FD_SETSIZE limit now results in an sensible error
+ (lp#316068)
+ * bug fix: (SETF DOCUMENTATION) of a macro works properly. (lp#643958, thanks
+ to Stas Boukarev)
+ * bug fix: interrupt taking longer than the requested period caused SLEEP
+ to hang on Darwin. (lp#640516, thanks to Joe Lebroco for the analysis)
+
+changes in sbcl-1.0.42 relative to sbcl-1.0.41
+ * build changes
+ ** Cross-compilation host is now specified to make.sh using
+ command-line argument --xc-host=<command> instead of a positional
+ argument. (thanks to Daniel Herring)
+ ** Install location can be specified to make.sh using command-line
+ argument --prefix=<path>. (lp#550889s, thanks to Daniel Herring)
+ * optimization: The default implementation of
+ COMPUTE-DISCRIMINATING-FUNCTION does much less wasted work.
+ * enhancement: Explicit memory barrier operations are now available for use
+ by multithreaded code. See documentation for details.
+ * enhancement: Experimental support for threading on Linux/PPC.
+ * bug fix: RENAME-PACKAGE returns the package. (Thanks to Eric Marsden)
+ * bug fix: EXPT signals an error if first argument is a zero and second
+ argument is a floating point zero. (lp#571581, thanks to Roman Marynchak)
+ * bug fix: DEFTYPE signals an error for non-list lambda-lists.
+ (lp#576594, thanks to Roman Marynchak)
+ * bug fix: make ASDF-INSTALL compatible with the now-included ASDF2.
+ (lp#612998, reported by Phil Hargett; patch from Jim Wise)
+
+changes in sbcl-1.0.41 relative to sbcl-1.0.40:
+ * optimization: validity of observed keyword initargs to MAKE-INSTANCE is
+ cached, leading to many fewer expensive calls to
+ COMPUTE-APPLICABLE-METHODS.
+ * optimization: in the (unoptimized) general method for MAKE-INSTANCE on a
+ CLASS argument, search for and call an appropriate optimized ctor function
+ if it exists.
+ * bug fix: WRITE always returns the correct value.
+
+changes in sbcl-1.0.40 relative to sbcl-1.0.39:
+ * bug fix: readdir now works on :inode64 darwin builds (lp#592897)
+ * bug fix: Name conflicts between symbols passed as arguments to a single
+ call to IMPORT no longer add multiple symbols with the same name to the
+ package (detectable via DO-SYMBOLS).
+ * bug fix: support building without the dlshim on darwin x86 and x86-64
+ (lp#533470).
+ * bug fix: TRACE :ENCAPSULATE NIL now works on ppc/linux.
+
+changes in sbcl-1.0.39 relative to sbcl-1.0.38:
+ * bug fix: Backtrace from undefined function on x86 and x86-64 now show
+ the calling frame.
+ * bug fix: linkage-table entries on PPC now no longer overflow their
+ space allocation (potentially causing crashes if they are written out
+ of order).
+ * bug fix: Scrub control stack after scavenging in gencgc on non-x86oid
+ platforms, preventing the GC from seeing stale pointers on the control
+ stack in subsequent GCs (which would, and does, break invariants).
+ * bug fix: 32-bit unicode external formats now work on big-endian systems.
+ * bug fix: Literal characters with code points greater than about 32767
+ now work on PPC UNICODE builds.
+ * bug fix: Any noise left by SSE operations (sqrt and conversions) in the
+ high order bits are explicitly cleared out. In some contrived situations,
+ this could lead to wrong results in mixed real/complex float arithmetic.
+ * bug fix: Fix function/macro redefinition warnings when building with
+ clisp. (lp#576787, thanks to Josh Elsasser)
+ * new platform: experimental support for ppc/openbsd (thanks to Josh
+ Elsasser).
+ * bug fix: Floating-point traps now work on ppc/linux.
+
+changes in sbcl-1.0.38 relative to sbcl-1.0.37:
+ * incompatible change: Thread names are now restricted to SIMPLE-STRINGs
+ like for any other thread-related datastructure, MUTEX, etc. (lp#547095)
+ * deprecation: the SB-QUEUE contrib was merged into the SB-CONCURRENCY
+ contrib module. New code should depend on SB-CONCURRENCY, not SB-QUEUE.
+ * deprecation: SB-THEAD:GET-MUTEX was deprecated in favor of
+ SB-THREAD:GRAB-MUTEX.
+ * new contributed module: SB-CONCURRENCY is a new contrib; it's supposed to
+ contain additional data structures and tools for concurrent programming;
+ at the moment it contains a lock-free queue, and a lock-free mailbox
+ implementation.
+ * new feature: added SB-THREAD:GRAB-MUTEX; it's like the now deprecated
+ GET-MUTEX but takes &key rather than &optional parameters. Also added
+ :TIMEOUT argument to GRAB-MUTEX on non-sb-lutex platforms like Linux and
+ BSD.
+ * new feature: added SB-THREAD:TRY-SEMAPHORE, a non-blocking variant of
+ SB-THREAD:WAIT-ON-SEMAPHORE.
+ * new feature: SB-EXT:ATOMIC-DECF has been added as a companion to
+ SB-EXT:ATOMIC-INCF.
+ * new feature: a CANCEL-DEADLINE is associated with DEADLINE-TIMEOUT
+ conditions to defer the deadline for forever.
+ * enhancement: *STANDARD-OUTPUT*, *STANDARD-INPUT*, and *ERROR-OUTPUT* are
+ now bivalent.
+ * enhancement: errors from NO-APPLICABLE-METHOD and
+ NO-PRIMARY-METHOD now have a RETRY restart available to retry the
+ generic function call.
+ * enhancement: SB-BSD-SOCKET improvements
+ ** sockets and socket streams now have a more informative printed
+ representation based on the corresponding SOCKET-NAME and
+ SOCKET-PEERNAME.
+ ** SOCKET-MAKE-STREAM once more supports the :AUTO-CLOSE option.
+ (lp#540413)
+ ** SOCKET-CLOSE now accepts :ABORT argument, which is passed on to
+ CL:CLOSE when appropriate, and no longer disassociates the stream
+ from the socket if close failed. (lp#543951)
+ * improvements to the instrumenting profiler
+ ** new feature: report per-function GC overhead. (thanks to John Fremlin)
+ ** optimization: counters no longer use locks for the overflow mode.
+ ** bug fix: whenever a profiling counter wrapped into overflow mode, it
+ incurred an off-by-one miscount.
+ * enhancement: improved MAKE-HASH-TABLE documentation (lp#543473)
+ * enhancement: improved DEFMETHOD pretty-printing.
+ * enhancement: perform range reduction when arguments are too large for
+ x87's transcendentals (instead of returning 0). (lp#327192)
+ * enhancement: eliminate some spurious TYPE-WARNINGs. Should help with
+ some of CL-PPCRE's macros. (lp#570079)
+ * enhancement: our machine code is slightly less hostile to valgrind on
+ x86-64.
+ * enhancement: up-to-date versions of NetBSD-current are supported. (Thanks
+ to Robert Swindells and Aleksej Saushev)
+ * bug fix: correct restart text for the continuable error in MAKE-PACKAGE.
+ * bug fix: a rare case of startup-time page table corruption.
+ * bug fix: a semaphore with multiple waiters and some of them unwinding due
+ to timeouts could be left in an inconsistent state.
+ * bug fix: fix typo in "Reporting Bugs" section of the manual (lp#520366)
+ * bug fix: misoptimization of multiplication by one in
+ (SB-C::FLOAT-ACCURACY 0) policies.
+ * bug fix: miscounts in SB-PROFILE.
+ * bug fix: Fix lost wakeup bug between SB-THREAD:CONDITION-WAIT and
+ CONDITION-NOTIFY on Linux. See threads "lost wakeup in condition-wait /
+ condition-notify" (Feb 2010) and "Condition-Wait, Deadline handler, waking
+ up itself" (March 2010) for further details.
+ * bug fix: allow forward FIND and POSITION on lists to elide checking :END
+ against length of the list if the element is found before the specified
+ END is reached. (thanks to Alec Berryman, lp#554385)
+ * bug fix: errors signalled during package graph modification no longer
+ block FIND-SYMBOL and FIND-PACKAGE in other threads. (lp#511072)
+ * bug fix: SB-POSIX build was broken when SBCL was compiled without the
+ :SB-DOC feature. (lp#552564)
+ * bug fix: SB-INTROSPECT build issues on GENGC/PPC. (lp#490490)
+ * bug fix: more robust runtime executable path detection. (lp#375549)
+ * bug fix: GCD always returns positive values. (lp#413680)
+ * bug fix: Converting division to multiplication by reciprocal handles
+ denormals.
+ * bug fix: We were too eager in eliding range reduction tests on x87.
+ The maximal magnitude is 2^63, not 2^64.
+ * bug fix: Transforms for TRUNCATE don't die when the result is completely
+ ignored anymore.
+ * bug fix: Maybe restore buildability on Alpha.
+ * bug fix: READ-BYTE isn't inline anymore, fixing weird streams failures.
+ (lp#569404)
+ * bug fix: RANDOM-STATE can be printed readably again.
+ * bug fix: Unreadable objects were sometimes printed like #<\nFoo>.
+ * bug fix: Using EQL with non-constant values of constant type (e.g. EQL
+ types) could result in type mismatches during compilation.
+
+changes in sbcl-1.0.37 relative to sbcl-1.0.36:
+ * enhancement: Backtrace from THROW to uncaught tag on x86oids now shows
+ stack frame thrown from.
+ * enhancement: WITH-COMPILATION-UNIT :POLICY allows restricting changes to
+ compiler optimization qualities inside dynamic extent of its body.
+ * enhancement: LOAD-LOGICAL-PATHNAME-TRANSLATIONS can be used to load
+ translations from SYS:SITE;<HOST>.TRANSLATIONS.NEWEST (thanks to Michael
+ Weber)
+ * optimization: SLOT-VALUE and (SETF SLOT-VALUE) take advantage of
+ constraint propgation, allowing better compilation eg. when used to
+ access structures with WITH-SLOTS. (lp#520366)
+ * optimization: the compiler is now more aware of the type of the underlying
+ storage vector for multidimensional simple arrays resulting in better code
+ for accessing such arrays.
+ * optimization: passing NIL as the environment argument to TYPEP no longer
+ inhibits optimizing it. (lp#309788)
+ * optimization: more efficient register usage when handling single-float
+ arguments on x86-64. (thanks to Lutz Euler)
+ * optimization: ADJUST-ARRAY and STABLE-SORT on vectors no longer use
+ pre-allocated temporary vectors. (lp#496249)
+ * bug fix: Fix compiler error involving MAKE-ARRAY and IF forms
+ in :INITIAL-CONTENTS. (lp#523612)
+ * bug fix: FUNCTION-LAMBDA-EXPRESSION lost declarations from interpreted
+ functions. (lp#524707)
+ * bug fix: bogus style warnings from certain (SETF SLOT-VALUE) and
+ WITH-SLOTS usages during compilation.
+ * bug fix: SB-C::CLASS-INFO now prints correctly. (lp#514762)
+ * enhancement: Can now build with ud2 instead of int3 as trap instruction on
+ all x86oid platforms with :UD2-BREAKPOINTS target feature.
+ * bug fix: Breakpoints now work when using ud2 instead of int3 as trap
+ instruction (tested on x86oid linux with ud2-breakpoints).
+ * bug fix: slam.sh now works on win32.
+ * bug fix: better differences of numeric types. (lp#309124)
+ * bug fix: arrays declared intersection and union types can have their
+ upgraded element type derived. (lp#316078)
+ * bug fix: SB-SPROF allocation profiling for all threads failed to profile
+ threads started during profiling. (lp#472499)
+ * bug fix: SB-INTROSPECT test failure when building without SB-EVAL feature.
+ (lp#535658)
+ * bug fix: SB-CLTL2:DECLARATION-INFORMATION did not take
+ SB-EXT:RESTRICT-COMPILER-POLICY into account. (lp#313337)
+ * bug fix: Comma inside a backquoted array or structure resulted in nonsense
+ values instead of signaling an error. (lp#309093)
+ * bug fix: Spurious unused variable warning in a DEFSTRUCT edge case.
+ (lp#528807)
+ * bug fix: More consistent warnings and notes for ignored DYNAMIC-EXTENT
+ declarations (lp#497321)
+ * bug fix: FIND and POSITION on lists did not check sequence bounds properly
+ and failed to detect circular lists (lp#452008)
+ * bug fix: leakage from ~/.asdf-install into the ASDf-INSTALL contrib build
+ (lp#538974)
+ * bug fix: LOOP OF-TYPE VECTOR compile-time error. (lp#540186)
+ * bug fix: SIGNAL SB-SYS:INTERACTIVE-INTERRUPT before entering the debugger
+ due to it, so that handlers can run.
+ * bug fix: reparsing undefined types if they have become defined since
+ parsing. (lp#309128)
+ * bug fix: missing &REST type in a proclamation for a function with both
+ &REST and &KEY in lambda-list caused miscompilation (lp#458354)
+ * bug fix: WHO-CALLS information for source-transformed and compiler-macro
+ expanded calls (lp#542174)
+ * bug fix: more accurate WHO-MACROEXPANDS information; point into rather
+ than just at toplevel form.
+
+changes in sbcl-1.0.36 relative to sbcl-1.0.35:
+ * new feature: SB-EXT:TYPEXPAND-1, SB-EXT:TYPEXPAND, and
+ SB-EXT:TYPEXPAND-ALL behave exactly like their MACROEXPAND counterparts
+ but work on type specifiers.
+ * new feature: SB-EXT:DEFINED-TYPE-NAME-P returns whether a symbol is known
+ to name a type specifier.
+ * new feature: SB-EXT:VALID-TYPE-SPECIFIER-P returns whether a given type
+ specifier is valid where "valid" basically means "would be accepted as
+ second argument of TYPEP".
+ * new feature: SB-INTROSPECT:FUNCTION-TYPE takes a function-designator and
+ returns the function's declared, or derived FTYPE.
+ * new feature: SB-POSIX now supports accessing the d_ino member of
+ dirent structures. (Thanks to Philipp Marek and Pierre THEIRRY)
+ * new feature: The function SB-EXT:SEED-RANDOM-STATE has been added to
+ provide for seeding a RANDOM-STATE object with user-provided data or
+ from the operating system's PRNG. Also, (MAKE-RANDOM-STATE T) will
+ attempt to initialize the returned state from the operating system's
+ PRNG where possible. (Thanks to Fare Rideau; launchpad bug lp#310116)
+ * bug fix: Fix SB-SIMPLE-STREAMS:READ-VECTOR to correctly set the
+ FILE-POSITION of the stream being read from. (launchpad bug lp#491087)
+ * bug fix: Fix grammar and style issues for the docstrings of
+ printer-related variables and functions. (Thanks to mon_key; launchpad
+ bug lp#518696)
+ * bug fix: Fix compilation on chenygc platforms. Thanks to Larry Valkama and
+ Bruce O'Neel.
+ * bug fix: SB-THREAD:CONDITION-WAIT sometimes signaled a deadline twice
+ in a row even though a handler defered the deadline long into the
+ future. (lp#512914)
+ * bug fix: A deadline handler was run without interrupts enabled for a
+ deadline signaled within SB-THREAD:CONDITION-WAIT. That could result
+ in infinitely spinning, non-killable threads.
+ * bug fix: Backtrace from internal-errors on x86-64 os x was truncated
+ before reaching the erring stack frame.
+ * bug fix: Fix type derivation for EXPT when raising a fixnum to a
+ real power. (launchpad bug lp#525949)
+ * bug fix: Fix SB-EXT:GENERATION-* accessors for generations > 0 on
+ GENCGC platforms. (launchpad bug lp#529014)
+ * bug fix: More robust checks for invalid DEFMETHOD argument specializers.
+ (launchpad bug lp#525916)
+ * bug fix: Fix building on Darwin when sysctl is not in the user's PATH.
+ (Thanks to Robert Goldman)
+
+changes in sbcl-1.0.35 relative to sbcl-1.0.34:
+ * optimization: ROUND with a single single-float or double-float argument
+ is properly inlined when possible.
+ * optimization: Slightly better code is generated for integer<->float
+ conversions and for single-float<->double-float conversions on x86-64.
+ * optimization: SB-ROTATE-BYTE:ROTATE-BYTE now generates more efficient
+ code for 32-bit and 64-bit rotations on x86-64.
+ * bug fix: The install script changes the ownership of directories as well
+ as files for contrib modules using asdf. (thanks to Eugene Ossintsev;
+ launchpad bug lp#508485)
+ * bug fix: TRUNCATE with a single single-float or double-float argument is
+ properly inlined when possible. (launchpad bug lp#489388)
+ * bug fix: Passing a rotation count of zero to SB-ROTATE-BYTE:ROTATE-BYTE
+ no longer causes a compiler error on x86 and ppc.
+ * bug fix: GET-MACRO-CHARACTER bogusly computed its second return value
+ always relative to *READTABLE* rather than the passed argument.
+
+changes in sbcl-1.0.34 relative to sbcl-1.0.33:
+ * minor incompatible change: threading support is now enabled by default
+ on x86[-64] Linux.
+ * enhancement: SB-INTROSPECT:DEFTYPE-LAMBDA-LIST now also works on most
+ builtin types.
+ * enhancement: Errors during compile-time-too processing (i.e. EVAL-WHEN)
+ are now caught and reported just like errors during macroexpansion.
+ * enhancement: SB-POSIX now provides access to tcdrain(), tcflow(),
+ tcflush(), tcgetsid(), and tcsendbreak(). (thanks to Jerry James)
+ * enhancement: ASDF systems can now depends on SB-QUEUE.
+ * fixes and improvements related to Unicode and external formats:
+ ** bug fix: error handling and restart usage in the ucs-2 external format
+ has been improved.
+ ** there is now an implementation of the ucs-4 external format.
+ ** the utf-16 and utf-32 external formats are supported.
+ * bug fix: SB-POSIX wrapper for putenv no longer tries to put lisp strings
+ in the environment. setenv() and unsetenv() are also provided. (reported by
+ Fare Rideau; launchpad bug lp#460455)
+ * bug fix: LOAD of both .fasl and .FASL type files now forces fasl-style
+ loading. This ensures sensible errors for .FASL files from other
+ implementations on case-insensitive filesystems. (reported by Willem
+ Broekema; launchpad bug lp#489417)
+ * bug fix: #p"\\\\" can now be read without error on Win32. (reported by
+ Willem Broekema; launchpad bug lp#489698).
+ * bug fix: some minor code rearrangements to reenable warning-free building
+ from CMUCL (reported by xme@gmx.net; launchpad bug lp#491104)
+ * bug fix: PRINT-OBJECT for clos instances respects the right margin when
+ pretty printing
+ * bug fix: FIND-PACKAGE & DEFPACKAGE were not thread safe. (reported by
+ Attila Lendvai)
+
+changes in sbcl-1.0.33 relative to sbcl-1.0.32:
+ * new port: support added for x86-64 NetBSD. (thanks to Aymeric Vincent)
+ * improvement: support O_LARGEFILE access to files larger than 2GB on
+ x86-64/linux. (thanks to Daniel Janus; launchpad bug lp#453080)
+ * new feature: SB-INTROSPECT:WHO-SPECIALIZES-DIRECTLY to get a list of
+ definitions for methods specializing on the passed class itself.
+ * new feature: SB-INTROSPECT:WHO-SPECIALIZES-GENERALLY to get a list of
+ definitions for methods specializing on the passed class itself, or on
+ subclasses of it.
+ * new build flag: :sb-xref-for-internals; SBCL will collect xref information
+ about itself during the build (e.g. for M-? in Slime), if this flag is
+ enabled in customize-target-features.lisp. This will increase the core
+ size by about 5-6mb, though, so it's mostly interesting to SBCL
+ developers.
+ * new feature: various GENCGC tuning parameters have been experimentally
+ documented and exported from SB-EXT. See documentation for details.
+ * fixes and improvements related to Unicode and external formats:
+ ** the Unicode character database has been upgraded to the
+ Unicode 5.2 standard, giving names and properties to a number of new
+ characters, and providing a few extra characters with case
+ transformations.
+ ** improvement: restarts for providing replacement input/output on coding
+ errors for fd-stream external formats.
+ ** improvement: where :<encoding> is a keyword corresponding to an
+ external format the system supports, it is now possible to specify
+ (:<encoding> :replacement <character>) as an external format which will
+ automatically substitute <character> on encoding or decoding errors for
+ streams and for STRING-TO-OCTETS and its inverse. (launchpad bug
+ lp#317072)
+ ** improvement: the file streams underlying the standard streams (such as
+ *STANDARD-INPUT*, *TERMINAL-IO*) are opened with an external format
+ which uses the replacement mechanism to handle encoding errors,
+ preventing various infinite error chains and unrecoverable I/O
+ confusion.
+ ** minor incompatible change: the utf-8 external format now correctly
+ refuses to encode Lisp characters in the surrogate range (char-codes
+ between #xd800 and #xdfff).
+ ** fix a typo preventing conversion of strings into octet vectors
+ in the latin-2 encoding. (reported by Attila Lendvai; launchpad bug
+ lp#471689)
+ ** fix a bug in the octet multibyte handling of decoding errors and the
+ USE-VALUE restart. (launchpad bug lp#314939)
+ ** fix the bug underlying the expected failure in the FORCE-END-OF-FILE
+ restart on fd-stream decoding errors.
+ ** fix a bug in the ATTEMPT-RESYNC fd-stream decoding restart when the
+ error is near the end of file.
+ ** fix a double-error case in unibyte octet conversions, when the first
+ use of USE-VALUE is ignored.
+ ** fix bugs in handling of undefined code points in unibyte encodings.
+ ** fix LISTEN (and consequent hangs in READ-CHAR-NO-HANG) on bivalent
+ streams after an UNREAD-CHAR.
+ * enhancement: SB-INTROSPECT:ALLOCATION-INFORMATION also reports if the
+ object is allocated in a boxed region of dynamic space.
+ * enhancement: SB-POSIX:FORK now signals an error if an attempt to
+ fork with multiple Lisp threads running is made, instead of going
+ ahead with unpredictable consequences. (reported by Leslie Polzer)
+ * bug fix: uses of slot accessors on specialized method parameters within
+ the bodies of SLOT-VALUE-USING-CLASS methods no longer triggers a type
+ error while finalizing the class. This fix may cause classes with slot
+ accessors to be finalized later than previously. (reported by Lars Rune
+ Nøstdal; launchpad bug lp#473699)
+ * bug fix: restore buildability on the MIPS platform. (regression from
+ 1.0.30.38, reported by Samium Gromoff)
+ * bug fix: inspecting closures is less likely to fail with a type error.
+ * bug fix: no timer starvation when setting the system clock back.
+ (launchpad bug lp#460283)
+ * bug fix: WITH-STANDARD-IO-SYNTAX now binds *PRINT-PPRINT-DISPATCH* to the
+ standard pprint dispatch table as specified by CLHS.
+ * bug fix: give CLISP a hint about a type declaration to enable it to build
+ the cross-compiler without warnings. (thanks to Josh Elasser; launchpad
+ bug lp#396597)
+ * bug fix: correctly dump literal objects in defaulting forms of arglists.
+ (reported by Attila Lendvai; launchpad bug lp#310132)
+ * bug fix: distinguish in type specifiers between arrays that might be
+ complex and arrays that are definitely complex. (launchpad bug lp#309129)
+ * bug fix: SUBTYPEP knows that the SYMBOL type is not SUBTYPEP the KEYWORD
+ type. (reported by Levente Mészáros; launchpad bug lp#485972)
+ * bug fix: setting the value of a symbol-macro within a method in the
+ presence of type declarations works properly again. (reported by Iban
+ Hatchondo; launchpad bug lp#485019)
+
+changes in sbcl-1.0.32 relative to sbcl-1.0.31:
+ * optimization: faster FIND and POSITION on strings of unknown element type
+ in high SPEED policies. (thanks to Karol Swietlicki)
+ * optimization: faster CONCATENATE 'STRING in low SPEED policies (reported
+ by David Vázquez)
+ * improvement: better error signalling for bogus parameter specializer names
+ in DEFMETHOD forms (reported by Pluijzer)
+ * bug fix: DELETE-FILE once again works on logical pathnames (regression
+ since 1.0.30.49)
+ * bug fix: LOGICAL-PATHNAME signals a TYPE-ERROR if pathspec is specified
+ incorrectly.
+ * bug fix: redefinition of a class via DEFCLASS without :DEFAULT-INITARGS
+ removes previous default initargs (reported by Lars Rune Nøstdal and
+ Samium Gromoff)
+ * bug fix: correct WHO-CALLS information for inlined lambdas with complex
+ lambda-lists. (reported by Peter Seibel)
+ * bug fix: SAVE-LISP-AND-DIE option :SAVE-RUNTIME-OPTIONS did not work
+ correctly when starting from an executable core without saved runtime
+ options (reported by Faré Rideau, thanks to Zach Beane)
+ * bug fix: (SETF SLOT-VALUE) signalled a warning which should have been
+ an optimization note instead. (reported by Martin Cracauer)
+ * bug fix: WITH-SLOTS did not work with THE forms. (thanks to David Tolpin)
+ * bug fix: Have RUN-PROGRAM with :INPUT T only run the subprocess in a
+ new process group if it doesn't need to share stdin with the sbcl
+ process. (thanks to Leslie Polzer)
+ * bug fix: SATISFIES could be misoptimized to refer to a local function.
+ (reported by Stanislaw Halik)
+
+changes in sbcl-1.0.31 relative to sbcl-1.0.30:
+ * improvement: stack allocation is should now be possible in all nested
+ inlining cases: failure to stack allocate when equivalent code is manually
+ open coded is now considered a bug.
+ * improvements related to Unicode:
+ ** the Unicode character database has been upgraded to the
+ Unicode 5.1 standard, giving names and properties to a number of new
+ characters, and providing a few extra characters with case
+ transformations.
+ ** the system now recognizes and produces names for Unicode Hangul
+ syllable characters.
+ ** the EBCDIC-US external-format is now supported for octet operations
+ (as well as for stream operations).
+ * new feature: experimental :EMIT-CFASL parameter to COMPILE-FILE can
+ be used to output toplevel compile-time effects into a separate .CFASL
+ file.
+ * optimization: COERCE to VECTOR, STRING, SIMPLE-STRING and recognizable
+ one-dimenstional subtypes of ARRAY is upto 70% faster when the coercion is
+ actually needed.
+ * optimization: TRUNCATE on known single- and double-floats is upto 25%
+ faster.
+ * optimization: division of floating point numbers by constants uses
+ multiplication by reciprocal when an exact reciprocal exists.
+ * optimization: multiplication of single- and double-floats floats by
+ constant two has been optimized.
+ * optimization: ARRAY-IN-BOUNDS-P is resolved at compile-time when
+ sufficient type information is available. (thanks to Leslie Polzer)
+ * optimization: SLOT-VALUE and (SETF SLOT-VALUE) with constant slot names on
+ known structure objects are as efficient as defstruct generated accessors.
+ * optimization: unused vector creation can now be optimized away.
+ * improvement: ASDF systems can now depends on SB-INTROSPECT.
+ * improvement: a STYLE-WARNING is signalled when a generic function
+ clobbers an earlier FTYPE proclamation.
+ * improvement: the compiler is able to track the effective type of
+ generic function across method addition and removal even in the
+ absence of an explicit DEFGENERIC.
+ * improvement: DESCRIBE now reports on symbols naming undefined
+ but assumed or declared function as well.
+ * improvement: recompilation of systems using SB-GROVEL now works
+ (thanks to Leslie Polzer)
+ * improvements to SB-CLTL2 (thanks to Larry D'Anna):
+ ** functions DECLARATION-INFORMATION, PARSE-MACRO, and ENCLOSE have been
+ documented.
+ ** AUGMENT-ENVIRONMENT and DEFINE-DECLARATION have been implemented.
+ ** DECLARATION-INFORMATION now supports declaration name DECLARATION as
+ well as user defined declaration names.
+ ** VARIABLE-INFORMATION is now aware of alien variables.
+ * improvement: improved address space layout on OpenBSD (thanks to Josh
+ Elsasser)
+ * improvement: pretty-printing of various Lisp forms has been improved
+ (thanks to Tobias Rittweiler)
+ * bug fix: calls to DECODE-FLOAT and INTEGER-DECODE-FLOAT whose value was
+ unused were deleted in safe code. (reported by John Fremlin)
+ * bug fix: a failing AVER compiling certain MAKE-ARRAY forms. (reported
+ by James Wright)
+ * bug fix: some out-of-line array predicates were missing (reported by
+ Stelian Ionescu)
+ * bug fix: a failing AVER in CONVERT-MV-CALL has been fixed. (thanks to
+ Larry D'Anna)
+ * bug fix: a failing AVER in %ALLOCATE-CLOSURES conversion has been fixed
+ (thanks to Larry D'Anna)
+ * bug fix: SLEEP supports times over 100 million seconds on long on OpenBSD
+ as well. (reported by Josh Elsasser)
+ * bug fix: DELETE-FILE on streams no longer closes the stream with :ABORT T,
+ leading to possible attempts to delete the same file twice. See docstring
+ on DELETE-FILE for details. (reported by John Fremlin)
+ * bug fix: DELETE-FILE once again deletes the file named by the pathname
+ designator argument, rather than its truename. (reported by Luis
+ Oliveira)
+ * bug fix: the low-level debugger had 32-bit assumptions and was missing
+ information about some array types. (thanks to Luis Oliveira)
+ * bug fix: moderately complex combinations of inline expansions could
+ be miscompiled if the result was declared to be dynamic extent.
+ * bug fix: on x86, SAP-REF of sizes greater than 8 bits with offsets of the
+ form (+ <variable> <integer>) were miscompiled under certain
+ circumstances.
+ * bug fix: in some cases no compiler note about failure to stack allocate
+ was emitted, even if the objects were in fact heap allocated.
+ * bug fix: minor violation of "otherwise inaccessible" rule for stack
+ allocation could cause objects users might reasonably expect to
+ be heap allocated to be stack allocated.
+ * bug fix: DESCRIBE signalled an error for generic functions under
+ certain circumstances. (thanks to Leslie Polzer)
+ * bug fix: Fixed spelling of an error message.
+
+changes in sbcl-1.0.30 relative to sbcl-1.0.29:
+ * minor incompatible change: SB-THREAD:JOIN-THREAD-ERROR-THREAD and
+ SB-THREAD:INTERRUPT-THREAD-ERROR-THREAD have been deprecated in favor
+ of SB-THREAD:THREAD-ERROR-THREAD.
+ * new contrib module: SB-QUEUE provides thread-safe lockless FIFO queues.
+ * new feature: docstrings for local and anonymous functions are no longer
+ discarded. (thanks to Leslie Polzer)
+ * new feature: SB-THREAD:SYMBOL-VALUE-IN-THREAD provides access to symbol
+ values in other threads.
+ * new feature: SB-INTROSPECT:ALLOCATION-INFORMATION provides information
+ about object allocation.
+ * optimization: division of a real float by a complex float is implemented
+ with a specialised code sequence.
+ * optimization: MAKE-INSTANCE with non-constant class-argument but constant
+ keywords is an order of magnitude faster.
+ * optimization: MAKE-INSTANCE with constant keyword arguments is x2-4 faster
+ in the presence of :AROUND or non-standard primary INITIALIZE-INSTANCE
+ methods, and similarly for non-standard metaclass classes as long as there
+ are no methods additional on MAKE-INSTANCE.
+ * optimization: more efficient type-checks for FIXNUMs when the value
+ is known to be a signed word on x86 and x86-64.
+ * optimization: compiler now optimizes (EXPT -1 INTEGER), (EXPT -1.0 INTEGER),
+ and (EXPT -1.0d0 INTEGER) into an ODDP test. (thanks to Stas Boukarev and
+ Paul Khuong)
+ * optimization: compiler is smarter about delegating argument type checks to
+ callees.
+ * optimization: several character functions are now compiled somewhat more
+ efficiently. (reported by Lynn Quam)
+ * optimization: the compiler now derives simple types for LOAD-VALUE-FORMs.
+ * improvement: less unsafe constant folding in floating point arithmetic,
+ especially for mixed complex/real -float operations.
+ * optimization: constant double and single floats are stored in native
+ unboxed format on x86[-64].
+ * optimization: smarter code for arithmetic operations with constant floats,
+ complex floats, or integers on x86[-64].
+ * optimization: smarter code for conjugate/multiplication of float complexes
+ and abs/negate of floats on x86-64.
+ * optimization: more efficient complex float and real float operations on
+ x86-64.
+ * improvement: complex float division is slightly more stable.
+ * improvement: DESCRIBE output has been reworked to be easier to read and
+ contains more pertinent information.
+ * improvement: failure to provide requested stack allocation compiler notes
+ provided in all cases (requested stack allocation not happening without a
+ note being issued is now considered a bug.)
+ * bug fix: SB-POSIX exports the documented types and functions
+ FILE-DESCRIPTOR and FILENAME, and also the corresponding -DESCRIPTOR
+ types. (reported by "abhi")