4.3.0 - removed tracing facility and apply-hook (see the "trace" egg for a replacement for tracing and breakpoints) - chicken-install(1): renamed `-host-extension' option to `-host' - added support for a make(1) configuration file ("config.make") - `chicken-install' now allows specifiying a proxy for retrieving extensions over HTTP (thanks to Nicolas Pelletier) - fixed bug in `cond-expand' that incorrectly renamed feature-identifiers if the form was the product of a syntax expansion (reported by Thomas Bushnell) - import-libraries are only generated by the compiler if they don't exist yet and if the content has actually changed (this simplifies makefile- rules in some cases) - it is now possible to pass a config-file to `make(1)' instead of specifying all build-options as variables on the command-line (see README) - removed compiler options for "benchmark-mode" and replaced them with a new optimization level (5) (note that `-O5' does not imply fixnum mode anymore) - `hen.el' and `scheme-complete.el' are not bundled with the core system anymore - `hen.el' is currently not maintained, and `scheme-complete.el' has its own release cycle; both files are available, see http://chicken.wiki.br/emacs - removed meaningless benchmark suite and cleaned up - added optional argument to `grep' that allows applying a function to each matched item (contributed by Tony Sidaway) - added extension-property `import-only', which makes it possible to create extensions that have no runtime part - the argument to `seconds->string', `seconds->utc-time' and `seconds->local-time' is now optional and defaults to the value of `(current-seconds)' (suggested by Mario Goulart) - removed read-syntax for `syntax' form - fixed bug in `get-condition-property' - fixed bug in windows version of `process-execute' - TCP timeouts throw exception of kind `timeout' to allow distinguishing between timeouts and other errors - removed some internal functions that manipulate environments - fixed bugs in `standard-extension' (`setup-api' module) and added keyword arguments for building static extensions and adding custom properties - when cross-compiling, `chicken-install(1)' doesn't pass `-setup-mode' (the host tools should not attempt to load target binaries) - `installation-prefix' in the `setup-api' module was not always correctly set - the `-force' option in `chicken-install(1)' overrides the CHICKEN version check - disabled e-mail feature in `chicken-bug(1)', since it doesn't work anyway, in the moment - fixed bug in `reexport' that made it impossible to reexport core library definitions - fix in optimizer that sometimes caused C functions for inlined procedures to be emitted multiple times (Thanks to Joerg Wittenberger) - documented `define-compiler-syntax' and `let-compiler-syntax' - printer for hash-tables shows current number of stores items - when upgrading during installation of a dependency `chicken-install' shows the version to upgrade to (Thanks to Christian Kellermann) - Updated scheme-complete (Thanks to Alex Shinn) - fix for pathnames with whitespace in 'runtests.sh' on Windows - fix for 'normalize-pathname' with absolute pathname argument - added 'decompose-directory' to unit files - fix for 'local-timezone-abbreviation' - wasn't using the current time so tz-name constant - deprecated 'make-pathname' separator argument 4.2.0 - added compiler option `-emit-all-import-libraries' - added `reexport' - added compiler and interpreter option `-setup-mode' - various minor performance improvements - fix for 'create-directory' when parents wanted - `for-each-line' and `for-each-argv-line' have been deprecated - chicken-install tries alternative servers if server responds with error - fixed load bug (ticket #72) - new library procedure `get-condition-property' - many mingw build fixes (thanks tp Fadi Moukayed) - setup-api: deprecated `cross-chicken' (use `cond-expand' or `feature?' instead) - added topological-sort to data-structures unit; chicken-install sorts dependencies before installing them - "-optimize-level 2" enables inlining by default - disable executable stack in assembly code modules (patch by Zbigniew, reported by Marijn Schouten) - csc now always exits with a status code of 1 on errors (patch by Zbigniew) 4.1.0 - The new parameter "parantheses-synonyms" and the command-line option "-no-parantheses-synonyms" allow disabling list-like behaviour of "{ ... }" and "[ ... ]" tokens - The new parameter "symbol-escape" and the command-line option "-no-symbol-escape" allows disabling "| ... |" symbol escape syntax - Added command-line option "-r5rs-syntax" to disable CHICKEN-specific read-syntax - Removed "macro?" and "undefine-macro!" - Support for Microsoft Visual Studio / MSVC has been dropped - The compiler provides now a simple flow-analysis pass that does basic checking of argument-counts and -types for core library procedure calls (new option "-scrutinize") - New compiler-options "-no-argc-checks", "-no-bound-checks", "-no-procedure checks", "-no-procedure-checks-for-usual-bindings", "-types TYPEFILE" and "-consult-inline-file FILENAME" - Added a "chicken-setup" stub-application to catch incorrect use of this tool (which has been replaced in 4.0.0 with "chicken-install") - Changed "setup-install-flag" and "setup-verbose-flag" to "setup-install-mode" and "setup-verbose-mode" in "setup-api" module, the old names are still available but deprecated - Posix unit: added "socket?", "block-device?" and "character-device?", deprecated redundant "stat-..." procedures - Added "directory-exists?" - "(for-each (lambda ...) X)" is compiled as a loop - The argument-count check for format-strings for "[sf]printf" with a constant string argument is done at compile-time 4.0.0 - removed `apropos' and `apropos-list' from the "utils" library unit; available as an extension - removed texinfo and PDF documentation - this will possible be added back later - replaced PCRE regex engine with Alex Shinn's "irregex" regular expression package - removed `-extension' option - removed `-static-extensions' csc option and added `-static-extension NAME' - `regex' unit: removed `regexp*' and `regex-optimize' - added `CHICKEN_new_finalizable_gc_root()' - `length' checks its argument for being cyclic - removed custom declarations and "link-options" and "c-options" declarations - deprecated "-quiet" option to "chicken" program - added "-update-db" option to chicken-install - the compiler now suggests possibly required module-imports - moved non-standard syntax-definitions into "chicken-syntax" library unit - the pretty-printer prints the end-of-file object readably now - alternative conditional execution paths have separate allocation computation (previously the allocation of all alternatives was coalesced) - removed unused "%kmp-search" from "srfi-13" library unit - expander handles syntax-reexports and makes unexported syntax available for exported expanders in import libraries - added checks in some procedures in the "tcp" library unit - the macro system has been completely overhauled and converted to hygienic macros - a macro-aware module system has been added - added "-sx" option to csi - removed the following deprecated functions: [un]shift! andmap ormap byte-vector? byte-vector-fill! make-byte-vector byte-vector byte-vector-set! byte-vector-ref byte-vector->list list->byte-vector string->byte-vector byte-vector->string byte-vector-length make-static-byte-vector static-byte-vector->pointer byte-vector-move! byte-vector-append! set-file-position! set-user-id! set-group-id! set-process-group-id! macro? undefine-macro! - the situation-identifiers "run-time" and "compile-time" have been removed - the compiler options "-check-imports", "-import" and "-emit-exports" have been removed - new procedures: strip-syntax expand - new macros define-syntax module export - the following macros have been removed: define-foreign-record define-foreign-enum define-macro define-extension - "local" mode, in which locally defined exported toplevel variables can be inlined - new options and declarations "[-]local", "[-]inline-global" and "-emit-inline-file" - optimization levels changed to use inlining: -optimize-level 3: enables -inline -local (but *not* -unsafe) -optimize-level 4: enables -inline -local -unsafe - increased default inlining-limit to 20 - support for cross-module inlining - "make bench" runs the benchmark suite - "chicken-setup" has been replaced by new command line tools "chicken-install", "chicken-uninstall" and "chicken-status", which are more flexible and allow greater freedom when creating local or application- specific repositories - extension-installation can be done directly from SVN repositories or a local file tree - enabled chicken mirror site as alternative download location