626556e6dd
Contributed by Peter Bex via IRC. Changes in 4.6.0 - the licenses used in all components of the core system have been collected in the LICENSE file (Thanks to Peter Bex) - Added new compiler option `-no-module-registration' which omits generation of module registration code, even when generation of import libraries has not been enabled - running `chicken' without arguments now hints at the existence of `csi' and `csc' - `caar', `cdar' and `cddr' generate faster code - calls to `list', `vector' and the internal structure allocation primitive that take 1 to 8 arguments generate faster code - `chicken-install' now checks the version of the setup configuration file `setup.defaults' - added option `-exact' to `chicken-status' and `chicken-uninstall', which treats the pattern argument as the literal name of the extension to be listed/deinstalled - `assert' shows line-number information, if available (suggested by Alejandro Forero Cuervo) - interpreted code records the lexical-environment at call- sites, which can in case of an error be inspected with the new `,c', `,f' and `,g' csi toplevel commands - the evaluation-result history in `csi' can be inspected and cleared (to reduce memory load) with the toplevel commands `,h' and `,ch' - unit `data-structures': deprecated `left-section' and `right-section' - fixed bug that caused the static syntax-environment of syntax exported by a module to be incomplete - module `setup-api': Documented the `version>=?' and `extension-name-and-version' proceedures - unit `posix': `utc-time->seconds' is considerably faster on Mac OS X (thanks to Jim Ursetto); added new procedure `file-type' - the `time' macro now shows the correct number of minor garbage collections - the immediate-object check inside the marking procedure of the garbage collector has been manually inlined which results in a significant GC speedup, depending on memory load - unit `srfi-18' and `scheduler': various bugfixes (thanks to Joerg Wittenberger) - unit `srfi-4': bugfix in 8-bit vector allocation routines (thanks to Kon Lovett) - added `-:H' runtime option to dump heap state on exit - fixed missing change in Makefile.cygwin (thanks to John Cowan) - fixed bug in `let-optionals' macro that caused problems when the rest-variable was actually named `rest' (thanks to Alejandro Forero Cuervo) - when Scheme files are translated to C++ or Objective-C, `csc' will register the feature-identifiers `chicken-scheme-to-c++'/ `chicken-scheme-to-objc' ar compile-time - fixed bug in expansion of `#!key' parameters in lambda-lists - debug-output for forcing finalizers on exit goes to stderr now (thanks to Joerg Wittenberger) - the installation routines for extensions automatically add version-number information if none is given in the extension property list (suggested by Alejandro Forero Cuervo) - `standard-extension' accepts `#f' now for the version number and will use the version that has been obtained via `chicken-install' - `fifo?', `symbolic-link?', `directory?', `regular-file?', `socket?', `character-device?' and `block-device?' now accepts file-descriptors or filenames - `find-files' takes keyword arguments, now (including the options to process dotfiles and ignore symbolic links); the old argument signature is still supported but deprecated - removed dependency on `symbol-append' in some macros used in srfi-4.scm to be able to compile the system with older chickens - fixed bug in script that generates development snapshot - added build-variable `TARGET_FEATURES', which can be used to pass extra options enabling or disabling fetures for a system configured for cross-compilation - added compiler and interpreter option `-no-feature FEATURENAME' that disables predefined feature identifiers - code compiled with interrupts disabled will not emit inline files for global inlining since they may execute in a context where interrupts are enabled - the `setup.defaults' file that holds download sources for `chicken-install' now allows aliases for locations - CHICKEN systems build from cross-compilation now by default transparently build and install extensions for both the host and target parts of the cross-compilation setup; the options `-host' and `-target' can now be used to selectively build an extensions for the host- and the target system, respectively - also added `-host' and `-target' options to `chicken-status' and `chicken-uninstall' - `chicken-install' now respects the `http_proxy' environment variable (contributed by Stephen Eilert) - the `srfi-4' library unit has been heavily cleaned up and optimized - optimization-level 3 now enables global inlining - fixed the case that declarations listing global identifiers did not correctly rename them - deprecated `-N' option shortcut for `-no-usual-integrations' option in `csc' - `csi' now offers a toplevel command `,e' for invoking an external editor (suggested by Oivind Binde) - the `describe' command in `csi' now detects many circular lists (contributed by Christian Kellermann) - `csi' doesn't depend on the `srfi-69' library unit anymore - when a closing sequence delimiter is missing or incorrect, the reader also reports the starting line of the sequence - the reader signals an error when a file contains certain characters that indicate that it is a binary file - procedure-information shown by the printer for procedures is now corrected for some library procedures that where missing the correct information; `getter-with-setter' copies procedure-information objects into the newly created accessor procedure, if available - calls to some known pure standard- or extended procedures are removed, if the procedures are called with side-effect free arguments and the result is not used (this can also by enabled for user procedures with the `constant' declaration) - fixed some build-system bugs related to installation - fixed a problem in the C runtime code that prevented it to be compileable without a configuration header-file - the makefile-target to build a bootstrapping `chicken' executable performs multi-stage build now - changed error message when required extension is out of date (thanks to Mario Goulart) - documented library units loaded by default in `csi' (thanks to Moritz Heidkamp) - added `boot-chicken' makefile target to simplify bootstrapping the system from sources and documented this in the README (suggested by Jim Ursetto) - CHICKEN can now be built on haiku (contributed by Chris Roberts) - on Solaris, the system can be compiled with the SunPro C compiler (thanks to Semih Cemiloglu) - removed the `-disable-warnings' compiler option and `disable-warnings' declaration specifier - `fx/' and `fxmod' generate now faster code in safe mode - cleaned up manual pages - slightly optimized variable- and procedure-access - in the compiler `-debug-level 2' implies `-scrutinize' - internal compiler-transformation for `for-each' and `map' apply now with any expression as the procedure argument - the compiler warns about non-intrinsic exported toplevel variables which are declared to be safe - `csc' didn't handle the `-verbose' option (thanks to Mario Goulart) - the `,d' command in `csi' now detects circular lists (thanks to Christian Kellermann) - strings passed to C runtime functions and which are converted to 0-terminated C strings are now checked for not containing embedded `\0' characters (thanks to Peter Bex) - errors in user-defined record printers are caught and shown in the output instead of throwing an error to avoid endless recursion when an error message is printed - a feature identifier named `chicken-MAJOR.MINOR' is now defined to simplify conditionalization of code on the CHICKEN version - `getter-with-setter' copies the lambda-information (if available) from the getter to the generated procedure - `time' uses a somewhat more concise output format and outputs timing information to stderr instead of stdout - added a new chapter on cross-development to the manual - added the `safe-globals' declaration specifier - split up manual chapter `Modules and macros' into two chapters (named `Modules' and `Macros', respectively - suggested by Mario Goulart) - the last 5 non-precompiled regular expressions are now internally cached in compiled form, which speeds up repeated matching of the same uncompiled regular expression dramatically - added the new procedure `yes-or-no?' to the `utils' library unit - added a `bench' makefile target that runs some non-trivial benchmark programs - added `install-target' and `install-dev' makefile target for installing only target system libraries in cross-mode and development files (static libraries and headers) - added `[-]no-procedure-checks-for-toplevel-bindings' compiler option and declaration - usage of unimported syntax in modules gives more usable error messages; in particular, used but unimported FFI forms are now detected - invalid syntactic forms (mostly `()') encountered by the compiler or interpreter show the contextual form containing the expression, or, if indicated by the context warns about missing imports - simplified manual pages of all core tools - they now refer to the output shown by invoking `<tool> -help' - added new option `-feature FEATURE' to `chicken-install' tool to pass feature-identifiers to invocations of `csc' - removed deprecated `-host-extension' option from `chicken-install' - `chicken-status' in a system built for cross-compilation now lists extensions installed in the target prefix, unless the new `-host' option is given on the command line - `chicken-uninstall' in a system built for cross-compilation now removes extensions installed in the target prefix, unless the new `-host' option is given on the command line - added missing entry for `finite?' to the `chicken' module exports - added new procedure `port-closed?' to the `library' unit (contributed by Peter Bex) - added new procedure `symbol-append' to the library unit - the compiler-option `-optimize-level 0' is equivalent to `-no-compiler-syntax -no-usual-integrations` - internal rewritings of `map' and `for-each' ensure correct evaluation order of the arguments and does a better job at detecting non-list arguments (thanks to Jim Ursetto) - `void' now takes arbitrary arguments and ignores them - deprecated `noop' (from the `data-structures' unit) which is now replaced by `void' - the `time' macro now performs a major garbage collection before executing the contained expressions and writes the timings in a more compact format to the port given by `(current-error-port)' instead of the standard output port - definitions of the form `(define define ...)' and `(define-syntax define-syntax ...)' now trigger an error, as required by R5RS (thanks to Jeronimo Pellegrini and Alex Shinn) - deprecated `random-seed' from the `extras' unit, since it is identical to `randomize' - added new procedure `create-temporary-directory' to the `files' unit - deprecated the optional path separator argument to `make-pathname' - slightly improved the performance of keyword argument processing - removed the deprecated `canonical-path' and `current-environment' procedures from the `posix' unit - warnings that mostly refer to programming style issues are now coined `notes' and are only shown in the interpreter or when debug-mode is enabled or when scrutiny is enabled when compiling |
||
---|---|---|
.. | ||
DESCR | ||
distinfo | ||
Makefile | ||
PLIST |