9b2398f67c
Provided by Peter Bex on IRC. Changes in 4.7.0 - Build system - On BSD, libchicken.so is linked with -lpthread, as this seems to be required for linking libraries that require pthreads - The C header-files are now installed in a subdirectory below the "PRFIX/include" directory to allow installation of multiple chickens with different PROGRAM_PREFIX/PROGRAM_SUFFIX settings 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 - 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 literals - Read-syntax can return zero values to indicate ignored objects - R5RS output output routines now always return a "void" result - "\|" was not correctly escaped when occurring inside symbol print names - 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) - "utils" unit - `compile-file' now returns `#f' when the compilation fails, instead of raising an error - 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 (thanks to Taylor Venable) - added `-module' option, which wraps the code into an implicit module - removed check for unsafe toplevel calls in safe mode - intrinsic handling of `exact->inexact' and `string->number' is now more efficient - fixed bug in leaf-routine optimization (thanks to David Dreisigmeyer) - unit-toplevel entry-points are now named differently, which may break binary-compatibility with existing compiled Scheme code modules - fixed invalid dropping of unused external entry-points in block-mode - fixed incorrect lambda-list check in scrutinizer (thanks to Alan Post) - Kon Lovett reported numerous bugs in the type-database used by the scrutinizer - `-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) - checks for NaN and infinity are now done using ISO C99 operations, which required various changes to `chicken.h' to make the code compile in ISO C99 mode - remaining debris regarding MSVC builds has been removed - fixed bug in argument-type check for 64-bit integer (thanks to Kon Lovett) - increased default trace-buffer size from 10 to 16 - fixed bug in low-level termination routine (thanks to Jeronimo Pellegrini) - the scheduler handles violations of internal invariants regarding threads slightly more gracefully (thanks to Jim Ursetto) - fixed broken sleep-time conversion (thanks to Karel Miklav) - 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 - removed `-static-extension' option - 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) - options `-p' and `-P' and `-e' imply `-no-init' - the call-trace reported will not include exception-handler code anymore (suggested by Christian Kellermann) |
||
---|---|---|
.. | ||
DESCR | ||
distinfo | ||
Makefile | ||
PLIST |