-changes in sbcl-0.6.11 relative to sbcl-0.6.10:
-* Martin Atzmueller pointed out that bugs #9 and #25 are gone in
- current SBCL.
-* bug 34 fixed by Martin Atzmueller: dumping/loading instances works
- better
-* fixed bug 40: TYPEP, SUBTYPEP, UPGRADED-ARRAY-ELEMENT-TYPE,
- and UPGRADED-COMPLEX-PART-TYPE now work better with of compound
- types built from undefined types, e.g. '(VECTOR SOME-UNDEF-TYPE).
-* DESCRIBE now works on structure objects again.
-* Most function call argument type mismatches are now handled as
- STYLE-WARNINGs instead of full WARNINGs, since the compiler doesn't
- know whether the function will be redefined before the call is
- executed. (The compiler could flag local calls with full WARNINGs,
- as per the ANSI spec "3.2.2.3 Semantic Constraints", but right now
- it doesn't keep track of enough information to know whether calls
- are local in this sense.)
-* Compiler output is now more verbose, with messages truncated
- later than before. (There should be some supported way for users
- to override the default verbosity, but I haven't decided how to
- provide it yet, so this behavior is still controlled by the internal
- SB-C::*COMPILER-ERROR-PRINT-FOO* variables in
- src/compiler/ir1util.lisp.)
-* Fasl file format version numbers have increased again, because
- support for the Gray streams extension changes the layout of the
- system's STREAM objects.
-* The Gray subclassable streams extension now works, thanks to a
- patch from Martin Atzmueller.
-* The full LOAD-FOREIGN extension (not just the primitive
- LOAD-FOREIGN-1) now works, thanks to a patch from Martin Atzmueller.
-* The default behavior of RUN-PROGRAM has changed. Now, unlike CMU CL
- but like most other programs, it defaults to copying the Unix
- environment from the original process instead of starting the
- new process in an empty environment.
-* Extensions which manipulate the Unix environment now support
- an :ENVIRONMENT keyword option which doesn't smash case or
- do other bad things. The CMU-CL-style :ENV option is retained
- for porting convenience.
-* LOAD-FOREIGN (and LOAD-1-FOREIGN) now support logical pathnames,
- as per Daniel Barlow's suggestion and Martin Atzmueller's patch
-
-changes in sbcl-0.6.12 relative to sbcl-0.6.11:
-* incompatible change: The old SB-EXT:OPTIMIZE-INTERFACE declaration
- is no longer recognized. I apologize for this, because it was
- listed in SB-EXT as a supported extension, but I found that
- its existing behavior was poorly specified, as well as incorrectly
- specified, and it looked like too much of a mess to straighten it
- out. I have enough on my hands trying to get ANSI stuff to work..
-* many patches ported from CMU CL by Martin Atzmueller, with
- half a dozen bug fixes in pretty-printing and the debugger, and
- half a dozen others elsewhere
-* fixed bug 13: Floating point infinities are now supported again.
- They might still be a little bit flaky, but thanks to bug reports
- from Nathan Froyd and CMU CL patches from Raymond Toy they're not
- as flaky as they were.
-* The --noprogrammer command line option is now supported. (Its
- behavior is slightly different in detail from what the old man
- page claimed it would do, but it's still appropriate under the
- same circumstances that the man page talks about.)
-* The :SB-PROPAGATE-FLOAT-TYPE and :SB-PROPAGATE-FUN-TYPE features
- are now supported, and enabled by default. Thus, the compiler can
- handle many floating point and complex operations much less
- inefficiently. (Thus e.g. you can implement a complex FFT
- without consing!)
-* The compiler now detects type mismatches between DECLAIM FTYPE
- and DEFUN better, and implements CHECK-TYPE more correctly, and
- SBCL builds under CMU CL again despite its non-ANSI EVAL-WHEN,
- thanks to patches from Martin Atzmueller.
-* various fixes to make the cross-compiler more portable to
- ANSI-conforming-but-different cross-compilation hosts (notably
- Lispworks for Windows, following bug reports from Arthur Lemmens)
-* A bug in READ-SEQUENCE for CONCATENATED-STREAM, and a gross
- ANSI noncompliance in DEFMACRO &KEY argument parsing, have been
- fixed thanks to Pierre Mai's CMU CL patches.
-* fixes to keep the system from overflowing internal counters when
- it tries to use i/o buffers larger than 16M bytes
-* fixed bug 45a: Various internal functions required to support
- complex special functions have been merged from CMU CL sources.
- (When I was first setting up SBCL, I misunderstood a compile-time
- conditional #-OLD-SPECFUN, and so accidentally deleted them.)
-* improved support for type intersection and union, fixing bug 12
- (e.g., now (SUBTYPEP 'KEYWORD 'SYMBOL)=>T,T) and some other
- more obscure bugs as well
-* some steps toward byte-compiling non-performance-critical
- parts of the system, courtesy of patches from Martin Atzmueller
-* Christophe Rhodes has made some debian packages of sbcl at
- <http://www-jcsu.jesus.cam.ac.uk/ftp/pub/debian/lisp>.
- From his sbcl-devel e-mail of 2001-04-08 they're not completely
- stable, but are nonetheless usable. When he's ready, I'd be happy
- to add them to the SourceForge "File Releases" section. (And if
- anyone wants to do RPMs or *BSD packages, they'd be welcome too.)
-* new fasl file format version number (because of changes in
- internal representation of (OR ..) types to accommodate the new
- support for (AND ..) types, among other things)
-
-changes in sbcl-0.6.13 relative to sbcl-0.6.12:
-* a port to the Compaq/DEC Alpha CPU, thanks to Dan Barlow
-* Martin Atzmueller ported Tim Moore's marvellous CMU CL DISASSEMBLE
- patch, so that DISASSEMBLE output is much nicer.
-* The code in the SB-PROFILE package now seems reasonably stable.
- I still haven't decided what the final interface should look like
- (I'd like PROFILE to interact cleanly with TRACE, since both
- facilities use function encapsulation) but if you have a need
- for profiling now, you can probably use it successfully with
- the current CMU-CL-style interface.
-* Pathnames and *DEFAULT-DIRECTORY-DEFAULTS* are much more
- ANSI-compliant, thanks to various fixes and tests from Dan Barlow.
- Also, at Dan Barlow's suggestion, TRUENAME on a dangling symbolic
- link now returns the dangling link itself, and for similar
- reasons, TRUENAME on a cyclic symbolic link returns the cyclic
- link itself. (In these cases the old code signalled an error and
- looped endlessly, respectively.) Thus, DIRECTORY now works even
- in the presence of dangling and cyclic symbolic links.
-* Compiler trace output (the :TRACE-FILE option to COMPILE-FILE)
- is now a supported extension again, since the consensus on
- sbcl-devel was that it can be useful for ordinary development
- work, not just for debugging SBCL itself.
-* The default for SB-EXT:*DERIVE-FUNCTION-TYPES* has changed to
- NIL, i.e. ANSI behavior, i.e. the compiler now recognizes
- that currently-defined functions might be redefined later with
- different return types.
-* Hash tables can be printed readably, as inspired by CMU CL code
- of Eric Marsden and SBCL code of Martin Atzmueller.
-* better error handling in CLOS method combination, thanks to
- Martin Atzmueller porting Pierre Mai's CMU CL patches
-* more overflow fixes for >16Mbyte I/O buffers
-* A bug in READ has been fixed, so that now a single Ctrl-D
- character suffices to cause end-of-file on character streams.
- In particular, now you only need one Ctrl-D at the command
- line (not two) to exit SBCL.
-* fixed bug 26: ARRAY-DISPLACEMENT now returns (VALUES NIL 0) for
- undisplaced arrays.
-* fixed bug 107 (reported as a CMU CL bug by Erik Naggum on
- comp.lang.lisp 2001-06-11): (WRITE #*101 :RADIX T :BASE 36) now
- does the right thing.
-* The implementation of some type tests, especially for CONDITION
- types, is now tidier and maybe faster, due to CMU CL code
- originally by Douglas Crosher, ported by Martin Atzmueller.
-* Some math functions have been fixed, and there are new
- optimizers for deriving the types of COERCE and ARRAY-ELEMENT-TYPE,
- thanks to Raymond Toy's work on CMU CL, ported by Martin Atzmueller.
-* (There are also some new optimizers in contrib/*-extras.lisp. Those
- aren't built into sbcl-0.6.13, but are a sneak preview of what's
- likely to be built into sbcl-0.7.0.)
-* A bug in COPY-READTABLE was fixed. (Joao Cachopo's patch to CMU
- CL, ported to SBCL by Martin Atzmueller)
-* DESCRIBE now gives more information in some cases. (Pierre Mai's
- patch to CMU CL, ported to SBCL by Martin Atzmueller)
-* Martin Atzmueller and Bill Newman fixed some bugs in INSPECT.
-* There's a new slam.sh hack to shorten the edit/compile/debug
- cycle for low-level changes to SBCL itself, and a new
- :SB-AFTER-XC-CORE target feature to control the generation of
- the after-xc.core file needed by slam.sh.
-* minor incompatible change: The ENTRY-POINTS &KEY argument to
- COMPILE-FILE is no longer supported, so that now every function
- gets an entry point, so that block compilation looks a little
- more like the plain vanilla ANSI section 3.2.2.3 scheme.
-* minor incompatible change: SB-EXT:GET-BYTES-CONSED now
- returns the number of bytes consed since the system started,
- rather than the number consed since the first time the function
- was called. (The new definition parallels ANSI functions like
- CL:GET-INTERNAL-RUN-TIME.)
-* minor incompatible change: The old CMU-CL-style DIRECTORY options,
- i.e. :ALL, :FOLLOW-LINKS, and :CHECK-FOR-SUBDIRS, are no longer
- supported. Now DIRECTORY always does the abstract Common-Lisp-y
- thing, i.e. :ALL T :FOLLOW-LINKS T :CHECK-FOR-SUBDIRS T.
-* Fasl file version numbers are now independent of the target CPU,
- since historically most system changes which required version
- number changes have affected all CPUs equally. Similarly,
- the byte fasl file version is now equal to the ordinary
- fasl file version.
+changes in sbcl-0.8.1 relative to sbcl-0.8.0:
+ * minor incompatible change: some nonsensical specialized lambda
+ lists (used in DEFMETHOD) which were previously ignored now signal
+ errors.
+ * minor incompatible change: the system is now aware of the types of
+ variables in the COMMON-LISP package, and will signal errors for
+ most violations of these type constraints (where previously they
+ were silently accepted).
+ * minor incompatible change: COMPILE-FILE now uses the freedom
+ afforded (ANSI 3.2.2.3) to use derived function types for
+ functions defined in the same file. This also permits the system
+ to warn on static type mismatches and function
+ redefinition. (Currently it does not work with high DEBUG level.)
+ * minor incompatible change: VALUES declaration is disabled.
+ * When issuing notes, the compiler now signals a condition of type
+ SB-EXT:COMPILER-NOTE, and provides an associated MUFFLE-WARNING
+ restart for use in user handlers. It is expected that the
+ COMPILER-NOTE condition will eventually become a condition
+ supertype to a hierarchy of note types, which will then be
+ handleable in a similar fashion. However, at the moment, no such
+ note subtypes yet exist. (SB-INT:SIMPLE-COMPILER-NOTE exists,
+ but it's an implementation detail, not a classification for the
+ purpose above.)
+ * Changes in type checking closed the following bugs:
+ ** type checking of unused values (192b, 194d, 203);
+ ** template selection based on unsafe type assertions (192c, 236);
+ ** type checking in branches (194bc).
+ * A short form of VALUES type specifier has ANSI meaning (it has
+ increased the number of situations when SBCL cannot perform type
+ checking).
+ * fixed bug in DEFSTRUCT: once again, naming structure slots with
+ keywords or constants is permissible.
+ * STREAM-READ-SEQUENCE and STREAM-WRITE-SEQUENCE now have methods
+ defined on the relevant FUNDAMENTAL-BINARY-{INPUT,OUTPUT}-STREAM
+ classes. (thanks to Antonio Martinez)
+ * improved ANSIness in DESCRIBE: The DESCRIBE function no longer
+ outputs FRESH-LINE or TERPRI, and no longer converts its stream
+ argument to a pretty-print stream. Instead, it leaves any such
+ operations to DESCRIBE-OBJECT methods.
+ * bug fix: APROPOS now respects the EXTERNAL-ONLY flag. (reported
+ by Teemu Kalvas)
+ * bug fix: NIL is now a valid destructuring argument in DEFMACRO
+ lambda lists. (thanks to David Lichteblau)
+ * bug fix: Defining a generic function with a :METHOD-CLASS being a
+ subclass of STANDARD-METHOD no longer causes stack exhaustion.
+ (thanks to Gerd Moellmann)
+ * fixed bug 246: increased compilation speed of long
+ MULTIPLE-VALUE-BIND (and likewise of NTH-VALUE with a constant
+ integer argument)
+ * a contributed module implementing COMPILER-LET and MACROEXPAND-ALL
+ has been included.
+ * DEFCONSTANT now throws a condition of type
+ SB-EXT:DEFCONSTANT-UNEQL if it is being asked to redefine a
+ constant to a non-EQL value; CONTINUE and ABORT restarts
+ respectively change and preserve the value.
+ * fixed bug 63: The code walker, part of the implementation of CLOS,
+ is now better at handling symbol macros.
+ * bug fix: There is no longer an internal implementation type named
+ CL:LENGTH. (reported by Raymond Toy)
+ * bug fix: In macro-like defining macros/special operators the
+ implicit block does not enclose the lambda list.
+ * fixed bugs 10 and 43: Bare VALUES, AND, OR and MEMBER symbols (not
+ enclosed in parentheses) are not suitable as type specifiers, and
+ their use properly signals an error now.
+ * bug fix: An argument count mismatch for a type specifier in code
+ being compiled no longer causes an unhandled error at compile
+ time, but signals a compile-time warning.
+ * fixed simple vector readable printing
+ * bug fix: DESCRIBE takes more care over whether the class
+ precedence list slot of a class is bound before accessing it.
+ (reported by Markus Krummenacker)
+ * bug fix: FORMATTER can successfully compile pretty-printer format
+ strings which use variants of the ~* directive inside.
+ * bug fix: SEARCH now applies its TEST predicate to the elements of
+ the arguments in the correct order. (thanks to Wolfhard Buss)
+ * fixed bug 235b: The compiler uses return types of MAPCAR and friends
+ in type inference. (thanks to Robert E. Brown)
+ * bug fix: Reading in symbols with an explicit package name of ""
+ (e.g. '||::FOO) now works correctly. (reported by Henrik Motakef)
+ * fixed some bugs revealed by Paul Dietz' test suite:
+ ** NIL is now allowed as a structure slot name.
+ ** Arbitrary numbers, not just REALs, are allowed in certain
+ circumstances in LOOP for-as-arithmetic clauses.
+ ** Multiple class redefinitions before slot access no longer
+ causes a type error.
+ ** (SETF FIND-CLASS) now accepts NIL as an argument to remove the
+ association between the name and a class.
+ ** Generic functions with non-standard method-combination and over
+ five methods all of which return constants no longer return NIL
+ after the first few invocations. (thanks to Gerd Moellmann)
+ ** CALL-NEXT-METHOD with no arguments now passes the original
+ values of the arguments, even in the presence of assignment.
+ ** Functions [N]SUBST*, LAST, NRECONC, [N]SUBLIS may return any
+ object.
+ ** DISASSEMBLE works with closures and funcallable instances.
+ ** ADD-METHOD now returns the generic function, not the new method.
+ ** FIND-METHOD signals an error if the lengths of the specializers
+ is incompatible with the generic function, even if the ERRORP
+ argument is true.
+ ** TYPE-OF returns recognizeable subtypes of all built-in-types of
+ which its argument is a member.
+ ** DEFCLASS only redefines the class named by its class-name
+ argument if that name is the proper name of the class;
+ otherwise, it creates a new class.
+ ** SLOT-UNBOUND now correctly initalizes the CELL-ERROR-NAME slot
+ of the UNBOUND-SLOT condition to the name of the slot.
+ ** (SETF (AREF bv 0) ...) did not work for bit vectors.
+ ** SLOT-UNBOUND and SLOT-MISSING now have their return values
+ treated by SLOT-BOUNDP, SLOT-VALUE, (SETF SLOT-VALUE) and
+ SLOT-MAKUNBOUND in the specified fashion.