1.0.3.39: larger heap size for x86-64/darwin
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 6b3cd62..037579f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,203 @@
 ;;;; -*- coding: utf-8; -*-
+changes in sbcl-1.0.4 relative to sbcl-1.0.3:
+  * new platform: experimental support for x86-64/darwin (MacOS).
+  * incompatible change: the thread-safe (on most platforms) getaddrinfo
+    and getnameinfo sockets functions are used instead of gethostbyaddr
+    and gethostbyname, on platforms where the newer functions are available.
+    As a result, the ALIASES field of HOST-ENT will always be NIL on these
+    platforms.
+  * optimization: code using alien values with undeclared types is much faster.
+  * optimization: the compiler is now able to open code SEARCH in more cases.
+  * optimization: more compact typechecks on x86-64 (thanks to Lutz Euler)
+  * bug fix: >= and <= gave wrong results when used with NaNs.
+  * bug fix: the #= and ## reader macros now interact reasonably with
+    funcallable instances.
+  * bug fix: type-checks for function arguments were compiled using the
+    compiler policy settings of the wrong lexical environment (in 1.0.2
+    and 1.0.3).
+  * bug fix: SHADOW accepts characters as string designators, as required
+    by the spec (thanks to Eric Marsden)
+  * bug fix: fixed GC safety issues when foreign functions are called with
+    non-base strings as arguments
+  * bug fix: more consistent error output for fatal-compiler-warnings, like
+    reader errors
+  * bug fix: functions with proper names were showing up as NIL in
+    backtraces (reported by Edi Weitz, regression in 1.0.2)
+
+changes in sbcl-1.0.3 relative to sbcl-1.0.2:
+  * new platform: NetBSD/PPC.  (thanks to Aymeric Vincent)
+  * optimization: calls of the form (AREF FOO (+ INDEX <constant>)) now
+    produce more efficient code on the x86 if the compiler can determine
+    that (+ INDEX <constant>) does not require a bounds check and FOO
+    has an element type at least 8 bits wide.
+  * bug fix: references to undefined variables are handled the same way
+    in toplevel forms as in the normal compiler
+  * bug fix: the build scripts again work with non-bash /bin/sh (thanks
+    to Magnus Henoch)
+  * bug fix: use "gtar" as the asdf-install *TAR-PROGRAM* on NetBSD
+    (thanks to Jon Buller)
+  * improvement: faster compilation times for complex functions
+  * improvement: added readlink support to SB-POSIX (thanks to Richard
+    M Kreuter)
+
+changes in sbcl-1.0.2 relative to sbcl-1.0.1:
+  * improvement: experimental support for mach exception handling on
+    x86/macos. requires building with :MACH-EXCEPTION-HANDLER feature
+    to use.
+  * improvement: support for GBK external format.
+    (thanks to Chun Tian (binghe))
+  * improvement: the debugger now displays variables that have been closed
+    over, in code compiled with (DEBUG 2) or higher
+  * improvement: support for executable cores on NetBSD (thanks to 
+    Richard Kreuter)
+  * new feature: added a RESTART-FRAME debugger command
+  * new feature: new generic function SB-GRAY:STREAM-FILE-POSITION can 
+    be used to provide an implementation for FILE-POSITION on Gray streams
+    (thanks to Eric Marsden)
+  * new feature: add syslog, openlog and closelog support to SB-POSIX 
+    (thanks to Richard Kreuter)
+  * optimization: the function call overhead in code compiled with 
+    a high DEBUG optimization setting is significantly 
+  * bug fix: an error is signaled for attempts to use READ-SEQUENCE
+    for a (SIGNED-BYTE 8) stream and (UNSIGNED-BYTE 8) vector, or vice versa.
+    (thanks to Tony Martinez)
+  * bug fix: the initforms for DEFMETHOD &AUX parameters are only
+    evaluated once (reported by Kevin Reid)
+  * bug fix: the :SHOW-PROGRESS keyword parameter to SB-SPROF:WITH-PROFILING
+    works again (thanks to Kilian Sprotte)
+  * bug fix: an error is signaled for tagbodies with duplicate tags 
+    (thanks to Stephen Wilson)
+  * bug fix: NIL can be used as a tagbody tag (thanks to Stephen Wilson)
+  * bug fix: Win32 port can now handle foreign code unwinding Lisp
+    stack frames from alien callbacks.
+  * bug fix: ATANH returned incorrect results on win32 (thanks to Pierre Mai)  
+  * bug fix: SBCL works on Linux/ppc systems with a kernel configured to use
+    65k pages (thanks to David Woodhouse)
+  * bug fix: fix SB-POSIX dirent and socket on NetBSD (thanks to Richard Kreuter)
+
+changes in sbcl-1.0.1 relative to sbcl-1.0:
+  * new platform: FreeBSD/x86-64, including support for threading.
+  * new feature: the compiler stores cross-referencing information
+    abount function calls (who-calls), macroexpansion (who-macroexpands)
+    and special variables (who-binds, who-sets, who-references) for code
+    compiled with (< SPACE 3). This information is available through the
+    sb-introspect contrib.
+  * new feature: users may subclass SEQUENCE, and have instances of
+    these classes interoperate with standard Common Lisp functions if
+    a number of methods are defined.  (This feature is experimental
+    and the interface subject to change based on feedback from SBCL
+    users and the general community)
+  * improvement: sb-sprof traces call stacks to an arbitrary depth on
+    x86/x86-64, rather than the previous fixed depth of 8
+  * improvement: another pthread back-end of mutex "pthread-futex".
+  * bug fix: non-ascii command-line arguments are processed correctly 
+    (thanks to Yaroslav Kavenchuk)
+  * bug fix: non-required arguments were not passed correctly when a method
+    defined using DEFMETHOD was called from a mop-generated method using
+    CALL-NEXT-METHOD (reported by Pascal Costanza)
+  * bug fix: recursion is now permitted in accessors through
+    SLOT-UNBOUND.  (reported by Pascal Costanza)
+  * bug fix: an error was signaled at startup if the HOME environment 
+    variable was defined, but had an empty value (reported by Peter Van Eynde)
+  * bug fix: non ordinary lambda-list keyword in ordinary lambda lists
+    signal a PROGRAM-ERROR, not a BUG.
+  * bug fix: SB-POSIX:READDIR works when built with large file support.
+  * bug fix: ENOUGH-NAMESTRING works relative to #p"/" as well. (thanks
+    to Marco Monteiro)
+  * enhancement: DESTRUCTURING-BIND lambda-list uses &BODY instead of &REST
+    for better automatic indentation support. (thanks to Matt Pillsbury)
+  * optimization: loading generic functions no longer takes O(n^2) time,
+    proportional to the amount of methods in the generic function
+    (reported by Todd Sabin and Jeremy Brown)        
+  * optimization: the FIND and POSITION family of sequence functions
+    are significantly faster on arrays whose element types have been
+    declared.
+  * improvements to the Windows port:
+    ** Intermittent heap corruption problems have been fixed. (thanks
+       to Alastair Bridgewater)
+    ** TRACE :ENCAPSULATE NIL (and function end breakpoints)
+       work on Windows.
+    ** Lisp is able to unwind foreign exception frames from alien
+       callbacks. (thanks to Alastair Bridgewater)
+
+changes in sbcl-1.0 relative to sbcl-0.9.18:
+  * improvement: experimental support for threading on FreeBSD/x86.
+    (thanks to NIIMI Satoshi)
+  * improvement: runtime option --dynamic-space-size can be used
+    to set the size of the dynamic space reserved on startup.
+  * improvement: floating point modes in effect are now saved in
+    core, and restored on startup.
+  * improvement: GET-INTERNAL-REAL-TIME now reports the time since
+    startup, not time since first call to GET-INTERNAL-REAL-TIME.
+  * improvement: SAVE-LISP-AND-DIE explicitly checks that multiple
+    threads are not running after *SAVE-HOOKS* have run.
+  * improvement: writes to CLOS instance slots are type-checked in code
+    compiled with (SAFETY 3)
+  * improvement: floating-point exception handling on FreeBSD (thanks to
+    NIIMI Satoshi)
+  * improvement: SB-POSIX supports time(2), utime(2) and utimes(2)
+    (thanks to Zach Beane)
+  * improvement: support for files larger than 2GB for CL streams and SB-POSIX
+    on Linux/x86
+  * improvement: added support for the Shift-JIS external format.
+    (contributed by NIIMI Satoshi)
+  * improvement: callbacks are supported on Linux/PPC.  (thanks to
+    Joshua Ross)
+  * bug fix: compiler bug triggered by a (non-standard) VALUES
+    declaration in a LET* was fixed. (reported by Kaersten Poeck)
+  * bug fix: file compiler no longer confuses validated and already
+    dumped structurres. (reported by Kaersten Poeck)
+  * bug fix: ADJUST-ARRAY :FILL-POINTER T on an array without a
+    fill-pointer signals a type-error as required. (thanks to
+    Lars Brinkhoff)
+  * bug fix: disassemly of funcallable instances works.
+  * bug fix: single stepping on PPC.
+  * bug fix: fix thread-safety problems in the type system (generally 
+    manifesting as nonsensical errors like "STRING is a bad type specifier 
+    for sequences" or "The value 1 is not of type FIXNUM")
+  * bug fix: version components are handled correctly in TRANSLATE-PATHNAME
+    (reported by Josip Gracin)
+  * bug fix: an error is signaled for attempts to displace arrays with
+    incompatible element types (thanks to Mario Mommer)
+  * bug fix: more correct handling of wide characters in debug info
+    (bug reported by Attila Lendvai and fixed by Juho Snellman)
+  * optimization: method calls with &OPTIONAL or &KEY arguments are faster
+    and don't cause extra consing
+  * optimization: MAP and MAP-INTO are significantly faster on vectors
+    whose elements types have been declared.
+  * Improvements to SB-SPROF:
+    ** Support for allocation profiling
+    ** Reduced profiling overhead, especially for long profiling runs
+  * Improvements to the Windows port:
+    ** floating point exceptions are now reported correctly.
+    ** stack exhaustion detection works partially.
+    ** more accurate GET-INTERNAL-REAL-TIME.
+    ** better RUN-PROGRAM behaviour in case of errors in the child
+       process.
+    ** PROBE-FILE now simplifies pathnames correctly.
+    ** DIRECTORY now works correctly with :WILD-INFERIORS.
+    ** DECODE-UNIVERSAL-TIME works on times before 00:00:00 January
+       1st 1970 (although time timezone data will be unreliable).
+    ** Hyperbolic functions TANH, ASINH, ACOSH, and ATANH work.
+
+changes in sbcl-0.9.18 (1.0.beta?) relative to sbcl-0.9.17:
+  * enhancement: SB-POSIX now supports cfsetispeed(3), cfsetospeed(3),
+    cfgetispeed(3), cfgetospeed(3), and related constants. (thanks to
+    Max-Gerd Retzlaff)
+  * bug fix: two potential GC deadlocks affecting threaded builds.
+  * bug fix: (TYPEP #\A '(NOT (MEMBER #\" #\{ #\:))) now correctly
+    returns T (reported by Anton Kazennikov)
+  * bug fix: the STORE-VALUE restart of CHECK-TYPE works correctly
+    with non-variable places
+  * bug fix: remove a race condition in the setting of
+    funcallable-instance functions, this should make threaded CLOS
+    code more stable against memory faults.
+  * bug fix: corruption of specials when unbinding is interrupted by an
+    asynchronous unwind (reported by Hannu Koivisto)
+  * improvement: the debugger will now also display local variables that
+    are only used once, for code compiled with a DEBUG optimization quality
+    of 2 or higher.
+
 changes in sbcl-0.9.17 (0.9.99?) relative to sbcl-0.9.16:
   * feature: weak hash tables, see MAKE-HASH-TABLE documentation
   * incompatible change: External-format support for FFI calls.  The
@@ -13,16 +212,25 @@ changes in sbcl-0.9.17 (0.9.99?) relative to sbcl-0.9.16:
     following unused symbols: *GC-NOTIFY-AFTER*, *GC-NOTIFY-BEFORE*,
     *GC-NOTIFY-STREAM*, *ERROR-PRINT-LENGTH*, *ERROR-PRINT-LEVEL*,
     *ERROR-PRINT-LINES*
+  * incompatible change: the single-stepper is no longer available 
+    on Alpha, Mips and Sparc platforms.
   * minor incompatible change: the direct superclasses of
     SB-MOP:FUNCALLABLE-STANDARD-OBJECT are (FUNCTION STANDARD-OBJECT),
     not (STANDARD-OBJECT FUNCTION).  This makes the
     class-precedence-lists of GENERIC-FUNCTION and
     STANDARD-GENERIC-FUNCTION comply with the requirement of ANSI
     1.4.4.5.
+  * minor incompatible change: the default stream external format on
+    non-unicode SBCL is no longer detected from the locale, but is always
+    ISO-8859-1
   * new feature: Add a version of evaluator that uses an interpreter instead
     of the compiler. EVAL still uses the compiler by default, to switch it
     to use the interpreter, set the value of the variable 
     SB-EXT:*EVALUATOR-MODE* to :INTERPRET.
+  * minor incompatible change: the single-stepper REPL has been merged
+    with the normal debugger (see the "Stepping" heading of the debugger help
+    for more details). The debugger command STEP will no longer switch
+    to the single-stepper REPL. 
   * bug fix: ENOUGH-NAMESTRING on pathnames with no name and a pattern
     for a type now works.
   * bug fix: loading of default sysinit file works. (thanks to Leonid
@@ -38,10 +246,15 @@ changes in sbcl-0.9.17 (0.9.99?) relative to sbcl-0.9.16:
     Gracin).
   * bug fix: timers expiring in dead threads no longer cause a
     type-error (reported by Paul "Nonny Mouse"). 
+  * bug fix: thanks to more lightweight single-stepper instrumentation, 
+    code compiled with (DEBUG 3) will compile and execute significantly faster,
+    and will have more accurate type-inferencing than before
+  * bug fix: SLOT-VALUE optimizations are no longer done on method parameters
+    whose bindings are modified
   * improvements to the win32 port (thanks to Yaroslav Kavenchuk):
-    * bug fix: arguments to RUN-PROGRAM are escaped correctly
-    * replace dummy implementations of CL:MACHINE-INSTANCE and 
-      CL:SOFTWARE-VERSION with proper version
+    ** bug fix: arguments to RUN-PROGRAM are escaped correctly
+    ** replace dummy implementations of CL:MACHINE-INSTANCE and 
+       CL:SOFTWARE-VERSION with proper version
 
 changes in sbcl-0.9.16 relative to sbcl-0.9.15:
   * feature: implemented the READER-METHOD-CLASS and