~ chicken-core (chicken-5) 63c01978f46d87095172cc0a8b1ee35818018108
commit 63c01978f46d87095172cc0a8b1ee35818018108 Author: Ivan Raikov <raikov@oist.jp> AuthorDate: Wed May 11 12:26:06 2011 +0900 Commit: Ivan Raikov <raikov@oist.jp> CommitDate: Wed May 11 12:26:06 2011 +0900 consolidated NEWS file diff --git a/NEWS b/NEWS index c38f7cdd..86daae07 100644 --- a/NEWS +++ b/NEWS @@ -1,13 +1,5 @@ -4.6.7 +4.7.0rc2 -- Core libraries - - Fixed pretty-printer output of certain escaped character sequences - inside strings (thanks to Mario Domenech Goulart, thanks to Kon Lovett - for pointing out a missing test-file) -- Runtime system - - Fixed typo in "runtime.c" (thanks to Sven Hartrumpf) - -4.6.6 - Build system - On BSD, libchicken.so is linked with -lpthread, as this seems @@ -18,25 +10,47 @@ in the same prefix; to avoid conflicts with existing CHICKEN headers, it is recommended to completely remove any old installation before installing the new version -- Compiler - - Removed unreliable lambda-lifting optimization (now, really!); - the "-lambda-lift" option is still accepted but produces a - warning - - When "-scrutinize" is given, installed ".types" files will be - automatically consulted for extensions and used units - - Fixed optimizer bug in handling of "let" forms with multiple - bindings which could result in toplevel assignments being - silently dropped (reported by Moritz Heidkamp) -- Syntax expander - - For-syntax syntax definitions where not correctly retained inside - modules - - Peter Bex fixed various critical bugs in the expander - - The simplification for quasiquote expressions was unable - to handle certain circular data (reported by Moritz Heidkamp) -- Interpreter - - The ",m" toplevel command now accepts "#f" to switch back to - the initial empty module context (suggested by Christian Kellermann) + - the PROGRAM_PREFIX and PROGRAM_SUFFIX configuration settings + are applied to generated files and directories which allows + perform differently named installations into the same PREFIX + - increaded binary-compatibility version from 5 to 6, which + means installed extensions in an existing installations will + have to be re-installed + - bugfixes in mingw/msys makefiles + - Sven Hartrumpf contributed a bugfix to the internal helper + script for creating distribution directories + - Peter Bex has cleaned up the makefiles heavily, making the + build more maintainable and easier to modify; thanks to all + who helped testing this new build + - renamed the makefile to `GNUmakefile' to catch using the + a make(3) other than GNU make + - configuration-header fix for BSD systems (thanks to Peter Bex + and Christian Kellermann) + + - Core libraries + - the `regex' library unit has been removed and is separately + available as an extension which should be fully backwards- + compatible + - `irregex' is now a core library unit and replaces the `regex' API + - "extras" unit + - fixed pretty-printer output of certain escaped character + sequences inside strings (thanks to Mario Domenech Goulart, + thanks to Kon Lovett for pointing out a missing test-file) + - The pretty printer did not escape some control characters correctly + (reported by Alan Post) + - control-characters in symbol-names are now properly escaped if + the symbol is printed readably (thanks to Alaric Snell-Pym + for pointing this out) + - the deprecated `random-seed' function has been removed + - "files" unit + - fixed bug in `normalize-pathname' + - `file-copy' and `file-move' check whether the source-file is a + directory + - `delete-directory' now optionally deletes directories recursively + - "irregex" unit + - Peter Bex has contributed various bugfixes and performance + enhancements - "library" unit - Added "condition->list" (thanks to Christian Kellermann) - The reader accepts now escaped octal character codes in string @@ -45,47 +59,62 @@ - R5RS output output routines now always return a "void" result - "\|" was not correctly escaped when occurring inside symbol print names - - "extras" unit - - The pretty printer did not escape some control characters correctly - (reported by Alan Post) + - added `condition->list', contributed by Christian Kellermann + - added `equal=?' + - removed deprecated `getenv', `left-section', `right-section', + `project', `c-runtime' and `noop' + - added missing import-library entry for `vector-copy!' (thanks + to Jules Altfas) + - circular or excessively deeply nested data generates a more + useful error message when encountered by `equal?' + - `list-tail' gives now a better error message when passed a + non-list argument + - fixed bug in `getter-with-setter' that modified the first + argument if it already had a setter procedure attached + - fixed incorrect size of internal data vector used in `time' + (thanks to Kon Lovett) + - "lolevel" unit + - removed deprecated `global-bound?', `global-make-unbound', + `global-ref' and `global-set!' procedures + - added support for `pointer-vectors': + - make-pointer-vector + - pointer-vector? + - pointer-vector-length + - pointer-vector-ref + - pointer-vector-set! - "posix" unit - "close-input-pipe" did not return the status code of a terminated process on Windows (reported by Mario Domenech Goulart) + - added `file-creation-mode' (suggested by Mario Domenech Goulart) + - "setup-api" unit + - `required-extension-version' and `required-chicken-version' have + been deprecated + - "srfi-18" unit + - removed deprecated `milliseconds->time' and `time->milliseconds' + procedures + - `make-mutex' incorrectly created mutexes as initially owned by + the current threads (thanks to Joerg Wittenberger) + - the file-descriptor handling in the scheduler has been simplified + and performs some sanity checks + - deadlock in the scheduler now terminates the process instead of + attempting to throw an error + - added some sanity checks to the scheduler - "tcp" unit - Fixed bug in "tcp-abandon-port" (reported by Jim Ursetto) -- Tools - - The "-deploy" option did not copy the correct library (including - the version-number) (thanks to Christian Kellermann) -- Runtime-system - - Little-endian detection on MIPS systems was not correct (thanks - to Christian Kellermann) - - Fixed bug in handling of runtime-options with arguments (also - reported by Christian Kellermann) -- Foreign function interface - - Added support for missing "(const [XXX-]c-string)" foreign type - (thanks to Moritz Heidkamp) -- Documentation - - Added list of installed files to README - - Documented remaining "c...r" standard procedures (thanks to - Juergen Lorenz) - -4.6.5. - -- NEWS file corrections + - "utils" unit + - `compile-file' now returns `#f' when the compilation fails, + instead of raising an error -4.6.4 -- Build system - - the PROGRAM_PREFIX and PROGRAM_SUFFIX configuration settings - are applied to generated files and directories which allows - perform differently named installations into the same PREFIX - - increaded binary-compatibility version from 5 to 6, which - means installed extensions in an existing installations will - have to be re-installed - - bugfixes in mingw/msys makefiles - - Sven Hartrumpf contributed a bugfix to the internal helper - script for creating distribution directories - Compiler + - Removed unreliable lambda-lifting optimization (now, really!); + the "-lambda-lift" option is still accepted but produces a + warning + - When "-scrutinize" is given, installed ".types" files will be + automatically consulted for extensions and used units + - Fixed optimizer bug in handling of "let" forms with multiple + bindings which could result in toplevel assignments being + silently dropped (reported by Moritz Heidkamp) - the `-accumulate-profile' option did not provide a way to specify the target profile data file - now `-profile-name' must always be given when accumulated profiling is done @@ -106,27 +135,60 @@ Alan Post) - Kon Lovett reported numerous bugs in the type-database used by the scrutinizer -- Syntax expander - - `syntax-rules' now supports tail-patterns and is now fully - SRFI-46 compatible - many thanks to Peter Bex for implementing - this - - Peter Bex provided a bugfix for resolution of primitive imports - - handling of internal definitions with shadowed defining - forms is now done correctly - fix once again from Peter Bex - - corrected non-standard behaviour of quasiquote with respect - to nested quasiquotations - another bugfix by our mighty macro - master - - removed stub-implementation of `define-macro' - - handled case where a global redefinition of `cons' influenced - a non-inlined internal use in the expander (thanks to David - Steiner) + - `-fwrapv' is disabled on OpenBSD, since the default compiler + does not support this option (thanks to Christian Kellermann) + - on Solaris `gcc' is used by default, override `C_COMPILER' + to use the Sun compiler instead + - declaring a function `notinline' will prevent direct-call + optimization for known procedure calls + - the implementation of overflow-detection for arithmetic operations + on fixnums have been replaced and now allow using the full 63-bit + range of fixnums on 64-bit systems + - fixed serious inlining-bug (thanks to Sven Hartrumpf) + - constant-folding in the compiler has been simplified and + is more reliable (thanks to Sven Hartrumpf) + - optimization-levels 3 and higher imply `-unboxing -inline-global' + - added new declaration `unsafe-specialized-arithmetic' which allows + optimizing unboxed floating-point arithmetic in safe mode + - removed `scrutinize' declaration + - the warning shown when unimported identifiers are used in compiled + modules now also shows the name of the procedure where the + identifier is referenced (suggested by Alaric Snell-Pym) + + +- Documentation + - Added list of installed files to README + - Documented remaining "c...r" standard procedures (thanks to + Juergen Lorenz) + - The manual is now installed in HTML format in + PREFIX/share/chicken/doc, many thanks to Jim Ursetto for + contributing is excellent `manual-labor' extension which made + this possible + + - Foreign function interface + - Added support for missing "(const [XXX-]c-string)" foreign type + (thanks to Moritz Heidkamp) - removed deprecated `pointer', `nonnull-pointer', `byte-vector' and `nonnull-byte-vector' types - added missing result-type handling for `unsigned-integer64' (thanks to Moritz Heidkamp) - added `foreign-type-size' macro + - added the new foreign type `size_t' (suggested by Moritz + Heidkamp) + - added the missing `unsigned-integer64' foreign type (thanks + to Moritz for catching this) + - added new foreign type `pointer-vector' which maps to `void **' + and provided a low-level API in the `lolevel' library unit for + manipulating pointer vectors + + - Runtime system + - Fixed typo in "runtime.c" (thanks to Sven Hartrumpf) + - Little-endian detection on MIPS systems was not correct (thanks + to Christian Kellermann) + - Fixed bug in handling of runtime-options with arguments (also + reported by Christian Kellermann) - `equal?' does not compare procedures recursively anymore - fixed incorrect use of alloca.h on OpenBSD (thanks to Christian Kellermann and Alan Post) @@ -146,7 +208,55 @@ - repaired broken handling of multiple finalizers that referred to the same object (reported by Moritz Heidkamp) - fixed problem with reader and escaping of single-char symbols + + +- Syntax expander + - For-syntax syntax definitions where not correctly retained inside + modules + - Peter Bex fixed various critical bugs in the expander + - The simplification for quasiquote expressions was unable + to handle certain circular data (reported by Moritz Heidkamp) + - `syntax-rules' now supports tail-patterns and is now fully + SRFI-46 compatible - many thanks to Peter Bex for implementing + this + - Peter Bex provided a bugfix for resolution of primitive imports + - handling of internal definitions with shadowed defining + forms is now done correctly - fix once again from Peter Bex + - corrected non-standard behaviour of quasiquote with respect + to nested quasiquotations - another bugfix by our mighty macro + master + - removed stub-implementation of `define-macro' + - handled case where a global redefinition of `cons' influenced + a non-inlined internal use in the expander (thanks to David + Steiner) + - `define-record' now allows defining SRFI-17 setter procedures + for accessing slots + - the expansion of DSSSL lambda-lists uses now `let-optionals*' + internally instead of `let-optionals' and so allows + back-references to earlier formal variables; this also results in + faster and more compact code for argument-list destructuring + (thanks to Alan Post) + - new "implicit renaming" macro facility contributed by Peter Bex + (see `ir-macro-transformer') + - record-definitions are now made local to the module in which + they are defined (thanks to Jim Ursetto) + - parameters are now settable and can be modified using `set!' + (SRFI-17) + - added a SRFI-17 setter to `list-ref' + - added literal blob syntax ("#{ ... }") + + - Tools + - chicken-install + - option "-deploy" does not compile deployed extensions with + "-setup-mode" anymore to avoid problems with dynamic loading on + some platforms (specifically Mac OS X) + - option "-deploy" option did not copy the correct library + (including the version-number) (thanks to Christian Kellermann) + - added support for proxy-authentification (thanks to Iruata Souza) + - when installing from a local directory `chicken-install' now + removes existing `*.so' files in that location to avoid stale + binaries when the `make' syntax is used in setup scripts - chicken-bug - removed disabled e-mail support - csc @@ -154,146 +264,20 @@ - removed deprecated `-windows' option - fixed incorrect use of `chicken.rc' on non-Windows platforms in `-gui' mode (thanks to "ddp") + - when compiling in C++ mode, the compiler will be called with the + `-Wno-write-strings' option + - `-frwapv' has been added to the default C compiler options - csi + - the ",m" toplevel command now accepts "#f" to switch back to + the initial empty module context (suggested by Christian Kellermann) - fixed broken `,g' toplevel command - deprecated `script' feature identifier (use `chicken-script' instead) -- Libraries - - unit `library' - - added `condition->list', contributed by Christian Kellermann - - added `equal=?' - - removed deprecated `getenv', `left-section', `right-section', - `project', `c-runtime' and `noop' - - added missing import-library entry for `vector-copy!' (thanks - to Jules Altfas) - - circular or excessively deeply nested data generates a more - useful error message when encountered by `equal?' - - unit `files' - - fixed bug in `normalize-pathname' - - unit `lolevel' - - removed deprecated `global-bound?', `global-make-unbound', - `global-ref' and `global-set!' procedures - - unit `posix' - - added `file-creation-mode' (suggested by Mario Domenech Goulart) - - unit `srfi-18' - - removed deprecated `milliseconds->time' and `time->milliseconds' - procedures - - `make-mutex' incorrectly created mutexes as initially owned by - the current threads (thanks to Joerg Wittenberger) - - unit `utils' - - `compile-file' now returns `#f' when the compilation fails, - instead of raising an error -- Documentation - - The manual is now installed in HTML format in - PREFIX/share/chicken/doc, many thanks to Jim Ursetto for - contributing is excellent `manual-labor' extension which made - this possible + - options `-p' and `-P' and `-e' imply `-no-init' + - the call-trace reported will not include exception-handler code + anymore (suggested by Christian Kellermann) + -4.6.3 - -- Peter Bex has cleaned up the makefiles heavily, making the - build more maintainable and easier to modify; thanks to all - who helped testing this new build -- renamed the makefile to `GNUmakefile' to catch using the - a make(3) other than GNU make -- `-fwrapv' is disabled on OpenBSD, since the default compiler - does not support this option (thanks to Christian Kellermann) -- on Solaris `gcc' is used by default, override `C_COMPILER' - to use the Sun compiler instead -- added the new foreign type `size_t' (suggested by Moritz - Heidkamp) -- added the missing `unsigned-integer64' foreign type (thanks - to Moritz for catching this) -- added support for proxy-authentification to `chicken-install' - (thanks to Iruata Souza) -- `define-record' now allows defining SRFI-17 setter procedures - for accessing slots -- removed the stub definition for `define-macro' -- added new foreign type `pointer-vector' which maps to `void **' - and provided a low-level API in the `lolevel' library unit - for manipulating pointer vectors -- declaring a function `notinline' will prevent direct-call - optimization for known procedure calls -- when compiling in C++ mode, the compiler will be called with - the `-Wno-write-strings' option -- the expansion of DSSSL lambda-lists uses now `let-optionals*' - internally instead of `let-optionals' and so allows back-references - to earlier formal variables; this also results in faster and - more compact code for argument-list destructuring (thanks to Alan - Post) -- Peter Bex has contributed various bugfixes and performance - enhancements to the `irregex' library unit -- fixed bug in `getter-with-setter' that modified the first argument - if it already had a setter procedure attached -- added a SRFI-17 setter to `list-ref' -- control-characters in symbol-names are now properly escaped if - the symbol is printed readably (thanks to Alaric Snell-Pym Blagrave - for pointing this out) -- added literal blob syntax ("#{ ... }") -- `delete-directory' now optionally deletes directories recursively -- fixed incorrect size of internal data vector used in `time' - (thanks to Kon Lovett) -- `list-tail' gives now a better error message when passed a non-list - argument -- deadlock in the scheduler now terminates the process instead of - attempting to throw an error -- added some sanity checks to the scheduler -- when installing from a local directory `chicken-install' now removes - existing `*.so' files in that location to avoid stale binaries when - the `make' syntax is used in setup scripts - -4.6.2 - -- the `regex' library unit has been removed and is separately - available as an extension which should be fully backwards- - compatible -- `irregex' is now a core library unit and replaces the - `regex' API -- `-frwapv' has been added to the default C compiler options -- configuration-header fix for BSD systems (thanks to Peter Bex - and Christian Kellermann) -- added support for `pointer-vectors' (unit `lolevel'): - make-pointer-vector - pointer-vector? - pointer-vector-length - pointer-vector-ref - pointer-vector-set! -- added new foreign type `poiner-vector' which maps to `void **' -- new "implicit renaming" macro facility contributed by Peter Bex - (see `ir-macro-transformer') -- the warning shown when unimported identifiers are used in - compiled modules now also shows the name of the procedure where - the identifier is referenced (suggested by Alaric Snell-Pym) -- the deprecated `random-seed' function has been removed -- parameters are now settable and can be modified using `set!' - (SRFI-17) -- the implementation of overflow-detection for arithmetic operations - on fixnums have been replaced and now allow using the full 63-bit - range of fixnums on 64-bit systems -- fixed serious inlining-bug (thanks to Sven Hartrumpf) - -4.6.1 - -- record-definitions are now made local to the module in which - they are defined (thanks to Jim Ursetto) -- added new declaration `unsafe-specialized-arithmetic' which - allows optimiizing unboxed floating-point arithmetic in safe - mode -- optimization-levels 3 and higher imply `-unboxing -inline-global' -- removed `scrutinize' declaration -- the csi options `-p' and `-P' and `-e' imply `-no-init' -- in csi, the call-trace reported will not include exception- - handler code anymore (suggested by Christian Kellermann) -- `file-copy' and `file-move' (`files' unit) check whether the - source-file is a directory -- the file-descriptor handling in the scheduler has been simplified - and performs some sanity checks -- `global-bound?', `global-ref`, `global-set!' and `global-make-unbound!' - (`lolevel' unit) have been deprecated -- `required-extension-version' and `required-chicken-version' - (`setup-api' module) have been deprecated -- constant-folding in the compiler has been simplified and - is more reliable (thanks to Sven Hartrumpf) 4.6.0Trap