0.6.11.37:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index d6d74d3..ac3c486 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -502,20 +502,14 @@ changes in sbcl-0.6.8 relative to sbcl-0.6.7:
   of static symbols.
 * FINISH-OUTPUT is now called more consistently on QUIT. (It
   used to not be called for a saved Lisp image.)
-?? A bug related to the signal handling rewrite, keeping the DEBUG:ARG 
-  function from working, was fixed.
 * Martin Atzmueller's version of a patch to fix a compiler crash,
   as posted on sbcl-devel 13 September 2000, has been installed.
 * Instead of installing Martin Atzmueller's patch for the
   compiler transform for SUBSEQ, I deleted the compiler transform,
   and transforms for some similar consing operations.
-?? A bug in signal handling which kept TRACE from working on OpenBSD
+* A bug in signal handling which kept TRACE from working on OpenBSD
   has been fixed.
-  ?? Remember to remove this from the port-specific section of BUGS.
-?? The signal handling bug reported by Martin Atzmueller on 
-  sbcl-devel 13 September 2000, which caused the debugger to 
-  get confused after a Ctrl-C interrupt under ILISP, has been fixed.
-?? added enough DEFTRANSFORMs to allow (SXHASH 'FOO) to be optimized
+* added enough DEFTRANSFORMs to allow (SXHASH 'FOO) to be optimized
   away by constant folding
 * The system now defines its address space constants in one place
   (in the Lisp sources), and propagates them automatically elsewhere
@@ -526,3 +520,236 @@ changes in sbcl-0.6.8 relative to sbcl-0.6.7:
   the sources, because they have never saved me trouble and
   they've been source of trouble working with patches and other
   diff-related operations.
+* fixed the PROG1-vs.-PROGN bug in HANDLER-BIND (reported by 
+  ole.rohne@cern.ch on cmucl-help@cons.org 2000-10-25)
+
+changes in sbcl-0.6.9 relative to sbcl-0.6.8:
+
+* DESCRIBE now works on CONDITION objects.
+* The debugger now handles errors which arise when trying to print
+  *DEBUG-CONDITION*, so that it's less likely to fall into infinite
+  regress.
+* The build system now uses an additional file, customize-target-features.lisp,
+  to allow local modifications to the target *FEATURES* list. (The point of
+  this is that now I can set up a custom configuration, e.g. with :SB-SHOW
+  debugging features enabled, without having to worry about propagating it
+  into everyone's system when I do a "cvs update".) When no
+  customize-target-features.lisp file exists, the target *FEATURES* list
+  should be constructed the same way as before.
+* fixed bugs in DEFCONSTANT ANSI-compatibility:
+  ** DEFCONSTANT now tests reassignments using EQL, not EQUAL, in order to 
+     warn about behavior which is undefined under the ANSI spec. Note: This
+     is specified by ANSI, but it's not very popular with programmers.
+     If it causes you problems, take a look at the new SB-INT:DEFCONSTANT-EQX
+     macro in the SBCL sources for an example of a workaround which you
+     might use to make portable ANSI-standard code which does what you want.
+  ** DEFCONSTANT's implementation is now based on EVAL-WHEN instead of on
+     pre-ANSI IR1 translation magic, so it does the ANSI-specified thing
+     when it's used as a non-toplevel form. (This is required in order
+     to implement the DEFCONSTANT-EQX macro.)
+  ** (DEFCONSTANT X 1) (DEFVAR X) (SETF X 2) no longer "works".
+  ** Unfortunately, non-toplevel DEFCONSTANT forms can still do some
+     funny things, due to bugs in the implementation of EVAL-WHEN
+     (bug #IR1-3). This probably won't be fixed until 0.7.x. (Fortunately,
+     non-toplevel DEFCONSTANTs are uncommon.)
+* The core file version number and fasl file version number have been 
+  incremented, because the old noncompliant DEFCONSTANT behavior involved
+  calling functions which no longer exist, and because I also took the
+  opportunity to chop an unsupported slot out of the DEBUG-SOURCE structure.
+* fixed bug 1 (error handling before read-eval-print loop starts), and
+  redid debugger restarts and related debugger commands somewhat while
+  doing so:
+  ** The QUIT debugger command is gone, since it did something
+     rather different than the SB-EXT:QUIT command, and since it never
+     worked properly outside the main toplevel read/eval/print loop.
+     Invoking the new TOPLEVEL restart provides the same functionality.
+  ** The GO debugger command is also gone, since you can just invoke
+     the CONTINUE restart directly instead.
+  ** The TOP debugger command is also gone, since it's redundant with the
+     FRAME 0 command, and since it interfered with abbreviations for the
+     TOPLEVEL restart.
+* The system now recovers better from non-PACKAGE values of the *PACKAGE*
+  variable.
+* The system now understands compound CONS types (e.g. (CONS FIXNUM T))
+  as required by ANSI. (thanks to Douglas Crosher's CMU CL patches, with
+  some porting work by Martin Atzmueller)
+* Martin Atzmueller reviewed the CMU CL mailing lists and came back
+  with a boatload of patches which he ported to SBCL. Now that those
+  have been applied,
+  ** The system tries to make sure that its low-priority messages
+     are prefixed by semicolons, to help people who like to use
+     syntax highlighting in their ILISP buffer. (This patch
+     was originally due to Raymond Toy.)
+  ** The system now optimizes INTEGER-LENGTH better, thanks to more
+     patches originally written by Raymond Toy.
+  ** The compiler understands coercion between single-value and 
+     multiple-VALUES type expressions better, getting rid of some very
+     weird behavior, thanks to patches originally by Robert MacLachlan
+     and Douglas Crosher.
+  ** The system understands ANSI-style non-KEYWORD &KEY arguments in 
+     lambda lists, thanks to a patch originally by Pierre Mai.
+  ** The system no longer bogusly warns about "abbreviated type
+     declarations".
+  ** The compiler gets less confused by inlining and RETURN-FROM,
+     thanks to some patches originally by Tim Moore.
+  ** The system no longer hangs when dumping circular lists to fasl
+     files, thanks to a patch originally from Douglas Crosher.
+* Martin Atzmueller also fixed ROOM, so that it no longer fails with an
+  undefined function error.
+* gave up on fixing bug 3 (forbidden-by-ANSI warning for type mismatch
+  in structure slot initforms) for now, documented workaround instead:-|
+* fixed bug 4 (no WARNING for DECLAIM FTYPE of slot accessor function)
+* fixed bug 5: added stubs for various Gray stream functions called
+  in the not-a-CL:STREAM case, so that even when Gray streams aren't
+  installed, at least appropriate type errors are generated
+* fixed bug 8: better reporting of various PROGRAM-ERRORs
+* fixed bug 9: IGNORE and IGNORABLE now work reasonably and more
+  consistently in DEFMETHOD forms. 
+* removed bug 21 from BUGS, since Martin Atzmueller points out that 
+  it doesn't seem to affect SBCL after all
+* The C runtime system now builds with better optimization and many
+  fewer warnings, thanks to lots of cleanups by Martin Atzmueller.
+
+changes in sbcl-0.6.10 relative to sbcl-0.6.9:
+
+* A patch from Martin Atzmueller seems to have solved the SIGINT
+  problem, and as far as we know, signal-handling now works cleanly.
+  (If you find any new bugs, please report them!)
+* The system no longer defaults Lisp source file names to types
+  ".l", ".cl", or ".lsp", but only to ".lisp". 
+* The compiler no longer uses special default file extensions for
+  byte-compiled code. (The ANSI definition of COMPILE-FILE-PATHNAME
+  seems to expect a single default extension for all compiled code,
+  and there's no compelling reason to try to stretch the standard
+  to allow two different extensions.) Instead, byte-compiled files
+  default to the same extension as native-compiled files.
+* Fasl file format version numbers have increased again, because
+  a rearrangement of internal implementation packages made some 
+  dumped symbols in old fasl files unreadable in new cores.
+* DECLARE/DECLAIM/PROCLAIM logic is more nearly ANSI in general, with
+  many fewer weird special cases.
+* Bug #17 (differing COMPILE-FILE behavior between logical and 
+  physical pathnames) has been fixed, and some related misbehavior too,
+  thanks to a patch from Martin Atzmueller.
+* Bug #30 (reader problems) is gone, thanks to a CMU CL patch
+  by Tim Moore, ported to SBCL by Martin Atzmueller.
+* Martin Atzmueller fixed several filesystem-related problems,
+  including bug #36, in part by porting CMU CL patches, which were
+  written in part by Paul Werkowski.
+* More compiler warnings in src/runtime/ are gone, thanks to 
+  more patches from Martin Atzmueller.
+* Martin Atzmueller pointed out that bug 37 was fixed by his patches
+  some time ago.
+
+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
+* 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)
+
+planned incompatible changes in 0.7.x:
+* The debugger prompt sequence now goes "5]", "5[2]", "5[3]", etc.
+  as you get deeper into recursive calls to the debugger command loop,
+  instead of the old "5]", "5]]", "5]]]" sequence. (I was motivated
+  to do this when ILISP and SBCL got into arguments which left me
+  deeply nested in the debugger.)
+* When the profiling interface settles down, it might impact TRACE.
+  They both encapsulate functions, and it's not clear yet how
+  e.g. UNPROFILE will interact with TRACE and UNTRACE. (This shouldn't
+  matter, though, unless you are using profiling. If you never 
+  profile anything, TRACE should continue to behave as before.)
+* 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
+  names: #\Nul, #\Soh, #\Stx, etc.
+* INTERNAL-TIME-UNITS-PER-SECOND might increase, e.g. to 1000.
+* MAYBE-INLINE will probably go away at some point, maybe 0.7.x,
+  maybe later, in favor of the ANSI-recommended idiom for making
+  a function optionally inline.