March 12th, 2013
· This release primarily fixes a bug on Linux and Solaris which causes high CPU usage when waiting for child process I/O.
February 21st, 2013Interpreter:
· Fix regression in ,d for procedures, which resulted in an sprintf error.
· Fix rewriting of newlines (~~) in printf.
· Allow > 4GB heap on 64-bit systems (#974).
· Added missing library (-lrt) on Solaris for nanosleep calls (#970).
· Use test -f instead of test -e in identify.sh to placate Solaris.
January 18th, 2013Security fixes:
· Use POSIX poll() on systems where available. This avoids a design flaw in select(); it supports no more than FD_SETSIZE descriptors.
· Fixed EINTR handling in process-wait and when reading from file ports.
· Bugfix for irregex (#686). Note: although irregex.scm now says version 0.9.2, the version is actually 0.8.3 plus a few backported patches.
· Fixed problem in "make-pathname" that returned an absolute path if given a relative one without a directory argument.
· On 64-bit systems the feature identifier "64bit" is registered.
· Fixed various bugs in the type database.
· Bugfixes and improvements in the scrutinizer.
· In the flow-analysis pass, type-matching of combinations of "list"/"list-of" types has been made more reliable.
· Make macro-renamed defines in begin bodies (inside modules) visible to later forms. (#944).
· Fixed incorrect code in the foreign argument conversion for "unsigned-integer64" (#955).
· The runtime linker path for compiled executables was not set correctly on FreeBSD systems.
· Fix install-extension breakage when the second arg contains pairs (SRC DST).
· Prevent rebuilding of buildversion.scm on every make(1) on Windows.
September 26th, 2012
· Interfaces and functors have been added to the module system.
· The type system has been extended.
· A large number of bugfixes and general cleanup have been done in the compiler, runtime system, core libraries, and syntax expander.
September 13th, 2010
· Some compiler optimizations have been significantly improved.
· Several built-in procedures and the allocation procedures for lists, vectors, and structures generate faster code.
· Units srfi-4 and srfi-18 have been heavily cleaned up and optimized.
· Several bugs have been fixed in the thread scheduler.
· chicken-install has been extended, and its cross compilation support has been significantly upgraded.
· The build system now supports more platforms and compilers.
· The various infrastructure scripts have been overhauled to reflect the structure of the new Web site infrastructure.
March 9th, 2010
· the system can now be built with llvm-gcc and/or "clang" (the LLVM C compiler which doesn't use the GNU C frontend)
· added new option `-trunk' to `chicken-install', which forces building and installing the development version of extensions in combination with `-t local'
· added new option `-deploy' to `chicken-install', which builds extension for use in "deployed" applications (see below)
· added option `-deploy' to `csc', the compiler driver. With this option `csc' can build fully self-contained application bundles and double-clickable Macintosh GUI apps; see the "Deployment" manual chapter for more information
· the directory given to the `-prefix' option of `chicken-install' may now be a relative pathname.
· removed GUI-specific runtime library (`libchicken-gui') from Windows build
· GUI- and non-GUI applications now use the same runtime library
· special forms of the foreign-function interface have been replaced with an internal form and syntax to allow renaming and shadowing of these forms
· the new `-private-repository' option in `csc' compiles executables with the extension-repository path set to the directory from which the program was started
· `csc': deprecated the `-W' and `-windows' options, added `-gui' as a platform-independent replacement
· `require-extension'/`use' accepts now import-specifications
· user-defined extension-specifiers and `set-extension-specifier!' have been removed
· `delete-file[*]', `rename-file', `create-directory', `file-copy', `file-move', `delete-directory' and `change-directory' return their argument/destination filename on success
· added the missing procedure `condition-variable-name' to the srfi-18 library unit (Thanks to Joerg Wittenberger)
· the `glob?' function from the `regex' unit has been deprecated
· added the procedure `scan-input-lines' to the `utils' library unit
· added new runtime option `-:g' which enables GC debugging output
· reclamation of unused symbols in "symbol-gc" mode (`-:w') now only takes place for symbols with an empty property-list
· on Windows loading of code compiled with [non-]GUI runtime libraries will fail and produce an error message when the loading executable is linked with a different runtime system
· on Windows, GUI libraries were not correctly linked by `csc'
· unit posix: added setter for `file-modification-time'
· the banner shows the branchname of the build, unless it's "master"
· the `-no-install' option to `chicken-install' is ignored when building/installing dependencies
· `chicken-uninstall' takes a glob instead of a regular expression as argument
· the rename and compare functions for low-level macro-definitions accept now arbitrary s-expressions and renames/compares them recursively
· `number->string' handles negative-numbers with bases different from 10 correctly (thanks to Peter Danenberg)
· removed deprecated `setup-install-flag' and `setup-verbose-flag' from the `setup-api' module
· added new option `-repository' to `chicken-install' (Thanks to Christian Kellermann)
· removed `chicken-setup' stub program
· fix to `csc' to use the correct library when fixing dynamic load paths (Thanks to Derrell Piper)
· removed html documentation from distribution (the wiki manual will now be installed)
· fixed bug in `reexport' which caused syntax not to be correctly reexported
· previous assignments to a toplevel variable that are separated by side effect free expressions are removed
· fixed windows version of `find-files' (thanks to Jim Ursetto)
· documentation for extensions is not installed automatically by `chicken-install' anymore
· changed binary version from "4" to "5", because the new runtime libraries are not binary-compatible with previous releases; this means all eggs have to be reinstalled and existing programs be recompiled!
· added unboxing pass to compiler which results in partially dramatical performance improvements for unsafe floating-point-intensive code; unboxing is enabled on optimization levels 4 and 5
· removed rest-argument-vector optimization as it could conflict with inlining (thanks to Sven Hartrumpf)
· renamed `pointer-offset' to `pointer+' and deprecated `pointer-offset'
· toplevel assignments that have no other side-effects can be eliminated if it can be shown that the value is not used (the compiler will generate a warning in this case)
· removed deprecated `-quiet' option in `chicken' program
· removed deprecated `run-time-macros' declaration
· removed deprecated `-v2' and `-v3' options in `csc' program
· removed deprecated `list-of' function (it is exclusively available as `list-of?' now)
· removed deprecated `stat-...' functions in posix library unit
· removed deprecated `for-each-line' and `for-each-argv-line' procedures in utils library unit
· added `fpinteger?' and `fpabs'
· deprecated `define-compiled-syntax'
· added new floating-point primitives `fpsin', `fpcos', `fptan', `fpasin', `fpacos', `fpatan', `fpatan2', `fpexp', `fplog', `fpexpt' and `fpsqrt'
· heavy cleanup of floating math functions which gives much better performance, especially for code compiled in unsafe mode
· calling `assert' with a single argument shows the tested expression on failure
· various bugfixes and cleaning up
September 22nd, 2009
· chicken-install has been modified to sort library dependencies in topological order, and to try alternative servers if an egg server responds with an error.
· The executable stack in assembly code modules is disabled by default.
· Many bugs have been fixed in the MinGW build.
· Several new options have been added to the compiler and interpreter.
September 25th, 2008
· The compiler now supports selective procedure profiling.
· All file-related procedures have been moved to new unit files.
· There have been numerous fixes to the Cygwin and MinGW builds.
· PCRE bundled with Chicken has been updated.