4.4.5 - certain compiler-warnings that are in really just notes and don't indicate a possible error (like reimport of identifiers) are only shown with -S or in verbose mode - fixed handling of VARDIR in `chicken-install' (thanks to Davide Puricelli) - `chicken-install -test' doesn't runs tests for dependencies - when a non-else clause follows an else-clause in `cond', `case' or `select' a warning (note) is shown in verbose mode - removed the deprecated `define-extension' and `define-compiled-syntax' - `chicken-uninstall' now always asks before removing extensions, unless `-force' is given - improved performance of keyword-argument processing slightly - added `fxeven?' and `fxodd?' - `export' outside of a module definition has no effect - `number->string' now accepts arbitrary bases between 2 and 16 (thanks to Christian Kellermann) - fixed `standard-extension' in `setup-api' module - literal constants keep their identity, even when inlined 4.4.4 - Unit library: added `fxodd?' and `fxeven?' - All hardcoded special forms have been replaced with syntax definitions that expand into internal forms, this allows redefinition and shadowing of all Scheme core forms - faster implementations of `get' and `put!' - faster implementation of `assq' in unsafe mode - the `-sx' option prefixes each output line with `;' - slightly better expansion performance - more documentation of the C API (thanks to Peter Bex) - `module' supports a shorthand form that refers directly to a file to be included as the module body - added runtime option `-:G' to force GUI mode (on platforms that distinguish between GUI and non-GUI applications) 4.4.3 - removed the unsafe runtime library (`libuchicken'), this simplifies and speeds up the build and reduces the risk of executables loading library units from different variants of the runtime system - removed the `-unsafe-libraries' option from `chicken' and `csc' 4.4.2 - removed bootstrapping target and bootstrapping files from development repository; to bootstrap the system, either use a release or development-snapshot tarball or fetch a statically linked precompiled `chicken' binary from http://chicken.wiki.br/chicken-projects/bootstrap/ - Jim Ursetto provided some fixes for building universal binaries on Mac OS X - `csc' now compiles and links Windows resource (.rc) files when given on the command line - `chicken-install' and `chicken-uninstall' have an embedded manifest that suppresses the elevation dialog on Windows Vista and later when UAC is activated (Thanks to Thomas Chust) - the `install' program is not used in the build on mingw and mingw/MSYS platforms, since this is broken on older mingw versions - line-number-information is now properly handled (in the few places where it is used) correctly for included files; the source file is given in trace-output in addition to the line number - removed compiler warning for shared objects compiled in unsafe mode - unboxing is now only done in unsafe mode - in unsafe mode, pointer-accessors from the `lolevel' unit are now handled intrinsically by the compiler - `chicken-install' accepts now relative pathnames for the `-prefix' option - `define-record-type' now optionally allows using SRFI-17 setters as record-field modifiers - `integer?' returns `#f' for NaN and infinite numbers - `csc' now has an `-no-elevation' option for embedding a manifest that prevents the elevation dialog on Windows Vista and later when IAC is activated - the `,d' csi command displays qualified symbols properly - symbols starting with the `#\#' character trigger an error when encountered by the reader - Unit posix: `glob->regexp' now always returns a regular expression object or optionally an SRE - Unit posix: `terminal-port?' and `terminal-size' have been implemented for Windows, the latter always returns `0 0', though (thanks to Jim Ursetto) - Unit regex: `regexp' now accepts a regular expression object as argument - Unit regex: removed `glob?' Special thanks to Mark Carter for patient and thorough testing of the Cygwin and mingw builds. 4.4.1 - fixed bug in `chicken-install'/`chicken-uninstall' and `chicken-status' that prevented collapsed command-line options to be handled correctly. - disabled runpath-fix for deployed applications for netbsd (but resurrected providing a runpath at all, thanks to Peter Bex) - Peter Bex provided documentation for the `C_closure' C API function 4.4.0 - 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 4.3.0 - fixed bug in `move-memory!' that caused negative offsets to be accepted (thanks to Jim Ursetto) - 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