-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.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.5 relative to sbcl-0.7.4:
+ * 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
+ to David Lichteblau)
+ * 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
+ 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.
+
+changes in sbcl-0.7.4 relative to sbcl-0.7.3:
+ * bug 147 fixed: The compiler preserves its block link/count
+ invariants more correctly now so that it doesn't crash. (thanks
+ to Alexey Dejneka)
+ * Dynamic loading of object files in OpenBSD is now supported. (thanks
+ to Pierre Mai)
+ * COMPILE now works correctly on macros. (thanks to Matthias Hoelzl)
+ * GET-MACRO-CHARACTER and SET-MACRO-CHARACTER now represent
+ no-value-for-this-character as NIL (as specified by ANSI).
+ * HOST-NAMESTRING on physical pathnames now returns a string that is
+ valid as a host argument to MERGE-PATHNAMES and to MAKE-PATHNAME.
+ (thanks to Christophe Rhodes)
+ * The Alpha port handles icache flushing more correctly. (thanks to
+ Dan Barlow)
+ * More progress has been made toward bootstrapping under CLISP. (thanks
+ to Christophe Rhodes)
+ * The fasl file format has changed again, because dynamic loading
+ on OpenBSD (which has non-ELF object files) motivated some cleanups
+ in the way that foreign symbols are transformed and passed around.
+ * minor incompatible change: The ASCII RUBOUT character, (CHAR-CODE 127),
+ is no longer treated as whitespace by the reader, but instead as
+ an ordinary character. Thus e.g. (READ-FROM-STRING "A\7fB") returns
+ |A\7fB|, instead of A as it used to.
+
+changes in sbcl-0.7.3 relative to sbcl-0.7.2:
+ * ANSI's DEFINE-SYMBOL-MACRO is now supported. (thanks to Nathan
+ Froyd porting CMU CL code originally by Douglas Thomas Crosher)
+ * SBCL now runs on the PPC archtiecture under Linux. It actually did
+ this as of 0.7.1.45, but was left out of the previous news section
+ (thanks to Dan Barlow)
+ * SBCL now runs on the Solaris operating system on SPARC architectures
+ (thanks to Christophe Rhodes's port of the CMUCL runtime)
+ * cleanups to the runtime on SPARC, both Linux and Solaris, and for
+ gcc>=3 (thanks to Nathan Froyd and Ingvar Mattsson)
+ * SPARC backend cleanups, allowing builds of cores optimized for V8
+ and V9 SPARCS, and also emission of code targeted to a particular
+ backend chosen at runtime (thanks to Christophe Rhodes and Raymond
+ Toy)
+ * SBCL is closer to bootstrapping under CLISP, thanks to various
+ fixes by Christophe Rhodes.
+ * The fasl file format has changed again, to allow the compiler's
+ INFO database to support symbol macros.
+ * The user manual (in doc/) is formatted into HTML more nicely.
+ (thanks to coreythomas)
+ * The system is smarter about SUBTYPEP relationships, especially
+ those involving NOT types (including types such as ATOM which are
+ represented internally using NOT types). Thus SUBTYPEP is less
+ likely to return (VALUES NIL NIL) in general, and in particular
+ bugs 58 and (the remaining bits of) bug 50 are fixed. (thanks to
+ Christophe Rhodes)
+ * The fasl file format has changed again, because the internal
+ representation of types now includes a new slot to support the new
+ SUBTYPEP-of-NOT-types logic.
+ * (not a change in the main branch of SBCL, but a related prototype
+ which can hopefully be merged into the main branch of SBCL in the
+ future:) Brian Spilsbury has produced a Unicode-enabled variant of
+ sbcl-0.7.0, available as a patch against sbcl-0.7.0 at
+ <http://designix.com.au/brian/SBCL/sbcl-0.7.0-unicode.p0.gz>.
+ * Bug 151 fixed: GET-DISPATCH-MACRO-CHAR now returns NIL for undefined
+ dispatch macro character combinations. (thanks to Alexey Dejneka)
+ * Bugfix in PARSE-NAMESTRING: we now correctly parse unix namestrings
+ that superficially look like logical namestrings correctly.
+ * USER-HOMEDIR-PATHNAME now returns a (physical) pathname that SBCL
+ can deal with.
+ * Bugfix in DEFSTRUCT: BOA constructor lambda lists now accept (name
+ default supplied-p) for &optional and &key arguments. (thanks to
+ Martin Atzmueller)
+
+changes in sbcl-0.7.2 relative to sbcl-0.7.1:
+ * incompatible change: The compiler is now less aggressive about
+ tail call optimization, doing it only when (> SPACE DEBUG) or
+ (> SPEED DEBUG). (This is an incompatible change because there are
+ programs which relied on the old CMU-CL-style behavior to optimize
+ away their unbounded recursion which will now die of stack overflow.)
+ * minor incompatible change: The default BYTES-CONSED-BETWEEN-GCS
+ for non-GENCGC systems has been increased to 20M (since that
+ seems much closer to the likely performance optimum for modern
+ systems than the old 4M value was)
+ * minor incompatible change: new larger values for *DEBUG-PRINT-LENGTH*
+ and *DEBUG-PRINT-LEVEL*
+ * SBCL runs on SPARC systems now. (thanks to Christophe Rhodes' port
+ of CMU CL's support for SPARC, and various endianness and other
+ SBCL portability fixes due to Christophe Rhodes and Dan Barlow)
+ * new syntactic sugar for the Unix command line: --load foo.bar is now
+ an alternate notation for --eval '(load "foo.bar")'.
+ * bug fixes:
+ ** The system now detects stack overflow and handles it gracefully,
+ at least for (OR (> SAFETY (MAX SPEED SPACE)) (= SAFETY 3))
+ optimization settings. (This is a good thing in general, and
+ its introduction in this version should be particularly timely
+ for anyone whose code fails because of suppression of tail
+ recursion!)
+ ** The system now hunts for the C variable "environ" in a more
+ devious way, to avoid segfaults when the C library version differs
+ between compile time and run time. (thanks to Christophe Rhodes)
+ ** INTEGER-valued CATCH tags now work. (thanks to Alexey Dejneka,
+ and also to Christophe Rhodes for porting the fix to non-X86 CPUs)
+ ** The compiler no longer issues bogus style warnings for undefined
+ classes in the same source file as the DEFCLASSes which defined
+ them. (thanks to Stig E Sandoe for reporting and Martin Atzmueller
+ for fixing this)
+ ** fixes in CONDITION class precedence list for undefined function
+ errors (thanks to Alexei Dejneka)
+ ** *DEFAULT-PATHNAME-DEFAULTS* is used more consistently and
+ correctly. (thanks to Dan Barlow)
+ ** portability fixes aiming at bootstrapping under CLISP (thanks
+ to Dave McDonald and Christophe Rhodes)
+ ** FORMAT fixes (thanks to Robert Strandh and Dan Barlow)
+ ** fixes in type translation and and type inference (thanks to
+ Christophe Rhodes)
+ ** fixes to optimizer internal errors (thanks to Alexei Dejneka)
+ ** various fixes in the new ports (thanks to Dan Barlow)
+ * several changes related to debugging:
+ ** suppression of tail recursion, as noted above
+ ** stack overflow detection, as noted above
+ ** The default implementation of TRACE has changed. :ENCAPSULATE T
+ is now the default. (For some time encapsulation has been more
+ reliable than the breakpoint-based :ENCAPSULATE NIL
+ implementation, at least on X86 systems; and I just noticed that
+ encapsulation also seems closer to the spirit of the ANSI
+ specification.)
+
+changes in sbcl-0.7.1 relative to sbcl-0.7.0:
+* mostly bug fixes:
+ ** SB-ALIEN:LOAD-FOREIGN and SB-ALIEN:LOAD-1-FOREIGN are set
+ up properly again. (There was a packaging bug in 0.7.0 which
+ left their definitions in SB-SYS::LOAD-FOREIGN and
+ SB-SYS::LOAD-1-FOREIGN. LOAD-FOREIGN and LOAD-1-FOREIGN are
+ vital for most things which interface to C-level interfaces,
+ like extensions working with sockets or databases or
+ Perl-compatible regexes or whatever, and the need to fix
+ this bug is the main reason that 0.7.1 was released so
+ soon after 0.7.0.)
+ ** DEFGENERIC is now choosier about the methods it redefines, so that
+ reLOADing a previously-LOADed file containing DEFGENERICs does
+ the right thing now. Thus, the Lispy edit/reLOAD-a-little/test
+ cycle now works as it should. (thanks to Alexey Dejneka)
+ ** Bug 106 (types (COMPLEX FOO) where FOO is an obscure type) was
+ fixed by Christophe Rhodes. (He actually submitted this patch
+ months ago, and I delayed until after 0.7.0.)
+ ** Bug 111 (internal compiler confusion about runtime checks on
+ FUNCTION types) was fixed by Alexey Dejneka.
+* Some internal cleanups (getting rid of variables which aren't
+ needed now that the byte interpreter is gone) caused the fasl
+ file format number to change again.