|A\7fB|, instead of A as it used to.
changes in sbcl-0.7.5 relative to sbcl-0.7.4:
- * bug 140 fixed: redefinition of classes with different supertypes
- is now reflected in the type hierarchy. (thanks to Pierre Mai)
- * bug 158 fixed: the compiler can now deal with integer loop
+ * SBCL now builds with OpenMCL (version 0.12) as the
+ cross-compilation host; also, more progress has been made toward
+ bootstrapping under CLISP.
+ * SBCL now runs on the Tru64 (aka OSF/1) operating system on the
+ Alpha architecture.
+ * bug 158 fixed: The compiler can now deal with integer loop
increments different from 1; fixing this turned out also to fix
bug 164.
* bug 169 fixed: no more bogus warnings about using lexical bindings
- despite the presence of perfectly good SPECIAL declarations. (thanks
+ despite the presence of perfectly good SPECIAL declarations (thanks
to David Lichteblau)
- * bug 175 fixed: more-closely-ANSI CHANGE-CLASS function, now
+ * bug 175 fixed: CHANGE-CLASS is now more ANSI-conforming,
accepting initargs. (thanks to Espen Johnsen and Pierre Mai)
+ * bug 179 fixed: DIRECTORY can now deal with filenames with pattern
+ characters in them.
+ * bug 180 fixed: Method combination specifications no longer ignore
+ the :MOST-SPECIFIC-LAST option. (thanks to Pierre Mai)
* bug fix: Structure type predicate functions now check their argument
count as they should.
- * bug fix: classes with :METACLASS STRUCTURE-CLASS now print
+ * bug fix: Classes with :METACLASS STRUCTURE-CLASS now print
correctly. (thanks to Pierre Mai)
+ * minor incompatible change: The --noprogrammer option is deprecated
+ in favor of the new --disable-debugger option, which is very similar.
+ (The major difference is that it takes effect at a slightly different
+ time at startup, causing handling of errors in --sysinit and
+ --userinit files will be affected differently.) The
+ SB-EXT:DISABLE-DEBUGGER and SB-EXT:ENABLE-DEBUGGER functions have
+ been added to allow this functionality to be controlled from ordinary
+ Lisp code. (ENABLE-DEBUGGER should help people like the Debian
+ maintainers, who might want to run non-interactive scripts to
+ build SBCL cores which will later be used interactively.)
* minor incompatible change: The LOAD function no longer, when given
- a wild pathname to load, loads all files matching that pathname;
- instead, an error of type FILE-ERROR is signalled.
+ a wild pathname to load, loads all files matching that pathname.
+ Instead, an error of type FILE-ERROR is signalled.
+
+changes in sbcl-0.7.6 relative to sbcl-0.7.5:
+ * bug fix: Floating point exceptions are treated much more
+ consistently on the x86/Linux and PPC/Linux platforms.
+ * Array initialization with :INITIAL-ELEMENT is now much faster for
+ cases when the compiler cannot open code the array creation, but
+ does know what the UPGRADED-ARRAY-ELEMENT-TYPE will be. General
+ array accesses have also seen a speed increase.
+ * bug fix: LOAD :IF-DOES-NOT-EXIST NIL now works when file type is
+ specified. (This was at the root of some bad interactions between
+ SBCL and ILISP: thanks to Gregory Wright for diagnosing this and
+ reporting the bug.)
+ * bug fix: Internal error arguments for undefined functions are now
+ computed correctly on the PPC/Linux platform.
+ * bug fix: Bad &REST syntax is now checked correctly. (thanks to
+ Raymond Toy's patch for CMU CL)
+ * Support for the Solaris 9 operating environment has been included
+ (thanks to Daniel Merritt)
+ * A very ugly but hopefully complete draft of the missing FFI chapter
+ of the manual has been created by reformatting the corresponding
+ CMU CL manual chapter into (currently very ugly and incoherent)
+ DocBook and bringing it up to date for SBCL behavior. Thus, the
+ manual is now essentially complete, at least by my extreme
+ once-and-only-once standards, whereby it's acceptable to refer to
+ the doc strings of SB-EXT functions as the primary documentation.
+ * The fasl file version number has changed again, due to cleanup of
+ (user-invisible) bitrotted stuff. (E.g. *!INITIAL-FDEFN-OBJECTS*
+ is no longer a static symbol.)
+
+changes in sbcl-0.7.7 relative to sbcl-0.7.6:
+ * An alpha-quality port to the parisc architecture running Linux,
+ based on the old CMUCL backend, has been made. This, even more so
+ than the other backends, should be considered still a work in
+ progress; known problems include that the Linux kernel in 64-bit
+ mode does not propagate the correct sigcontext structure to
+ userspace, and consequently SBCL on a parisc64 kernel will not
+ work yet.
+ * fixed bug 189: The compiler now respects NOTINLINE declarations for
+ functions declared in FLET and LABELS. (I.e. "LET conversion" is
+ suppressed.) Also now that the compiler is looking at declarations
+ in the environment, it checks optimization declarations as well,
+ and suppresses inlining when (> DEBUG SPEED).
+ * More fixes have been made to treatment of floating point exception
+ treatment and other Unix signals. In particular, floating point
+ exceptions no longer cause Bus errors on the SPARC/Linux platform.
+ * The detection and handling of control stack exhaustion (infinite
+ or very deeply nested recursion) has changed. Stack exhaustion
+ detection is now done by write-protecting pages at the OS level
+ and applies at all optimization settings; when found, a
+ SB-KERNEL:CONTROL-STACK-EXHAUSTED condition (subclass of
+ STORAGE-CONDITION) is signalled, so stack exhaustion can no longer
+ be caught using IGNORE-ERRORS.
+ * Bugs 65, 70, and 109 fixed: The compiler now preserves invariants
+ correctly when transforming recursive LABELS functions to LETs.
+ (thanks to Alexey Dejneka)
+ * Bug 48a./b. fixed: SYMBOL-MACROLET now refuses to bind symbols
+ that are names of constants or global variables.
+ * Bug fix: DEFINE-ALIEN-ROUTINE now declaims the correct FTYPE for
+ alien routines with docstrings.
+ * Bug 184 fixed: Division of ratios by the integer 0 now signals an
+ error of type DIVISION-BY-ZERO. (thanks to Wolfhard Buss and
+ Raymond Toy)
+ * Bug fix: Errors in PARSE-INTEGER are now of type PARSE-ERROR.
+ (thanks to Eric Marsden)
+ * Bug fix: COERCE to (COMPLEX FLOAT) of rationals now returns an
+ object of type (COMPLEX FLOAT). (thanks to Wolfhard Buss)
+ * Bug fix: The SPARC backend can now compile functions involving
+ LOGAND and stack-allocated arguments. (thanks to Raymond Toy)
+ * Bug fix: We no longer segfault on passing a non-FILE-STREAM stream
+ to a functions expecting a PATHNAME-DESIGNATOR.
+ * Bug fix: DEFGENERIC now enforces the ANSI restrictions on its
+ lambda lists. (thanks to Alexey Dejneka)
+ * Bug fix: changed encoding of PCL's internal MAKE-INSTANCE
+ functions so that EXPORTing the name of the class doesn't cause
+ MAKE-INSTANCE functions from earlier DEFCLASSes to get lost (thanks
+ to Antonio Martinez for reporting this)
+ * Bug 192 fixed: The internal primitive DATA-VECTOR-REF can now be
+ constant-folded without failing an assertion. (thanks to Einar
+ Floystad Dorum for reporting this)
+ * Bugs 123 and 165 fixed: array specializations on as-yet-undefined
+ types are now dealt with more correctly by the compiler.
+ * Minor incompatible change: COMPILE-FILE-PATHNAME now merges its
+ OUTPUT-FILE argument with its INPUT-FILE argument, resulting in
+ behaviour analogous to RENAME-FILE. This puts its behaviour more
+ in line with ANSI's wording on COMPILE-FILE-PATHNAME. (thanks to
+ Marco Antinotti)
+ * The fasl file version number has changed again. (because of the
+ bug fix involving the names of PCL MAKE-INSTANCE functions)
+
+changes in sbcl-0.7.8 relative to sbcl-0.7.7:
+ * A beta-quality port to the mips architecture running Linux,
+ based on the old CMUCL backend, has been made. It has been tested
+ on a big-endian kernel, and works sufficiently well to be able to
+ rebuild itself; it has not been tested in little-endian mode.
+ * fixed an inconsistency between gencgc.c and purify.c which made
+ dumping/loading .core files unreliable
+ * fixed bug 120a: The compiler now deals correctly with IFs where
+ the consequent is the same as the alternative, instead of
+ misderiving the return type. (thanks to Alexey Dejneka)
+ * fixed bug 113: Logical pathnames are now dumpable (the logical
+ host is resolved at load-time, throwing an error if it is not
+ found).
+ * fixed bug 174: FORMAT's error message is slightly clearer when a
+ non-printing character is used in a format directive.
+ * fixed several bugs in compiler checking of type declarations, i.e.
+ violations of the Python "declarations are assertions" principle
+ (thanks to Alexey Dejneka)
+ * fixed several bugs in PCL's error checking (thanks to Gerd
+ Moellmann)
+ * fixed bug: printing of FILE-ERROR (thanks to Antonio
+ Martinez-Shotton)
+ * fixed bug in compilation of functions as first class values
+ (thanks to Antonio Martinez-Shotton)
+ * The compiler's handling TYPE-ERRORs which it can prove will
+ inevitably happen at runtime has been cleaned up and corrected
+ in several ways. (thanks to Alexey Dejneka)
+ * improved argument type checking for various basic arithmetic
+ operations (MAX, +, LOGXOR, etc.) which have had so much TLC
+ lavished on them in the past that they can be compiled in many
+ ways in different special cases
+ * fixed bug 181: compiler checks validity of user supplied type
+ specifiers
+ * cleaned up code flushing in optimization: Function calls which
+ should signal errors for safety purposes (e.g. which ANSI says
+ should signal errors when their arguments are of incorrect type)
+ are no longer optimized away.
+ * added new extension: SB-DEBUG:BACKTRACE-AS-LIST
+ * incremented fasl file version number, because changes in the
+ implementation of sequence functions like COERCE caused
+ internal utility functions like COERCE-TO-SIMPLE-VECTOR (used
+ in old inline expansions) to become undefined. (Actually these
+ changes were later undone, so we might very well be binary
+ compatible with 0.7.7 after all, but leaving the version number
+ incremented seemed like the simplest and most conservative
+ thing to do.)
+
+changes in sbcl-0.7.9 relative to sbcl-0.7.8:
+ * minor incompatible change: The runtime (the Unix executable named
+ "sbcl") is now much pickier about the .core files it will load.
+ Essentially it now requires .core files to descend from the same
+ build (not just the same sources or LISP-IMPLEMENTATION-VERSION)
+ as the runtime does. (The intent is to prevent the crashes which
+ can occur, and which can even be reported as mysterious failures,
+ when people patch the sources or change the build parameters
+ without changing LISP-IMPLEMENTATION-VERSION, then mix and match
+ sbcl and .core files.)
+ * fixed bug: VALUES-LIST is no longer optimized away.
+ * fixed bug 142: The FFI conversion of C string values to Lisp
+ string values no longer conses excessively. (thanks to Nathan
+ Froyd porting Raymond Toy's fix to CMU CL)
+ * improved MOP conformance in PCL (thanks to Nathan Froyd porting
+ Gerd Moellman's work in CMU CL)
+ * fixed bug 202: The compiler no longer fails on functions whose
+ derived types contradict their declared type.
+ * DEFMACRO is implemented via EVAL-WHEN instead of IR1 translation,
+ so it can be non-toplevel.
+ * fixed bugs 46h and 46i: TWO-WAY- and CONCATENATED-STREAM creation
+ functions now check the types of their inputs as required by ANSI.
planned incompatible changes in 0.7.x:
* When the profiling interface settles down, maybe in 0.7.x, maybe