0.pre7.35:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 5032fb2..7534722 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -736,26 +736,141 @@ changes in sbcl-0.6.12 relative to sbcl-0.6.11:
   support for (AND ..) types, among other things)
 
 changes in sbcl-0.6.13 relative to sbcl-0.6.12:
-* a port to the Alpha CPU, thanks to Dan Barlow
+* 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.
-* better error handling in CLOS method combination, thanks to 
-  Martin Atzmueller and Pierre Mai
+* 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.
-* 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.
-* Compiler trace output (the :TRACE-FILE option to COMPILE-FILE)
-  is now a supported extension again, since the consensus is that
-  it can be useful for ordinary development work, not just for
-  debugging SBCL itself.
-?? more overflow fixes for >16Mbyte i/o buffers
+* 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.7.0 relative to sbcl-0.6.13:
+* incompatible change: The default fasl file extension has changed
+  to ".fasl", for all architectures. (No longer ".x86f" and ".axpf".) 
+* There are new compiler optimizations for various functions: FIND,
+  POSITION, FIND-IF, POSITION-IF, FILL, COERCE, TRUNCATE, FLOOR, and
+  CEILING. Mostly these should be transparent, but there's one 
+  potentially-annoying problem (bug 117): when the compiler inline
+  expands the FIND/POSITION family of functions and does type
+  analysis on the result, it can find control paths which have 
+  type mismatches, and when it can't prove that they're not taken,
+  it will issue WARNINGs about the type mismatches. It's not clear
+  how to make the compiler smart enough to fix this in general, but
+  a workaround is given in the entry for 117 in the BUGS file.
+* The EVAL and EVAL-WHEN code has been largely rewritten, and the
+  old CMU CL "IR1 interpreter" has gone away. The new interpreter
+  is probably slower and harder to debug than the old one, but
+  it's much simpler (several thousand lines of source code simpler)
+  and considerably more ANSI-compliant. Bugs
+    ?? IR1-3 and
+    ?? IR1-3a
+  have been fixed. Since the code is newer, there might still be
+  some new bugs (though not as many as before Martin Atzmueller's
+  fixes:-). But hopefully any remaining bugs will be simpler, less
+  fundamental, and more fixable then the bugs in the old IR1
+  interpreter code.
+* DEFSTRUCT and DEFCLASS have been substantially updated to take
+  advantage of the new EVAL-WHEN stuff and to clean them up in 
+  general, and are now more ANSI-compliant in a number of ways. Martin
+  Atzmueller is responsible for a lot of this.
+* A bug in LOOP operations on hash tables has been fixed, thanks
+  to a bug report and patch from Alexey Dejneka.
+* The default value of *BYTES-CONSED-BETWEEN-GCS* has been 
+  doubled, to 4 million. (If your application spends a lot of time
+  GCing and you have a lot of RAM, you might want to experiment with
+  increasing it even more.)
+* 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 truncate the logical block only at 50 lines, instead of 
+  often truncating it at 8 lines.
+* :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.
+* The doc/cmucl/ directory, containing old CMU CL documentation,
+  is no longer part of the base system. The files which used to 
+  be in the doc/cmucl/ directory are now available as
+    <ftp://sbcl.sourceforge.net/pub/sbcl/cmucl-docs.tar.bz2>.
+* lots of tidying up internally: renaming things so that names are
+  more systematic and consistent, converting C macros to inline
+  functions, systematizing indentation, making symbol packaging
+  more logical, and so forth
+* The fasl file version number changed again, for any number of
+  good reasons.
 
 planned incompatible changes in 0.7.x:
 * The debugger prompt sequence now goes "5]", "5[2]", "5[3]", etc.
@@ -763,7 +878,6 @@ planned incompatible changes in 0.7.x:
   instead of the old "5]", "5]]", "5]]]" sequence. (I was motivated
   to do this when squabbles between ILISP and SBCL left me
   very deeply nested in the debugger.)
-* The fasl file extension may change, perhaps to ".fasl".
 * The default output representation for unprintable ASCII characters 
   which, unlike e.g. #\Newline, don't have names defined in the 
   ANSI Common Lisp standard, may change to their ASCII symbolic