X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=39819ac165c2590c63a576ef7600c72805df5917;hb=67a805dee41b93fa03c6e72f3d1ce3078dfe88eb;hp=85c2bf735f1393d279e4ee38d6c5308006f47beb;hpb=29dd8b299b1b12eed29e4a67aa378db009e93622;p=sbcl.git diff --git a/NEWS b/NEWS index 85c2bf7..094ae41 100644 --- a/NEWS +++ b/NEWS @@ -1,9 +1,356 @@ ;;;; -*- coding: utf-8; fill-column: 78 -*- -changes relative to sbcl-1.0.45: +changes relative to sbcl-1.0.53: + * minor incompatible changes: + ** RENAME-FILE on a symbolic links used to rename the linked-to file instead + of the link. + ** DELETE-DIRECTORY on symbolic link to a directory used to delete the + directory, but now signal an error instead. Use TRUENAME to resolve + the pathname if you wish to delete the linked directory, and DELETE-FILE + if you wish to delete the + * enchancement: on CHENEYGC targets, SB-KERNEL:MAKE-LISP-OBJ now does + the same validation of pointer objects as GENCGC does, instead of a + comparatively weak bounds-check against the heap spaces. + * enhancement: on win32, ABS of complex floats guards better against + overflows. (lp#888410) + * bug fix: on 64-bit targets, atomic-incf/aref does index computation + correctly, even on wide-fixnum builds. (lp#887220) + * bug fix: (directory "foo/*/*.*") did not follow symlinks in foo/ that + resolved to directories. + * bug fix: SB-KERNEL:MAKE-LISP-OBJ on GENCGC no longer categorically + refuses to create SIMPLE-FUN objects. + * bug fix: type mismatch when assigning to lexical variables no longer + result in fasl-dumping internal type objects. (lp#890750) + * bug fix: type mismatch on (setf aref) and function return values no + longer result in fasl-dumping internal type objects. + +changes in sbcl-1.0.53 relative to sbcl-1.0.52: + * enhancement: on 64-bit targets, in src/compiler/generic/early-vm.lisp, + the parameter n-fixnum-tag-bits may now vary from 1 (fixnum = + (signed-byte 63)) to 3 (fixnum = (signed-byte 61)) at build-time. + * enhancement: SB-EXT:WAIT-FOR allows waiting for arbitrary events. + * minor(?) incompatible(?) change: The default fixnum width on 64-bit + targets is now 63 bits (up from 61). + * enhancement: DESCRIBE now reports a lambda-list and source location + for complext setf-expanders. + * bug fix: PUSH, PUSHNEW, POP, REMF, INCF, DECF, DEFINE-MODIFY-MACRO, + GETF, LOGBITP, LDB, and MASK-FIELD now arrange for non-primary values + of multiple-valued places to be set to NIL, instead of signalling an + error (per a careful reading of CLHS 5.1.2.3). + * bug fix: floating-point traps now work on darwin/x86 and /x86-64. + * bug fix: repair crash in x86oid darwin signal handling emulation + when built with certain compilers. + * bug fix: SB-ROTATE-BYTE misrotated to the right when using constant + rotation arguments on x86-64. (lp#882151) + * bug fix: low-level control flow optimisations could result in bogus + code in functions with tail and non-tail calls to local functions on + x86oids. (lp#883500) + * bug fix: on SPARC/:sb-unicode, avoid crashing the assembler by trying + to emit literal characters > (code-char 4095), for comparisons with + constant characters. + * bug fix: ROOM reported only the low 32 bits of dynamic space usage + on 64 bit platforms. (lp#881445) + * bug fix: DELETE-FILE did not MERGE-PATHNAMES, making it possible to + delete the wrong file when using relative pathnames. (lp#882877) + * bug fix: optimized SEARCH of vectors-on-vectors mishandled zero-length + sequences and :KEY NIL. + +changes in sbcl-1.0.52 relative to sbcl-1.0.51: + * enhancement: ASDF has been updated to version 2.017. + * enhancement: the --core command line option now accepts binaries with + an embedded core. + * enhancement: when built with :sb-core-compression, core files (regular + or executable) can be compressed with zlib. Use the :COMPRESSION + argument to SAVE-LISP-AND-DIE to specify a compression level. + * enhancement: --[no-]merge-core-pages determines whether the runtime + hints the operating system that identical core pages between SBCL + processes should share the same physical memory. Default is to only + enable this for compressed cores. + * optimization: SLEEP no longer conses. + * optimization: *PRINT-PRETTY* no longer slows down printing of strings + or bit-vectors when using the standard pretty-print dispatch table. + * bug fix: non-function FTYPE declarations no longer cause a compiler-error. + (lp#738464) + * bug fix: compiler-errors causes by MEMBER types in conjunction with with + AREF, CHAR, etc. (lp#826971) + * bug fix: compiler-errors causes by integer arguments with composed of + multiple ranges to ARRAY-IN-BOUNDS-P. (lp#826970) + * bug fix: ,@ and ,. now signal a read-time error for certain non-list + expressions. (lp#770184) + * bug fix: complex single float literals are correctly aligned when used + as arguments of arithmetic operators. + * bug fix: on 32-bit platforms, rounding of double floats larger than a + fixnum is correct. (reported by Peter Keller) + * bug fix: stray FD-HANDLERs are no longer left lying around after unwinds + from RUN-PROGRAM. (lp#840190, reported by Dominic Pearson; fix from Max + Mikhanosha) + * bug fix: redefining classes such that slots with custom allocation are + added or removed works again. + +changes in sbcl-1.0.51 relative to sbcl-1.0.50: + * minor incompatible change: SB-BSD-SOCKET socket streams no longer + participate in SERVE-EVENT by default: pass :SERVE-EVENTS T to + MAKE-SOCKET-STREAM if using SERVE-EVENT. + * enhancement: added support for socket keepalive timeout intervals + and probe counts on Linux. + * enhancement: building 32-bit SBCL on Linux/x86-64 now works without a + chroot. (Use "SBCL_ARCH=x86 sh make.sh" to build.) + * enhancement: added new toplevel options --quit and --non-interactive + (lp#822712). + * enhancement: the Windows port of SBCL now builds and runs on Wine + (thanks to Anton Kovalenko). + * enhancement: more, and more correct, SSE instruction definitions on + x86-64 (thanks to Alexander Gavrilov). + * enhancement: SB-EXT:SPIN-LOOP-HINT assembles to an instruction designed + to help the processor execute spin loops, when applicable. Currently + implemented for x86 and x86-64. + * optimization: unsigned integer divisions by a constant are implemented + using multiplication (affects CEILING, FLOOR, TRUNCATE, MOD, and REM.) + * optimization: improved type-derivation for LOAD-TIME-VALUE. + * bug fix: correct RIP offset calculation in SSE comparison and shuffle + instructions. (lp#814688) + * bug fix: COERCE to unfinalized extended sequence classes now works. + (reported by Jan Moringen; lp#815155) + * bug fix: a compiler error during typecheck generation, reported by Eric + Marsden. (lp#816564) + * bug fix: obsolete instance protocol fires when shared slots are added + or removed. + * bug fix: fixed-format floating point printing with scaling factors. + (lp#811386) + * bug fix: using GCC >= 4.6 to build SBCL on x86 no longer breaks + backtraces. (lp#818460) + * bug fix: better backtraces for interrupted syscall frames on x86. + (lp#549673) + * bug fix: SSE comparison instructions can be disassembled even when one + operand is in memory. (lp#814702) + * bug fix: incomplete writes when not using SERVE-EVENTS. (lp#820599) + * bug fix: MULTIPLE-VALUE-BIND + VALUES -> LET conversion could lose derived + type information associated with the VALUES form. + * bug fix: broken warnings/errors for type-errors involving LOAD-TIME-VALUE + forms. (lp#823014) + * bug fix: OPEN :IF-EXISTS :APPEND now returns correct FILE-POSITION before + first write (lp#561642). + * bug fix: compiled closures from EVAL could not be DESCRIBEd. (lp#824974) + * bug fix: bound propagation involving conversion of large bignums to + floats no longer signals a SIMPLE-TYPE-ERROR, reported by Lutz Euler. + (lp#819269) + * bug fix: &REST to &MORE conversion still works in unsafe call to known + functions; reported by Lutz Euler (lp#826459). + * bug fix: bogus deadlocks from interrupts and GCs. (lp#807475, regression + since 1.0.48) + +changes in sbcl-1.0.50 relative to sbcl-1.0.49: + * enhancement: errors from FD handlers now provide a restart to remove + the offending handler. + * enhancement: SB-INTROSPECT:FIND-DEFINITION-SOURCE now works on structure + copiers as well. + * enhancement: location of user or system initialization file can now easily + be customized for saved cores. See: SB-EXT:*USERINIT-PATHNAME-FUNCTION* + and SB-EXT:*SYSINIT-PATHNAME-FUNCTION*. + * enhancement: SB-EXT:MAKE-THREAD accepts an argument list designator for + the thunk, as a keyword argument, :arguments. + * enhancement: constraint propagation is simplified (and sped up) when + COMPILATION-SPEED > SPEED. + * enhancement: SB-ALIEN exports alien type specifiers SIZE-T and OFF-T. + * enhancement: debugger understands &MORE arguments better. + * optimization: extracting bits of a single-float on x86-64 has been + optimized. (lp#555201) + * optimization: MAP and MAP-INTO are more efficient for non-simple vectors, + when (> SPEED SPACE). + * optimization: local call trampolines (x86 and x86-64) are emitted + inline. + * optimization: implicit value cells for dynamic-extent closed-over bindings + on x86 and x86-64 can hold unboxed values as well. + * meta-optimization: improved compilation speed, especially for large + functions. (lp#792363 and lp#394206) + * bug fix: bound derivation for floating point operations is now more + careful about rounding possibly closing open bounds. (lp#793771) + * bug fix: SB-POSIX:SYSCALL-ERROR's argument is now optional. (accidental + backwards incompatible change in 1.0.48.27) + * bug fix: occasional debugger errors in when a type-error occured in a + function with dynamic-extent &rest list. + * bug fix: &optional and &key supplied-p arguments in DEFSTRUCT + boa-construtors can be used to initialized structure slots. + * bug fix: FMAKUNBOUND removes the MACRO-FUNCTION, should one exist. + (lp#795705, regression) + * bug fix: DIRECTORY works better on logical pathnames. + * bug fix: RUN-PROGRAM no longer fails spuriously when argument strings + are of the order of ARRAY-TOTAL-SIZE-LIMIT. (lp#787237) + * bug fix: the compiler no longer constant-folds NaNs in + MAKE-{SINGLE,DOUBLE}-FLOAT. (lp#486812) + * bug fix: FORMAT now handles floating point rounding correct, eg. + (format nil "~,1F" 0.01) => "0.0" instead of "0.01" as previously. + (lp#308961) + * bug fix: style warning during lambda-list introspection of generic + functions with both optional and key argments. + * bug fix: regalloc doesn't barf on unused TNs due to type-directed constant + folding. (lp#729765) + * bug fix: Fixed an off-by-one in MAP-ALLOCATED-OBJECTS that might have caused + infinite loops. + +changes in sbcl-1.0.49 relative to sbcl-1.0.48: + * minor incompatible change: WITH-LOCKED-HASH-TABLE no longer disables + interrupts for its body. + * enhancement: source locations are now available for files loaded as + source, compile-time-too evaluation, and initialization files. + * enhancement: WITH-COMPILATION-UNIT :SOURCE-NAMESTRING allows providing + virtual source-file information, eg. overriding input-file of COMPILE-FILE + when a temporary file is used for compilation. + * enhancement: ASDF has been updated to version 2.015.3. + * enhancement: backtraces involving frames from the default evaluator are + more readable. + * enhancement: RUN-PROGRAM works with user-defined binary input and output + streams. + * enhancement: more informative compile-time warnings and runtime errors for + type-errors detected at compile-time. + * enhancement: deadlock detection for mutexes and spinlocks. + * enhancement: dynamic-extent for &rest lists stack allocate only their + spines, not their argumets. While portable code should not rely on this, + particularly in combination with inlining, it should make dynamic-extent + easier to use safely. + * enhancement: SB-POSIX improvements: + ** WNOHANG and WUNTRACED are exported. + ** SYSCALL-ERROR now also provides the name of the failing system call. + * enhancement: --script improvements: + ** errors on standard input, output, and error streams are handled and + cause scripts to exit silently, making them easier to use in shell + pipelines. + ** backtraces from scripts now go to standard error instead of the + terminal even if one is available. + ** --script can be an argument, causing the script to be loaded from + standard input. + * enhancement: MAKE-ALIEN-STRING provides an easy way to transport lisp + strings to foreign memory. + * enhancement: (SETF GC-LOGFILE) allows logging garbage collections to + a file, making it easier to understand heap dynamics. + * optimization: using a &REST argument only in APPLY or VALUES-LIST calls + allows the compiler to automatically elide rest-list allocation so long as + the call sites are in functions that the compiler knows cannot escape. + (lp#504575) + * optimization: CALL-NEXT-METHOD using explicit arguments is faster, + especially in safe code when none of the required arguments have changed + their identities. + * bug fix: blocking reads from FIFOs created by RUN-PROGRAM were + uninterruptible, as well as blocking reads from socket streams created + with for which :SERVE-EVENTS NIL. (regression from 1.0.42.43) + * bug fix: SET-SYNTAX-FROM-CHAR now removes dispatch-macro character syntax + from the to-char if the from-char is not a dispatch-macro character. + * bug fix: references to undefined variables in function calls that are + optimized away now signal a runtime error. (lp#722734) + * bug fix: miscompilation of MULTIPLE-VALUE-CALL when asserting derived + types from a function defined in the same file. (regression from + 1.0.43.57) + * bug fix: TRULY-THE forms are now macroexpandable and setf-expandable. + (lp#771673) + * bug fix: spurious errors during QUIT when standard streams were closed. + +changes in sbcl-1.0.48 relative to sbcl-1.0.47: + * incompatible change: SB!KERNEL:INSTANCE-LAMBDA, deprecated for over five + years, is now no longer supported. + * enhancement: read() and write() have been added to SB-POSIX. + * enhancement: types of DEFSTRUCT constructors are proclaimed more + accurately, allowing better typechecking of call-sites. + * enhancement: errors during compile-time-too processing (i.e. EVAL-WHEN) + are no longer caught. (reverted to pre 1.0.34 behaviour) + * optimization: slightly faster ISQRT. (lp#713343) + * bug fix: better support for Solaris /bin/sh in sh-based tests. + * bug fix: TRACE behaves better when attempting to trace undefined + functions. (lp#740717) + * bug fix: missed optimizations for (FUNCALL (LAMBDA ...) ...) in comparison + to (FUNCALL #'(LAMBDA ...) ...). + * bug fix: ((LAMBDA ...) ...) forms with invalid argument counts resulted in + a compile-time error. (lp#720382) + * bug fix: forms such as (FUNCALL (FUNCTION NAME OOPS) ...) were compiled + without complaints. + * bug fix: less verbose source forms for functions from EVAL. (lp#747485) + * bug fix: sense of SLOT-BOUNDP-USING-CLASS was inverted in a MAKE-INSTANCE + optimization. (regression from 1.0.45.18/1.0.46.15) + * bug fix: package locks did not protects against compile-time side-effects + of DEFUN. (lp#675584) + * bug fix: --dynamic-space-size argument is validated more carefully. + (lp#721457) + * bug fix: memory fault from printing a malformed simple-condition. + (lp#705690) + * bug fix: redefining classes so that slot-definition classes change now + engages the obsolete instance protocol. (lp#766271) + * bug fix: constant improper lists could break source coverage recording. + (lp#767959) + * bug fix: compiling calls to eg. MEMBER with massive constant list arguments + could exhaust stack. + +changes in sbcl-1.0.47 relative to sbcl-1.0.46: + * bug fix: fix mach port rights leaks in mach exception handling code on + darwin/x86 and /x86-64. (thanks to Willem Oudshoorn for motivation and the + initial patch) + * enhancement: --script muffles style-warnings and compiler notes. (lp#677779) + * enhancement: redefinition warnings for macros from different files. (lp#434657) + * enhancement: better MACHINE-VERSION on Darwin x86 and x86-64. (lp#668332) + * enhancement: (FORMAT "foo" ...) and similar signal a compile-time warning. (lp#327223) + * enhancement: no more "in: LAMBDA NIL" messages from the compiler for forms + processed using EVAL -- now the appropriate toplevel form is reported instead. + * enhancement: more legible style-warnings for inappropriate IGNORE and IGNORABLE + declarations. (lp#726331) + * enhancement: :NOT-NULL option has been added to alien C-STRING type to indicate + that NIL/NULL is excluded from the type. + * enhancement: SB-INTROSPECT:MAP-ROOT allows mapping over pointers contained in + arbitrary objects. + * optimization: SLOT-VALUE &co are faster in the presence of SLOT-VALUE-USING-CLASS + and its compatriots. + * optimization: core startup time is reduced by 30% on x86-64. (lp#557357) + * bug fix: SB-DEBUG:BACKTRACE-AS-LIST guards against potentially leaking + stack-allocated values out of their dynamic-extent. (lp#310175) + * bug fix: attempts to use SB-SPROF for wallclock profiling on threaded + x86-64 builds caused a type-error. + * bug fix: calling COMPILE with something else than a lambda-expression as the + second argument reports a more sensible error. (lp#718905) + * bug fix: invalid combinations of :PREDICATE and :TYPE options in DEFSTRUCT + are detected. (lp#520607) + * bug fix: constant keyword argument checking didn't take :ALLOW-OTHER-KEYS + into account. + * bug fix: SLOT-BOUNDP information is correct during MAKE-INSTANCE in the + presence of (SETF SLOT-VALUE-USING-CLASS) and SLOT-BOUNDP-USING-CLASS + methods. (regression from 1.0.45.18) + * bug fix: INITIALIZE-INSTANCE :AROUND methods supplying initargs via + CALL-NEXT-METHOD work correctly. (regression from 1.0.45.19) + * bug fix: several foreign functions accepting string also accepted NIL and + consequently caused a memory fault at 0 now signal a type-error instead. + (lp#721087) + * bug fix: under rare circumstances, constraint propagation could rewrite a + variable reference to refer to a variable not in scope, causing an error + during physical environment analysis when attempting to close over the + variable. (lp#551227) + * bug fix: SIMPLE-CONDITION :FORMAT-CONTROL defaults to NIL. + +changes in sbcl-1.0.46 relative to sbcl-1.0.45: + * enhancement: largefile support on Solaris. + * enhancement: SB-PROFILE:REPORT now supports :LIMIT and :PRINT-NO-CALL-LIST + arguments (lp#710017) + * enhancement: SB-PCL:+SLOT-UNBOUND+ is exported, making it possible to + distinguish unbound instance slots when using STANDARD-INSTANCE-ACCESS + &co. (lp#718039) + * optimization: ERROR and CERROR are approximately 5 times faster. + * optimization: optimized constructors are used for MAKE-INSTANCE of classes + with applicable non-standard (SETF SLOT-VALUE-USING-CLASS), + SLOT-BOUNDP-USING-CLASS, and INITIALIZE-INSTANCE :AROUND methods, speeding + up instance creation in those cases. + * optimization: arithmetic operations with multiple constant arguments in now + have them reduced at compile-time. (lp#676414) + * optimization: determining current character position on string-streams for + pretty-printing was overly slow. * bug fix: local tail calls to DYNAMIC-EXTENT functions can no longer cause lifetime analysis to overwrite closed-over variables (lp#681092). * bug fix: encoding errors from some multibyte external formats such as EUC-JP were not handled correctly (lp#713063). + * bug fix: printing waitqueue objects without setting *PRINT-CIRCLE* to T is now + safe (lp#673630). + * bug fix: Solaris/x86-64 wasn't getting built with lutex support by + mistake. (lp#667297). + * bug fix: CONSTANTLY generated functions had bogus lambda-lists. (lp#713626) + * bug fix: RUN-PROGRAM :PTY option was racy on OpenBSD. (lp#669485) + * bug fix: UNINTERN takes a symbol, not a symbol designator -- could previously + unintern the wrong symbol with the same name. (lp#693796) + * bug fix: COPY-PPRINT-DISPATCH always has access to a pristine table, + making it possible to restore the initial table if it has been messed up. + (lp#678409) changes in sbcl-1.0.45 relative to sbcl-1.0.44: * enhancement: ~/ and ~user/ are treated specially in pathnames.