- squabbles, but hopefully it will be an improvement in the long run.)
- ** SB-ALIEN:DEFINE-ALIEN-FUNCTION (also known by the old deprecated
- name DEF-ALIEN-FUNCTION) now does DECLAIM FTYPE for the defined
- function, since declaiming return types involving aliens is
- (1) annoyingly messy to do by hand and (2) vital to efficient
- compilation of code which calls such functions.
- ** SB-ALIEN:LOAD-FOREIGN and SB-ALIEN:LOAD-1-FOREIGN are no
- longer reexported by the SB-EXT package. They're solely useful
- for alien code, so it seems more logical that you should get
- them from the SB-ALIEN package, not in SB-EXT.
- ** :SB-CONSTRAIN-FLOAT-TYPE, :SB-PROPAGATE-FLOAT-TYPE, and
- :SB-PROPAGATE-FUN-TYPE are no longer considered to be optional
- features. Instead, the code that they used to control is always
- built into the system.
-* many other bug fixes
- ** DEFSTRUCT and DEFCLASS have been substantially updated to take
- advantage of the new EVAL-WHEN stuff and to clean them up in
- general, and they are now more ANSI-compliant in a number of
- ways. Martin Atzmueller is responsible for a lot of this.
- ** Besides the cleanups discussed above, Martin Atzmueller fixed
- several other bugs:
- *** fixes in READ-SEQUENCE and WRITE-SEQUENCE
- *** correct ERROR type for various file operations
- *** some fixes for Lisp streams
- *** DEFMETHOD syntax checking
- *** changing old weird representation of debug information as
- strings (which, among their other deficiencies, don't transform
- correctly when you rename packages, and don't change their
- print representation when you change things like *PACKAGE*
- and *PRINT-LENGTH*) to symbols and lists of symbols
- He also made several improvements and fixed several bugs in DESCRIBE.
- ** Alexey Dejneka fixed many bugs, including classic bugs and bugs he
- discovered himself:
- *** misbehavior of WRITE-STRING/WRITE-LINE
- *** LOOP over keys of a hash table, LOOP bugs 49b and 81 and 103,
- and several other LOOP problems as well
- *** DIRECTORY when similar filenames are present
- *** DEFGENERIC with :METHOD options
- *** bug 126, in (MAKE-STRING N :INITIAL-ELEMENT #\SPACE))
- *** bug in the optimization of ARRAY-ELEMENT-TYPE
- *** argument ordering in FIND with :TEST option
- *** mishandled package designator argument in APROPOS-LIST
- *** various problems in the backquote readmacro
- *** a bug in APROPOS
- *** probably some others that I'm not describing very well here,
- since the CVS log documents them by reference to sbcl-devel
- messages, and the SourceForge archives aren't working well.:-(
- ** Dan Barlow improved the Alpha port (and is making progress on the
- PPC port, for those of you who think different).
- ** Besides the DIRECTORY fixes and changes mentioned elsewhere,
- Christophe Rhodes cleaned up the system self-test scripts (in tests/*),
- contributed the optimization of FIND-IF-NOT and POSITION-IF-NOT, and
- continues to work on the SPARC port (for those of you in a position
- to look down upon our little PC-compatible boxes from a great height).
- ** PPRINT-LOGICAL-BLOCK now copies the *PRINT-LINES* value on entry
- and uses that copy, rather than the current dynamic value, when
- it's trying to decide whether to truncate output. Thus e.g.
- (let ((*print-lines* 50))
- (pprint-logical-block (stream nil)
- (dotimes (i 10)
- (let ((*print-lines* 8))
- (print (aref possiblybigthings i) stream)))))
- should now truncate the logical block only at 50 lines, instead of
- often truncating it at 8 lines, as it did before.
-* The doc/cmucl/ directory, containing old CMU CL documentation
- from the time of the fork, is no longer part of the base system.
- SourceForge has shut down its anonymous FTP service, and with it
- my original plan for distributing the old CMU CL documentation
- there. For now, if you need these files you can download an old
- SBCL source release and extract them from it.
-* The fasl file version number changed again, for dozens of reasons,
- some of which are apparent above.
-
-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.
-
-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.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.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.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.
+ squabbles, but hopefully it will be an improvement in the long run.)
+ ** SB-ALIEN:DEFINE-ALIEN-FUNCTION (also known by the old deprecated
+ name DEF-ALIEN-FUNCTION) now does DECLAIM FTYPE for the defined
+ function, since declaiming return types involving aliens is
+ (1) annoyingly messy to do by hand and (2) vital to efficient
+ compilation of code which calls such functions.
+ ** SB-ALIEN:LOAD-FOREIGN and SB-ALIEN:LOAD-1-FOREIGN are no
+ longer reexported by the SB-EXT package. They're solely useful
+ for alien code, so it seems more logical that you should get
+ them from the SB-ALIEN package, not in SB-EXT.
+ ** :SB-CONSTRAIN-FLOAT-TYPE, :SB-PROPAGATE-FLOAT-TYPE, and
+ :SB-PROPAGATE-FUN-TYPE are no longer considered to be optional
+ features. Instead, the code that they used to control is always
+ built into the system.
+* many other bug fixes
+ ** DEFSTRUCT and DEFCLASS have been substantially updated to take
+ advantage of the new EVAL-WHEN stuff and to clean them up in
+ general, and they are now more ANSI-compliant in a number of
+ ways. Martin Atzmueller is responsible for a lot of this.
+ ** Besides the cleanups discussed above, Martin Atzmueller fixed
+ several other bugs:
+ *** fixes in READ-SEQUENCE and WRITE-SEQUENCE
+ *** correct ERROR type for various file operations
+ *** some fixes for Lisp streams
+ *** DEFMETHOD syntax checking
+ *** changing old weird representation of debug information as
+ strings (which, among their other deficiencies, don't transform
+ correctly when you rename packages, and don't change their
+ print representation when you change things like *PACKAGE*
+ and *PRINT-LENGTH*) to symbols and lists of symbols
+ He also made several improvements and fixed several bugs in DESCRIBE.
+ ** Alexey Dejneka fixed many bugs, including classic bugs and bugs he
+ discovered himself:
+ *** misbehavior of WRITE-STRING/WRITE-LINE
+ *** LOOP over keys of a hash table, LOOP bugs 49b and 81 and 103,
+ and several other LOOP problems as well
+ *** DIRECTORY when similar filenames are present
+ *** DEFGENERIC with :METHOD options
+ *** bug 126, in (MAKE-STRING N :INITIAL-ELEMENT #\SPACE))
+ *** bug in the optimization of ARRAY-ELEMENT-TYPE
+ *** argument ordering in FIND with :TEST option
+ *** mishandled package designator argument in APROPOS-LIST
+ *** various problems in the backquote readmacro
+ *** a bug in APROPOS
+ *** probably some others that I'm not describing very well here,
+ since the CVS log documents them by reference to sbcl-devel
+ messages, and the SourceForge archives aren't working well.:-(
+ ** Dan Barlow improved the Alpha port (and is making progress on the
+ PPC port, for those of you who think different).
+ ** Besides the DIRECTORY fixes and changes mentioned elsewhere,
+ Christophe Rhodes cleaned up the system self-test scripts (in tests/*),
+ contributed the optimization of FIND-IF-NOT and POSITION-IF-NOT, and
+ continues to work on the SPARC port (for those of you in a position
+ to look down upon our little PC-compatible boxes from a great height).
+ ** PPRINT-LOGICAL-BLOCK now copies the *PRINT-LINES* value on entry
+ and uses that copy, rather than the current dynamic value, when
+ it's trying to decide whether to truncate output. Thus e.g.
+ (let ((*print-lines* 50))
+ (pprint-logical-block (stream nil)
+ (dotimes (i 10)
+ (let ((*print-lines* 8))
+ (print (aref possiblybigthings i) stream)))))
+ should now truncate the logical block only at 50 lines, instead of
+ often truncating it at 8 lines, as it did before.
+* The doc/cmucl/ directory, containing old CMU CL documentation
+ from the time of the fork, is no longer part of the base system.
+ SourceForge has shut down its anonymous FTP service, and with it
+ my original plan for distributing the old CMU CL documentation
+ there. For now, if you need these files you can download an old
+ SBCL source release and extract them from it.
+* The fasl file version number changed again, for dozens of reasons,
+ some of which are apparent above.