Chicken Scheme 6.0

Aug 11, 2026 07:24 AM - 3 hours ago 1

6.0.0 - Core libraries - All modules specified by the R7RS mini connection are now disposable in the halfway system. - The soul drawstring practice has been converted to UTF-8, making strings afloat UNICODE capable. - The (chicken blob) module has been replaced pinch (chicken bytevector), containing R7RS compatible bytevector operations. Bytevectors are now afloat balanced to SRFI-4 u8vectors. - The read-syntax for blobs (`#${...}') has been removed. Bytevectors tin beryllium publication utilizing `#u8(...)' aliases `#u8"..."'. - `char-name' now allows removing a named characteristic definition. - `open-input-file' and `open-output-file' judge a record encoding, supported are presently UTF-8 (the default) and Latin-1 (ISO-8859-1). - `file-read', `file-write', 'set-pseudo-random-seed!' and `random-bytes' require a bytevector statement and do not judge strings. - `process-fork', `process-run', `process' and `process*' return now a process-object alternatively of a PID, usage process grounds accessors to retrieve exit-status and input/output ports. `process-wait' and `process-signal' judge either a PID aliases a process entity as argument. - File-locking operations successful the (chicken record posix) module now usage the flock(2) strategy call, usability complete full files, are thread-safe and usage a simpler interface. `file-test-lock' has been removed. - `read-u8vector', `read-u8vector!' and `write-u8vector' person been removed, usage the balanced operations from the (chicken io) module instead. - Added `read-bytevector', `read-bytevector!' and `write-bytevector' to the (chicken io) module. - Removed `set-port-name!', usage the SRFI-17 setter for `port-name' instead. - Added `port-encoding' to the (chicken port) module. - `make-input-port' and `make-output-port' return their optional larboard methods arsenic keyword arguments now. - Added `make-binary-input-port' and `make-binary-output-port'. - Locatives connected strings are now indexed by code-point, not byte. - `symbol-escape' now besides controls whether symbols are printed in escaped ("|...|") mode aliases not. - Symbol printing is stricter successful deciding erstwhile symbols should beryllium escaped aliases not. - The pursuing primitives person been moved from (chicken base) to R7RS modules: - `exact-integer?`, `exact-integer-sqrt?', `vector-copy!', `make-parameter', `call/cc', `open-input-string', `open-output-string', `get-output-string', `input-port-open?', `output-port-open?', `parameterize' and `port?' moved from the (chicken base) to the (scheme base) module. - `case-lambda' moved from (chicken base) to (scheme case-lambda). - `features' moved from (chicken platform) to (scheme base). - `write-string' moved from (chicken io) to (scheme base) and its signature changed to the R7RS one. - `define-record-type' moved to (scheme base) and is generative, to beryllium compliant pinch R7RS. - `syntax-error' has been removed from (chicken syntax) and is now a macro and portion of (scheme base). - `record-instance?' and `make-record-instance' judge non-symbolic type specifiers to support generative grounds types. - The caller (chicken number-vector) module now provides a superset of SRFI-4, including 64 and 128-bit analyzable number vectors, the `srfi-4' module is still disposable but exports only those procedures arsenic are specified successful SRFI-4. - The 2nd (optional) parameter for `load' and `load-relative' whitethorn be either an situation aliases an information procedure. - The module aliases `srfi-0', `srfi-6', `srfi-9', `srfi-11', `srfi-23', `srfi-39' and `srfi-98' person been removed (all of these are covered by R7RS). - The modules `r4rs', `r5rs', `r4rs-null' and `r5rs-null' person been renamed to `(scheme XXX)'. - Hexadecimal flight sequences successful strings and extended symbols must be terminated by the `;' character, pursuing R7RS. - The `#ci'/`#cs' publication syntaxes person been removed, use `#![no-]fold-case' markers instead. - `include' and `include-relative' judge aggregate filenames, `include-ci' has been added. - Added `include-path' to (chicken platform) module. - Added `number-vector-data' to (chicken representation representation) module. - `define-library' has been extended to support the `export-all' specification. - The platform-identifier "mingw32" has been renamed to "mingw". - Library procedures that return paths now ever person them to incorporate guardant slashes, 'make-pathname' ever uses "/" for path separation. - Added `expand1' to (chicken syntax) module for expanding a macro only once, besides added the ",x1" bid to "csi" for this. - Added the (chicken version) module. - `delete-file*' and `delete-file' now behave consistently with surgery symlinks. - `number->string' now accepts bases up to 36, wherever earlier it only accepted bases up to 16 (thanks to Diego A. Mundo) - `string->number' now handles ambiguous cases involving the characteristic "i" successful bases higher than 18 much consistently. - `make-rectangular' returns a analyzable number if the imaginary part is inexact zero. - `string->number' and the scholar judge and grip correctly analyzable numbers pinch a antagonistic inexact zero arsenic the imaginary part. - `imag-part' returns nonstop zero erstwhile fixed a non-complex number. - `max' and `min' disregard nan values erstwhile fixed immoderate non-nan argument. - Syntax expander - `syntax-rules' attempts to amended support tail patterns pinch ellipses (#1736). - FFI changes - Strings and symbols passed to overseas codification are not copied, they are passed directly, immoderate mutations done by outer codification will beryllium visible connected the Scheme side. - Complex numbers, C structs and unions tin now beryllium passed straight as arguments and returned arsenic results erstwhile interfacing to C code. - Tools - The compiler and expert action `-r5rs-syntax' has been renamed to `-r7rs-syntax' and does not disable extended awesome syntax ("|...|") anymore. - The "feathers" debugger has been removed from the halfway and is now disposable arsenic an egg. - The `set-describer!' process has been removed from the `csi' module. - The "csc" programme now accepts instrumentality flags (e.g. -compiler, -cc etc) which person paths pinch spaces successful them without requiring the personification to double-quote them. As a consequence, it nary longer accepts programs pinch abstraction separated flags for instrumentality arguments (e.g. "csc -cc 'gcc -debug'" etc). If this is desired, constitute a short ammunition book which calls the instrumentality pinch your flags. - `chicken-install' now locks the cache directory during egg-installation. - Added constituent type `installed-c-object' to ovum format. - The `csc-options' and `link-options' configuration clauses successful egg specifications now let `custom-config' forms to nutrient arbitrary computed compiler and linker options. - Added scripts/smoke-test.sh to automate basal testing of chicken-core - Compiler - Added the `-merge-reusable-closures' and `-merge-shareable-closures' options that alteration closure reuse and sharing to trim representation allocations. These options are enabled automatically by optimization levels 1 (reuse) and 2 (sharing), respectively. - Build system - A "configure" book is now utilized to hole the sources for building everything. This simplifies the usage of "make", allows much elaborate level sanity checks and follows conventions. - On Windows the minimal "mingw" build is not supported anymore, a POSIX ammunition and the basal sete of command-line utilities is now required (formerly the "mingw-msys" build). Chris Wellons "w64devkit" is now the recommended toolchain. The level identifier "mingw-msys" has been renamed to "mingw". - The strategy tin now beryllium built pinch "zig cc" arsenic a C compiler/linker replacement. 5.4.0 - Security fixes - CVE-2022-45145: Neutralize imaginable flight characters successful ovum metadata to debar arbitrary OS bid injection during ovum installation, reported by Vasilij Schneidermann who besides provided the necessary patches to mitigate this problem. - The runtime action "-:b" has been removed, arsenic it was deemed too insecure to beryllium capable to driblet to a REPL from the CLI of immoderate program. - Runtime action processing has been hardened: processing now stops on the first non-runtime action aliases aft "-:", whichever comes first. - Core libraries - Fix type declarations for `file-select` (reported by Anton Idukov). - Change `create-temporary-{file,directory}` fallback codification connected Windows to usage %USERPROFILE%/AppData/Local/Temp if that situation adaptable is set. - Added caller thread-safe API for POSIX signals ("make-signal-handler", "signal-ignore" and "signal-default") and deprecated the existing one. - Added "make-finalizer" to execute finalizers successful a thread-safe manner. - Added anemic pairs to (chicken base), pinch akin behaviour to Chez Scheme. - Added "locative-index", kindly contributed by John Croisant. - Added "fp*+" (fused multiply-add) to "chicken.flonum" module (suggested by Christian Himpe). - Added flonum-specific hyperbolic functions and their inverse to "chicken.flonum" module (suggested by Christian Himpe). - The `process-execute` process now sets argv[0] to the unmodified filename. Previously, the directory portion would beryllium stripped. - Added support for embedded strings and characters successful SRFI-4 vector literals. - read-with-source-info is now documented and officially supported, from the (chicken syntax) module. read/source-info is still exported from the undocumented soul (chicken compiler support) module, but utilizing it from location is deprecated. - Added "export/rename" to (chicken module) for renaming identifiers on export. - The values of the TMPDIR, TMP and TEMP situation variables are no longer memoized (fixes #1830). - Condition objects produced by procedures that alteration errno now have an `errno' property. - Deprecated "chicken-home" and added "include-path" successful the chicken.platform module. - Irregex has been updated to upstream 0.9.11 positive an further fix for sre->string. The 0.9.11 merchandise fixes a fewer problems related to utf-8 handling (which should not impact CHICKEN) and expands the meaning for the 'whitespace characteristic group to see vertical tab, carriage return and shape feed. - Tools - Fix scripts generated by `chicken-install` connected Windows to not quote `>>` erstwhile echoing into files which would consequence successful quiet egg-info files (reported and fixed by Jani Hakala). - The -R action for csi and csc now accepts list-notation like e.g. (srfi 1). Fixes #1809, reported by Wolfgang Corcoran-Mathe. - Fix ammunition quotation successful options passed from csc to different tools. Fixes #1302, reported by Xin Wang. - The -prelude and -postlude options for csc activity decently again. - chicken-install now retrieves the latest ovum type when instructed to instal an ovum that's already installed (#1802). - When `location' is specified successful setup.defaults, chicken-install will see 2 location layouts erstwhile looking for eggs: / and //. - chicken-install: Fix #1684 (programs that specify component-dependencies should build-depend connected their import libraries). - chicken-install now caches eggs installed from section locations. - chicken-install now accepts the -location bid statement option (short: -l) to specify section directories wherever to get ovum sources from. - chicken-install now gives a informing connected unexpected properties (#1492). - chicken-install now uses a directory circumstantial for cache metadata (VERSION, STATUS and TIMESTAMP files) to debar collisions pinch source files connected case-insensitive record systems for illustration connected MacOS (#1753, reported by Kon Lovett). - Syntax expander - When passing a module arsenic an situation to eval, correctly resolve identifiers successful macro description s (#1295 reported by Caolan McMahon). - Internal definitions grant rebindings of halfway typical forms (#1132). - Globally defining an identifier antecedently bound to a macro now fully shadows the macro (#1166, reported by Michele La Monaca). - Compiler - When emitting types files, the output database is now sorted, to ensure deterministic build output (fixes #1783, reported by "ss2"). - Build system - Fix compiler warnings astir zero-sized `memset` (reported by Claude Marinier). - Disable surgery test-create-temporary-file connected Windows (reported by "jjhoo"). - Drop usage of XCODE_... situation variables connected MacOS. - Add build directory to rpath connected MacOS truthful that the trial suite picks up correct libchicken, moreover if CHICKEN is already installed (thanks to Christian Himpe). - Default "cc" connected BSD systems for building CHICKEN to debar ABI problems erstwhile linking pinch C++ code. - Runtime system - Make statement numbers disposable for correction output and during syntax description successful the expert arsenic good arsenic the compiler. 5.3.0 - Core libraries - In (chicken process-context posix), the setters for current-user-id, current-effective-user-id and current-group-id now cheque that the caller user/group worth is simply a fixnum alternatively of blindly passing it on to the C implementation (which would origin bogus personification ids to beryllium set). Fixes #1787, acknowledgment to Christopher Brannon. - The srfi-17 module now exports the `getter-with-setter` and `setter` procedures, not conscionable the set! macro (thanks to Lassi Kortela) - Fix bent successful chicken-install -update-db connected Windows (thanks to Mark Fisher for reporting and Jani Hakala for debugging and patch). - Fixed an inadvertant correction during correction reporting successful the `numerator` and `denominator` procedures erstwhile passed non-finite flonums (#1730). - Fixed a bug wherever optimisations for `irregex-match?` would cause runtime errors owed to the inlined specialisations not being fully-expanded (see #1690). - Irregex has been updated to upstream 0.9.10, which fixes behaviour of irregex-replace/all pinch affirmative lookbehind truthful each matches are replaced alternatively of only the first (reported by Kay Rhodes), and a regression regarding replacing quiet matches which was introduced by the fixes successful 0.9.7 (reported by Sandra Snan). Also, the http-url shorthand now allows immoderate top-level domain and the old "top-level-domain" now besides supports "edu" (fixed by Sandra Snan). Also, a problem was fixed pinch capturing groups wrong a kleene star, which could sometimes return incorrect parts of the match. Finally, "bol" handling was fixed to grip newlines consistently truthful that aggregate matches don't overlap (reported by Sandra Snan). - current-milliseconds has been deprecated successful favour of the name current-process-milliseconds, to debar disorder owed to naming of current-milliseconds versus current-seconds, which do something rather different. Also, its meaning has been tweaked to guarantee that it returns the clip since process startup. On Windows, it will now return sane values aft 24 days of uptime. On UNIX, the values returned will beryllium precise to the millisecond alternatively of rounded down to the nearest 2nd astatine startup (which would consequence successful erratic startup times). - The default mode for files created by `file-open' has been changed to 0666 (plus immoderate alteration the effective umask applies), rather than 0744 (see #1698). - Fixed type database introduction for "log" pinch 2nd arg (fixes #1725). - Made topological-sort behave amended erstwhile dependency target is listed aggregate times by concatenating limitations (fixes #1185). - Module system - Reexported macros now activity erstwhile the reexporting module redefines identifiers from the original (fixes #1757, reported by Sandra Snan). - When utilizing "except" successful "import" to omit reexported macros, they are really not imported (#1771, reported by Sandra Snan). - Runtime system - Sleeping primordial thread doesn't hide mutations made to parameters successful interrupt handlers anymore. (See #1638. Fix contributed by Sebastien Marie) - A characteristic corresponding to the connection size is available sloppy of the connection size (#1693) - The default maximum heap size connected 64-bit platforms is now the theoretical maximum addressable representation size (#1675). Use -:m if you would for illustration to override this astatine run-time. - Deprecated C_(a_i_current_)milliseconds successful favour of C_(a_i_)current_process_milliseconds to lucifer the Scheme-level deprecation of current-milliseconds. - Officially deprecated C_pair() successful favour of C_a_pair(); it has been deprecated for years. - At programme cleanup, finalizers are only forced erstwhile the live finalizer count is non-zero - The awesome `srfi-87` has been added to the database of built-in characteristic identifiers. - Garbage postulation algorithm has been changed to trim thrashing erstwhile heap is almost full, by increasing the heap sooner. A caller -:hf action was added to tweak erstwhile heap maturation should occur. - Added `-:R' runtime action to initialize rand() state deterministically (should thief pinch #1650 and benchmarking). - Compiler - Statically linked programs utilizing built-in libraries are supported again (fixes #1788, a regression from 5.2.0). - Avoid re-using argvector erstwhile inline remainder operations are being utilized successful CPS calls (#1703, acknowledgment to Jakob L. Keuze). - An `emit-types-file` declaration has been added, which corresponds to the compiler emblem of the aforesaid sanction (#1644, acknowledgment to Marco Maggi for the suggestion). - Fixed a bug caused by a bad relationship betwixt 2 optimizations: argvector remainder ops would beryllium applied moreover if a process already got its remainder arg consed astatine the telephone tract (#1756, acknowledgment to Sandra Snan). - Build system - Fix build pinch tcc. - Fix a fewer tests connected Windows truthful the suite passes erstwhile again. - Auto-configure astatine build clip connected astir platforms. Cross-compilation still requires PLATFORM to beryllium set, and it tin still beryllium provided manually, but it is nary longer required successful the communal case. - Fix Linux to MingW cross-compilation (#1768, acknowledgment to Théo Cavignac) - The `clean' target for make now besides removes build configuration files. - The `distclean' target for make has been removed (now `clean' does what `distclean' utilized to do). - Tools - Fix a problem pinch ovum installation scripts connected Windows, wherever the level was not correctly identified, depending connected the ammunition used during installation of the halfway strategy (thanks again to Mark Fisher for reporting and helping successful uncovering the culprit). - Fixed a bug successful chicken-install (#1744) that would cause `Error: (string->number) bad statement type: #!eof` successful immoderate cases. - If chicken-install has a programme prefix/suffix, it now writes to a cache directory matching its programme sanction (#1713, acknowledgment to Alice Maz) - Fixed bug successful chicken-install regarding adaptable quotation connected UNIX-like systems which prevented installation into paths pinch spaces (#1685). - Fixed a akin bug successful chicken-install for paths pinch spaces connected mingw and mingw-msys (#1727, acknowledgment to Josh Helzer for reporting and Vasilij Schneidermann for the patch). - Module system - Fixed a representation leak erstwhile calling (import) aggregate times successful a row connected the aforesaid module (#1772; reported by "plugd" connected IRC). 5.2.0 - Core libraries - Fix `memory-statistics` by returning semi-space bytes and used semi-space bytes for illustration the archiving says. Old implementation returned full-heap size and (full-heap - used-semi-space). - for-each and representation now behave consistently successful compiled and interpreted mode, for illustration successful SRFI-1. They now extremity erstwhile the shortest database is exhausted alternatively of raising an objection (fixes #1422). - There is now a srfi-88 module which contains conscionable the three procedures from the (chicken keyword) module defined by the SRFI. - A characteristic identifier named "srfi-88" is now registered. - The procedures `record-printer` and `set-record-printer!` and a corresponding SRFI-17 setter person been added. These deprecate `define-record-printer` which isn't a "real" meaning (see #1294). - On Windows, `decompose-directory` nary longer crashes erstwhile a drive missive is coming successful the supplied way string. - irregex-replace[/all] person been fixed for quiet matches, truthful they will nary longer driblet characters and disregard the replacement (#1661). - Irregex has been updated to upstream 0.9.7, which besides improves really quiet matches are treated successful irregex-fold and irregex-split. - Runtime system - Quoted quiet keywords for illustration ||: and :|| are now publication for illustration prescribed by SRFI-88 successful the corresponding keyword mode. Symbols containing quoted quiet prefixes aliases suffixes for illustration ||:abc and abc:|| will be publication correctly arsenic symbols now (fixes #1625, acknowledgment to Andy Bennett). - IEEE floating constituent antagonistic zero is now decently handled: it can beryllium read, written and distinguished by eqv? and equal?, but not = (fixes #1627, acknowledgment to John Cowan). - ##sys#check-exact and its C implementations C_i_check_exact and C_i_check_exact_2 person been deprecated (see besides #1631). - When garbage collector is manually invoked from a finalizer, raise an correction alternatively of hanging everlastingly (fixes #1586). - define-record-type will now springiness an correction if the constructor meaning refers to section that's not listed elsewhere (see #1633) - Added caller -:hu action to group the representation usage debased watermark percent astatine which the heap should beryllium shrunk, and changed the calculation to really bespeak this (see #1379). - Compiler - Fixed a bug successful lfa2 walk which caused "if" aliases "cond" nodes to be incorrectly unboxed if the "else" branch had a flonum consequence type (#1624, acknowledgment to Sven Hartrumpf) - Inline files nary longer mention to unexported overseas stub functions (fixes #1440, acknowledgment to "megane"). - In immoderate cases, remainder statement lists do not request to beryllium reified, which should make utilizing optional arguments and case-lambda faster (#1623). - Values from overseas types which person an statement aliases return value converter are nary longer inferred to person the Scheme type which corresponds to the earthy overseas type, which was incorrect (#1649). - Module system - Trying to export a overseas variable, define-inlined process or define-constant adaptable gives a friends correction alternatively of saying the adaptable doesn't beryllium (fixes #1346). - When modules are registered, they nary longer pollute the global situation pinch imports made successful that module (fixes #1548) - Tools - The caller "-module-registration" options causes module registration codification to ever beryllium included successful the program, moreover erstwhile it has also been emitted arsenic a abstracted record (for illustration pinch "-J"). - chicken-install now correctly checks server consequence codification to avoid interpreting correction consequence bodies (like 404, 500) arsenic Scheme code. - chicken-install now follows HTTP redirects erstwhile downloading eggs. - chicken-install will now alteration to the correct thrust before attempting to alteration to the ovum directory (fixes #1647). 5.1.0 - Core libraries - Symbols ending aliases starting pinch a colon are now ever pipe-quoted erstwhile written by `write` to guarantee they tin beryllium publication backmost pinch a different keyword-style setting. - Read-write invariance of typical symbols starting pinch #! other than #!key, #!rest aliases #!optional is now preserved (#1572). - When utilizing (set-file-position!) connected a port, its EOF position will now beryllium reset. - In (chicken record posix), the values of perm/irgrp, perm/iwgrp, perm/ixgrp, perm/iroth, perm/iwoth and perm/ixoth are now correctly defined (they were each for "usr"; #1602, acknowledgment to Eric Hoffman). - In (chicken record posix), `file-truncate` now accepts besides accepts larboard objects, for consistency pinch different record procedures. All specified procedures from (chicken record posix) now person the correct types successful types.db (fixes #1609, acknowledgment to Robert Jensen). - Add the system-config-directory and system-cache-directory procedures successful the chicken.platform module. These procedures travel the XDG specification and besides springiness sensible results connected Windows. - Fix get-environment from (chicken process-context) to raise an correction erstwhile passed #f alternatively of segfaulting. - Qualified symbols (##foo#bar style) are nary longer encoded by a byte prefix wrong the awesome name. This ensures read-write invariance of symbols which commencement pinch a low-byte character (fixes #1077, isolated from for keywords, which commencement pinch NUL bytes). - Fix a missing export (list->s64vector) successful SRFI-4. - Runtime system - Keywords are now chopped types; they are not a subtype of symbols. - Use arc4random connected FreeBSD (thanks to Tobias Kortkamp and gahr) - Removed the unused, undocumented (and incorrect!) C functions C_delete_symbol_table and C_set_symbol_table. - Continuations which discard further values beyond the first no longer judge aggregate values via nonstop invocation aft being captured done `call/cc`, only via `values` (revert of #1390, owed to #1601) - SRFI-4 vector predicates, reference, group and magnitude procedures should now beryllium faster successful tight loops arsenic they're inlineable (#757). - Keywords are now interned successful a abstracted keyword table, not successful the modular awesome table. This brings afloat read-write invariance for symbols (they tin now besides commencement pinch NUL bytes). Keywords nary longer person plists. Fixes #1576. - Increased the "binary compatibility version" to 11. - Compiler - Restored optimized implementations of =, +, -, /, * and quotient in fixnum-arithmetic mode (fixes #1604 mostly; acknowledgment to "chickendan"). - Added an optimization walk for reducing the magnitude of boxing of intermediate floating constituent values, enabled by the "-lfa2" compiler option. - The "lfa2" walk is now enabled astatine optimization levels 2 aliases higher. - Module system - When you effort to import the module you are presently defining into itself, an correction will beryllium raised. This prevents an infinite loop in the compiler erstwhile later trying to import that aforesaid module (fixes #1506, acknowledgment to Kristian Lein-Mathisen). - Foreign usability interface - Improved hygiene successful FFI macro description s, which intends you don't person to import "scheme" aliases "(chicken base)" for them to work. - Type system - It is now imaginable to quote free variables successful type declarations, which acts arsenic shorthand for `forall' (thanks to "megane") - Tools - csi now uses (system-config-directory) to find csirc and falls backmost to $HOME/.csirc erstwhile needed. - chicken-install now uses (system-config-directory) to find a user defined setup.defaults record ; it besides uses (system-cache-directory) for its ovum cache directory erstwhile the CHICKEN_EGG_CACHE environment adaptable is not defined. - Egg specifications - Allows "cond-expand" and "error" forms successful ovum specification files. - Add "c-object" and "object" properties to nexus separately compiled C objects into CHICKEN code. 5.0.0 - Runtime system - Added support for the afloat numeric tower, including various new procedures taken from the "numbers" egg. All calculations will now return nonstop numbers wherever possible, truthful codification relying connected flonums being returned whitethorn request to beryllium changed if logical numbers do not supply the desired performance. - Port directionality has been generalized from a elemental input/output emblem to a bitmap, to let for multidirectional ports. - Weak awesome GC is faster, simpler, and tin now cod all unreferenced symbols alternatively of a maximum of 997 per awesome GC. - The -:w action has been removed; symbols are now ever collected. - Increased the "binary compatibility version" to 9. - Continuations which discard further values beyond the first now besides judge aggregate values via nonstop invocation aft being captured done `call/cc`, not conscionable via `values` (#1390) - Removed the deprecated C_locative_ref and C_mutate2 C functions. - The trace buffer nary longer holds connected to thread objects, allowing them to beryllium garbage collected sooner (#1356, acknowledgment to Kristian Lein-Mathisen) - On Cygwin and MinGW, the "build-platform" now corresponds to the instrumentality concatenation utilized (gnu, clang, unknown) for illustration connected *nix, while the software-version is now "cygwin" aliases "mingw32" alternatively of "unknown". This besides intends the features database will now incorporate the instrumentality chain connected each platforms. - Symbols starting pinch #% are nary longer treated specially and need to beryllium quoted pinch pipes. This makes the "%" motion disposable for use successful custom/user-defined sharp-sign publication syntax. - Compiler - Fixed an disconnected by 1 allocation problem successful generated C codification for (list ...). - The "-scrutinize" compiler action has been removed. - The "-module" compiler action (aliased arsenic "-m") now expects a module name. - The generated C output of the compiler is now deterministic: it will beryllium bit-for-bit identical erstwhile compiling the aforesaid Scheme file pinch the aforesaid type of the compiler. - the "-consult-type-file" and "-emit-type-file" options person been renamed to "-consult-types-file" and "-emit-types-file", respectively. - Tools - The caller "-link" action to csc allows linking pinch objects from extensions. - The caller "-libdir" action to csc allows overriding the runtime library directory. - The ambiguous "-l" action for csc has been removed (#1193). - Removed deprecated "-n" shorthand for "-emit-inline-file" from csc. - Removed "chicken-bug" tool. - Core libraries - Removed support for memory-mapped files (posix), queues (data-structures), binary-search (data-structures), scan-input-lines (utils), group-information (posix) object-eviction (lolevel), and compile-file (utils). These are now disposable arsenic eggs. - Removed the srfi-1, srfi-13, srfi-14, srfi-18, srfi-69, and utils units. These are now disposable arsenic eggs. - Added the `executable-pathname` process for retrieving a way to the currently-running executable. - Removed each support for SWIG. - Removed interrupts-enabled declaration specifier. - `sleep` now suspends the existent thread erstwhile threading is enabled, different it sleeps the process. The caller `process-sleep` procedure successful portion posix tin beryllium utilized to slumber the process unconditionally. - `with-error-output-to-port' from the ports module has been renamed to the much communal `with-error-to-port', and `with-error-to-string' has been added for completeness (thanks to Michael Silver). - A caller `make-bidirectional-port' process has been added to the ports portion that will harvester abstracted input- and output- ports into a azygous bidirectional port. - New `input-port-open?` and `output-port-open?` procedures person been added for testing whether a larboard is unfastened successful a circumstantial direction. - An `include-relative` shape has been added to the (chicken base) module. This useful for illustration `load-relative` but for textual inclusion. - Keywords are now ever written successful "portable" style by WRITE, so that the reader's keyword style doesn't request to lucifer the writer's. - The situation adaptable `CHICKEN_PREFIX` has been removed. - Added the `glob->sre` process to the irregex library. - Removed the `get-host-name' and `system-information' procedures. These are disposable successful the "system-information" egg. - Removed the `eval-when`, `select` and `ensure` macros. These are disposable successful the "miscmacros" egg. - Removed the require-extension-for-syntax macro. - Renamed bit-set? to bit->boolean because of swapped statement order pinch respect to SRFI-33 and SRFI-60, which was confusing (fixes #1385, acknowledgment to Lemonboy). - file-{read,write,execute}-access will now raise an objection when the record doesn't beryllium aliases immoderate different non-access related problem is detected (fixes #1386, acknowledgment to Vasilij Schneidermann). - `change-file-mode` was renamed to set-file-permissions! and SRFI-17 generalized set! support has been added for `file-permissions`. This process now besides accepts a record descriptor aliases a port. - `file-permissions` now returns 1 value: the support integer. - `read-file` has been renamed to `read-list`. - `read-all` was dropped, arsenic `read-string` pinch #f arsenic its NUM argument is equivalent. - `read-lines` and `read-all` nary longer judge a drawstring naming a file, only ports. - The procedures for random numbers person been reimplemented; entree to system-specific entropy is available, together pinch a reasonably bully pseudo random number generator (WELL512). - `glob` now returns an quiet database for non-existent aliases inaccessible directories, alternatively of erroring out. - `file-copy' and `file-move' person been renamed to `copy-file' and `move-file', for consistency pinch `delete-file' and `rename-file'. - `rename-file' now refuses to overwrite an existing record unless an optional "clobber" statement is provided. - The `r4rs` module nary longer exports `eval`, which was not successful R4RS. - `process`, `process*` and `process-execute` now expect lists of the form (("NAME" . "VALUE") ...) alternatively of the erstwhile (("NAME=VALUE") ...) arsenic their situation argument. - `repository-path` is now a parameter containing a database of strings instead of a string, arsenic the hunt way for libraries tin now incorporate multiple directories. - `file-read-access?`, `file-write-access?` and `file-execute-access?` have been renamed `file-readable?`, `file-writable?` and `file-executable?` into the (chicken file) module. - Module system - The compiler has been modularised, for improved namespacing. This intends names from the compiler should not leak retired into the compiled program's (macro) namespace anymore. - The halfway units person been converted to modules nether the "chicken" namespace. - Added support for list-style room names. - The "use" and "use-for-syntax" typical forms person been removed successful favour of "import" and "import-for-syntax" to trim confusion. - Module imports are now lexically scoped: identifiers provided by an (import ...) wrong (let ...) won't beryllium visible extracurricular that let. - Modules implementing an interface tin now correctly export extra identifiers (bug reported by Martin Schneeweis, hole by "megane"). - Syntax expander - Removed support for (define-syntax (foo e r c) ...), which was undocumented and not officially supported anyway. - Removed support for normal "lambda" forms arsenic syntax transformers, which has been deprecated since 4.8.0. - specify and friends are now aggressively rejected successful "expression contexts" (i.e., anyplace but toplevel aliases arsenic soul defines). - define-record and define-record-type now create grounds types which are tagged pinch the module successful which they're defined, so predicates nary longer return #t for records pinch the aforesaid tag defined successful different module. This tag is now besides disposable under an identifier that matches the grounds type sanction (fixes #1342). - `include` now splices included expressions successful the discourse successful which the inclusion appears and does not dainty the expressions arsenic toplevel expressions by default. - Eggs management - Egg-installation and building has been wholly overhauled. - .meta + .setup files person been merged into a azygous declarative ".egg" file. - More fixed checks for ovum descriptions, simplified generation of OS-specific build + instal commands that is (hopefully) much applicable for package maintainers. - Egg sources are cached locally to trim download and rebuild times. - Dropped galore obscure aliases unimportant options and features from `chicken-install`: (`-keep-installed`, `-reinstall`, `-proxy`, `-no-install`, `-username`, `-password`, `-init`, `-deploy`, `-keep-going`, `-scan`, `-csi`, `-show-depends`, `-show-foreign-depends`, `-prefix`. - Added caller "-from-list" action to chicken-install. - Eggs tin now beryllium installed and located successful aggregate directories, utilizing the `CHICKEN_REPOSITORY_PATH` + `CHICKEN_INSTALL_REPOSITORY` situation variables. - Static compilation of eggs is now afloat supported and static versions of compiled eggs are disposable by default. - In a statically built chicken, the egg-tools ("chicken-install", "...-status", "...-uninstall") are still available, but only support fixed compilation of eggs. - Foreign usability interface - The overseas type specifier "ssize_t" is now accepted, and "size_t" arguments now only judge affirmative integers. Return values of type size_t are nary longer truncated connected 32-bit platforms. 4.13.0 - Security fixes - CVE-2017-6949: Remove unchecked malloc() telephone successful SRFI-4 constructors erstwhile allocating successful non-GC memory, resulting successful imaginable 1-word buffer overrun and/or segfault (thanks to Lemonboy). - CVE-2017-9334: `length' nary longer crashes connected improper lists (fixes #1375, acknowledgment to "megane"). - CVE-2017-11343: The randomization facet of the awesome array was group earlier the random seed was set, causing it to person a fixed value connected galore platforms. - Core Libraries - Unit "posix": If file-lock, file-lock/blocking aliases file-unlock are interrupted by a signal, we now retry (thanks to Joerg Wittenberger). - char-ready? connected drawstring ports now besides returns #t astatine EOF, arsenic per R5RS; successful different words, it ever returns #t (thanks to Moritz Heidkamp) - Unit srfi-4: Fixed typo that collapsed SRFI-17 generalised set! syntax connected s8vectors (thanks to Kristian Lein-Mathisen). - Large literals nary longer clang pinch "invalid encoded numeric literal" connected mingw-64 (#1344, acknowledgment to Lemonboy). - Unit irregex: Fix bug that prevented multibyte UTF-8 characteristic sets from being matched correctly (Thanks to Lemonboy and Chunyang Xu). - Runtime system: - The profiler nary longer uses malloc from a awesome handler which may origin deadlocks (#1414, acknowledgment to Lemonboy). - The scheduler nary longer indirectly hangs connected to the aged thread erstwhile switching to a caller one, which caused excessive memory depletion (#1367, acknowledgment to "megane"). - C++ programs nary longer neglect pinch a awesome lookup correction when compiled pinch debugger support (-d3 aliases -debug-info). - Syntax expander - Renaming an identifier doubly nary longer results successful an undo of the rename (fixes #1362, acknowledgment to "megane"). - Build system - Fixed surgery compilation connected NetBSD, owed to missing _NETBSD_SOURCE. - Fixed compilation connected DragonflyBSD owed to nary characteristic macro support successful its modular C room (thanks to Markus Pfeiffer). - Compiler - The scrutinizer nary longer uses 'fixnum arsenic the type for fixnums that mightiness not fresh into a fixnum connected 32-bit architectures. - Foreign usability interface - Correctly cipher representation requirements of Scheme objects produced from overseas types pinch "const" qualifiers, avoiding memory corruption (#1424, acknowledgment to Vasilij Schneidermann and Lemonboy) - Do not publication beyond impermanent stack buffer, which could lead to a clang erstwhile returning from a overseas callback (#1428). 4.12.0 - Security fixes - CVE-2016-6830: Fix buffer overrun owed to excessively agelong argument aliases situation lists successful process-execute and process-spawn (#1308). This besides removes unnecessary limitations connected the magnitude of these lists (thanks to Vasilij Schneidermann). - CVE-2016-6831: Fix representation leak successful process-execute and process-spawn. If, during statement and situation list processing, a database point isn't a string, an objection is thrown, successful which lawsuit antecedently malloc()ed strings weren't freed. - CVE-2016-9954: Irregex has been updated to 0.9.6, which fixes an exponential detonation successful compilation of nested "+" patterns. - Compiler: - define-constant now correctly keeps awesome values quoted. - Warnings are now emitted erstwhile utilizing vector-{ref,set!} aliases one of take, drop, list-ref aliases list-tail pinch an retired of scope index for vectors and due lists of a decidedly known length. - The scrutinizer will nary longer driblet knowledge of the magnitude of a vector. It still drops types of its contents (which whitethorn beryllium mutated). - Fixed incorrect argvector restoration aft GC successful directly recursive functions (#1317). - "Direct" process invocations now besides support debug info (#894). - Syntax expander - DSSSL lambda lists person improved hygiene, truthful they don't need the chickenhearted aliases strategy modules to beryllium imported successful afloat (#806). - The let-optionals* macro nary longer needs "quote", "car" and "cdr" to beryllium imported and bound to their default values (#806). - Runtime system: - C_locative_ref has been deprecated successful favour of C_a_i_locative_ref, which is faster because it is inlined (#1260, acknowledgment to Kooda). - The default correction handler now truncates very agelong condition messages (thanks to Lemonboy). - Weak awesome GC (-:w) nary longer drops random symbols (#1173). - The number of arguments to procedures, some via "apply" and direct invocation, are now constricted only by the C stack size (#1098). - "time" macro now shows highest representation usage (#1318, acknowledgment to Kooda). - Avoid crashes successful ffi callbacks aft GC (#1337, acknowledgment to cosarara). - Core libraries: - Irregex has been updated to 0.9.5, which fixes matching of each "bow" occurrances beyond the first pinch irregex-fold (upstream rumor #14). - Keywords are much consistently read/written, for illustration symbols (#1332). - SRFI-39: When jumping retired of a parameterized move extent, "parameterize" now retrieve the existent values, truthful erstwhile jumping back in, they are restored (fixes #1336, acknowledgment to Joo ChurlSoo). This was a regression caused by the hole for #1227. - Tools: - "chicken-install" - When installing eggs successful deploy mode pinch "-keep-installed", eggs nether the prefix won't unnecessarily beryllium reinstalled (#1144). - Added caller action "-no-install-deps" which inhibits automatic installation of dependencies, useful pinch "-prefix" (#1298). 4.11.0 - Security fixes - Specialisation rules for string-{ref,set!}, bit-set? and move-memory nary longer usage unchecked C functions which could consequence successful undefined behaviour, including buffer overruns (#1216). - Platform support - CHICKEN now supports the Linux X32 ABI (thanks to Sven Hartrumpf). - Tools - Feathers now has a much neutral colour strategy and larger font size. - With the -dir option, feathers tin now correctly find root code. - Runtime system: - The calling normal of CPS procedures has been changed to usage "argument vectors" alternatively of C calling convention. - The C API of C_values(), C_do_apply() and really to invoke CPS functions has changed. The C_procN() macros person disappeared. The manual illustration successful "Accessing outer objects" for C_values has been updated. See besides the "numbers" ovum for examples on really to support pre- and post-4.10.1 CHICKENs simultaneously. - Apply hack is nary longer used; the limitation of 128 arguments has been lifted for platforms which had nary use hack. - Increased the "binary compatibility version" to 8. - Delivery of signals successful different OS-level threads is now dealt with successful a much robust measurement (#1232) (thanks to Joerg Wittenberger). - Compiled programs pinch ample literals won't clang connected startup (#1221). - Comparisons of closures now behave successful a unchangeable way, whether aliases not the codification was compiled pinch the -no-lambda-info action (#1041). - The awesome handling codification tin nary longer trigger "stack overflow" or "recursion excessively heavy aliases information information encountered" errors (#1283). - Compiler: - Specializations connected implicit "or" types for illustration "number" aliases "boolean" now work, removing the request for the inferred types to match declared types exactly. Specializations are matched from first to past to resoluteness ambiguities (#1214). - Compiler rewrites for char{<,>,<=,>=,=}? are now safe (#1122). - When requesting to emit import libraries that don't exist, the compiler now gives an correction alternatively of softly continuing (#1188). - Don't silently truncate immense literals (thanks to Claude Marinier). - Core libraries - try-compile from setup-api cleans up impermanent output files (#1213). - SRFI-18: thread-join! nary longer gives an correction erstwhile passed a thread successful the "sleeping" authorities (thanks to Joerg Wittenberger) - SRFI-18: mutex-lock! will not group ownership of mutexes when passed #f arsenic the proprietor (#1231), not disown a mutex from proprietor if locking fails for timeout and not support the past thread which held a mutex until the adjacent fastener (thanks to Joerg Wittenberger). - SRFI-39: When a parameter's "guard" process raises an exception, "parameterize" now correctly resets the original values of all parameters (fixes #1227, acknowledgment to Joo ChurlSoo). - Irregex has been updated to 0.9.4, which fixes terrible performance problems pinch {n,m} repeating patterns (thanks to Caolan McMahon). - Unit "posix": The pursuing posix procedures now activity connected port objects: file-stat, file-size, file-owner, file-permissions, file-modification-time, file-access-time, file-change-time, file-type and each procedures utilizing file-type. These are: regular-file?, symbolic-link?, block-device?, character-device? fifo? and socket?. - Unit "posix": When "file-close" is interrupted it will retry, to debar leaking descriptors (thanks to Joerg Wittenberger). - Unit "data-structures": alist-{update[!],ref} were made consistent pinch srfi-1 successful the statement bid of comparison procedures. - Unit "lolevel": locative-ref has been fixed for locatives of u32 and s32vectors (thanks to Joerg Wittenberger for pointing this out). - string->number now signals exceptions if passed a bad guidelines instead of segfaulting (#1272; reported by "Tilpner" connected IRC). - Tools - A debugger is now available, known arsenic "feathers", which allows basal source-level debugging of compiled Scheme code. - A statistical profiler has been added, enabling sampling-based runtime profiling of compiled programs. - "chicken-install" - When installing eggs successful deploy mode, already satisfied limitations aren't reinstalled each clip (#1106). - "chicken-uninstall" - -prefix and -deploy options were added, matching chicken-install. - "chicken-status" - -prefix and -deploy options were added, matching chicken-install. - The -sudo and -s options for chicken-install and chicken-uninstall now grant a "SUDO" situation adaptable (thanks to Timo Myyrä). - Syntax expander - Mixed soul define/define-values are now correctly ordered, so later defines tin mention to earlier define-values (#1274). 4.10.0 - Security fixes - CVE-2014-6310: Use POSIX poll() connected Android level to avoid imaginable select() buffer overrun. - CVE-2014-9651: substring-index[-ci] nary longer scans beyond string boundaries. - CVE-2015-4556: string-translate* nary longer scans beyond string boundaries. - Core libraries - alist-ref from portion data-structures now gives an correction erstwhile passed a non-list, for consistency pinch assv/assq/assoc. - Unit tcp now implicitly depends connected ports alternatively of extras. This whitethorn break programs which don't usage modules and forgot to require extras but usage procedures from it. - SRFI-13: hole string-copy! successful cases root and destination strings' representation areas overlap (#1135). - SRFI-1: Check statement types successful lset and list= procedures (#1085). - Fixed another, akin bug successful move-memory! for overlapping memory. - Fixed surgery specialisation for move-memory! connected pointer types. - Fixed surgery specialisation for irregex-match-num-submatches. - Fixed bug successful make-kmp-restart-vector from SRFI-13. - Removed deprecated implicit description of $VAR- and ~ successful pathnames. The ~-expansion functionality is now disposable successful the "pathname-expand" ovum (#1001, #1079) (thanks to Florian Zumbiehl). - normalize-pathname has been simplified to debar adding trailing slashes aliases dots (#1153, acknowledgment to Michele La Monaca and Mario Goulart). - Unit srfi-4: - write-u8vector has been made much businesslike (thanks to Thomas Hintz). - read-u8vector has been made much businesslike (thanks to Andy Bennett for pointing this retired and testing an improvement). - Unit lolevel: - Restore long-lost but still documented "vector-like?" process (#983) - Unit "files": - normalize-pathname nary longer considers paths starting pinch ".//" arsenic absolute (#1202, reported by Haochi Kiang). - Unit "posix": - set-file-position! now allows antagonistic positions for seek/cur (thanks to Seth Alves). - file-mkstemp now useful correctly connected Windows, it now returns valid record descriptors (#819, acknowledgment to Michele La Monaca). - create-directory connected Windows now creates each intermediate directories erstwhile passed #t arsenic 2nd parameter. - Runtime system: - Removed respective deprecated, undocumented parts of the C interface: C_zap_strings, C_stack_check, C_retrieve, C_retrieve_proc, C_retrieve_symbol_proc, C_i_foreign_number_vector_argumentp, C_display_flonum, C_enumerate_symbols - Removed respective deprecated and undocumented soul procedures: ##sys#zap-strings, ##sys#round, ##sys#foreign-number-vector-argument, ##sys#check-port-mode, ##sys#check-port* - SIGBUS, SIGILL and SIGFPE will now origin due exceptions instead of panicking (thanks to Joerg Wittenberger). - Module system - Allow functor arguments to beryllium optional, pinch default implementations. - Fixed a bug that prevented functors from being instantiated with built-in modules. - Fixed procreation of import libraries for instantiated functors (#1149, acknowledgment to Juergen Lorenz). - Syntax expander - define-values, set!-values and letrec-values now support afloat lambda lists arsenic binding forms - cond expands correctly erstwhile a changeless is utilized successful operation pinch => (thanks to Michele La Monaca) - C API - Removed deprecated C_get_argument[_2] and C_get_environment_variable[_2] functions. - C_mutate2 has been deprecated successful favour of C_mutate - chicken.h tin beryllium included successful C++ programs successful strict C++11 mode without compiler errors connected Linux (thanks to "Izaak"). - Foreign usability interface - The overseas type specifier "scheme-pointer" now accepts an optional C pointer type (thanks to Moritz Heidkamp and Kristian Lein-Mathisen). - Type hinting for foreign-primitives now allows returning multiple values erstwhile nary return type has been specified. - Compiler - Fixed an disconnected by 1 allocation problem successful generated C codification for (list ...). - Build system - MANDIR was renamed to MAN1DIR and TOPMANDIR was renamed to MANDIR successful bid to comply pinch modular Makefile believe successful UNIX. - INCDIR was renamed to CHICKENINCDIR, and now derives from INCLUDEDIR, which defaults to $(PREFIX)/include - BINDIR, LIBDIR, SHAREDIR, INCLUDEDIR, MANDIR, MAN1DIR, DOCDIR, CHICKENINCDIR and CHICKENLIBDIR will now besides beryllium taken from the environment, if coming (like PLATFORM, DESTDIR and PREFIX). - Tools - "csc" - On Cygwin, -static now useful again (thanks to Michele La Monaca) - "chicken-install" - When utilizing chicken-install -retrieve, and an correction occurs during retrieval (or the ovum doesn't exist), the egg's directory is now decently cleaned up (#1109, acknowledgment to Alex Charlton) - "chicken" - The -r5rs-syntax action did nothing; this has been fixed. 4.9.0 - Security fixes - CVE-2014-3776: read-u8vector! nary longer sounds beyond its buffer when magnitude is #f (thanks to Seth Alves). - CVE-2013-4385: read-string! nary longer sounds beyond its buffer when magnitude is #f. - CVE-2013-1874: ./.csirc is nary longer loaded from the existent directory upon startup of csi, which could lead to untrusted codification execution. (thanks to Florian Zumbiehl) - CVE-2013-2024: On *nix, the qs process now single-quotes everything alternatively of relying connected a blacklist of ammunition characters to beryllium escaped. On Windows, it decently duplicates double-quote characters. (thanks to Florian Zumbiehl) - CVE-2013-2075: Use POSIX poll() successful different places wherever select() was still being used. (thanks to Florian Zumbiehl and Joerg Wittenberger) - CVE-2012-6122: Use POSIX poll() connected systems wherever available. This avoids a creation flaw successful select(); it supports nary much than FD_SETSIZE descriptors. - Core libraries - Fix subvector erstwhile the TO optional statement equals the fixed vector magnitude (#1097) - Unit extras now implicitly depends connected ports. ports nary longer implicitly depends connected extras. This whitethorn break programs which don't usage modules and forgot to require ports but usage procedures from it. - Support has been added for the space-safe R7RS macro "delay-force". - Export file-type from the posix portion (thanks to Alan Post). - SRFI-4 s8vectors now activity correctly successful compiled codification connected PowerPC and ARM. - thread-join! now useful correctly moreover if the waiting thread was prematurely woken up by a signal. - unsetenv has been fixed connected Windows. - The process procedure has been fixed connected Windows. - Nonblocking behaviour connected sockets has been fixed connected Windows. - Possible title information while handling TCP errors has been fixed. - The posix portion will nary longer bent upon immoderate correction successful Windows. - resize-vector nary longer crashes erstwhile reducing the size of the vector. - Distinct types for boolean existent and mendacious person been added to the scrutinizer. - Fixed bugs successful string-trim-right, string-index-right and string-skip-right, from SRFI-13 - read-line nary longer returns trailing CRs successful uncommon cases connected TCP ports (#568) - constitute and pp now correctly usage flight sequences for power characters (thanks to Florian Zumbiehl) - posix: memory-mapped record support for Windows (thanks to "rivo") - posix: find-file's trial statement now besides accepts SRE forms. - numerator and denominator now judge inexact numbers, arsenic per R5RS (reported by John Cowan). - Implicit $VAR- and ~-expansion successful pathnames person been deprecated (#1001) - Fixed EINTR handling successful process-wait and erstwhile reference from record ports. - Irregex is updated to 0.9.2, which includes bugfixes and faster submatches. - Compile-time description s for "[sf]printf" are somewhat much efficient. - Removed the deprecated "always?", "never?", "shuffle" and "none?" procedures. - Fixed problem "make-pathname" that returned an absolute way if given a comparative 1 without a directory argument. - The implementation of promises has been made much efficient. - Removed the deprecated "c-runtime", "null-pointer?" and "pointer-offset" procedures. - The deprecated othername "mutate-procedure" for "mutate-procedure!" has been removed. - On 64-bit systems the characteristic identifier "64bit" is registered. - "process-fork" accepts an optional statement that specifies wether different threads should beryllium terminated successful the kid process. - The "signal/bus" awesome identifier was missing. - Added setter-procedure for "signal-mask". - Added "recursive-hash-max-length" and "recursive-hash-max-depth" parameters (srfi-69). - Platform support - CHICKEN tin now beryllium built connected AIX (contributed by Erik Falor) - CHICKEN tin now beryllium built connected GNU Hurd (contributed by Christian Kellermann) - Basic support has been added for building Android and iOS binaries (see the "README" record for caveats and pitfalls) (contributed by Felix Winkelmann from bevuta IT GmbH) - Added support for 64-bit Windows (consult the "README" record for more information). - Runtime system - finalizers connected constants are ignored successful compiled codification because compiled constants are ne'er GCed (before, the finalizer would beryllium incorrectly invoked aft the first GC). (Reported by "Pluijzer") - The telephone trace buffer is now besides resizable astatine runtime via ##sys#resize-trace-buffer. - C_zap_strings and ##sys#zap-strings (undocumented) person been deprecated. - Special events successful poll() are now handled, avoiding hangs successful threaded apps. - When invoking procedures pinch galore remainder arguments straight (not via APPLY), raise an correction erstwhile statement count limit was reached alternatively of crashing. - When the maximum allowed heap size is reached, panic alternatively of crashing. - The codification generated for mutating information destructively is partially inlined and frankincense somewhat much efficient. - Fixed incorrect codification successful the overseas statement conversion for "unsigned-integer64" (#955). For unsigned-integer, integer64 and unsigned-integer64, disallow floating-point numbers. Fix behavior connected 32-bit systems. - On systems that supply sigprocmask(2), segmentation violations, illegal instruction signals, autobus errors and floating-point exceptions are now caught and trigger normal error-processing (including a backtrace). The handling of these truthful called "serious" signals tin beryllium abnormal by passing the "-:S" runtime action to executables. - Reclamation of unused interned symbols (enabled pinch the "-:w" runtime option) useful overmuch amended now. - Build system - The tests tin now beryllium tally without having to first instal CHICKEN. - Fixed a dependency problem that made it intolerable to build the distribution tarball connected Windows pinch the mingw compiler. - Increased the "binary compatibility version" to 7. - Tools - "csc" - "-z origin" is now passed arsenic a linker action connected FreeBSD when compiling for deployment (thanks to Jules Altfas & Vitaly Magerya) - "-deploy" useful now connected FreeBSD (thanks to Jules Altfas and Vitaly Magerya), OpenBSD and NetBSD (see README for NetBSD). - added "-oi"/"-ot" options arsenic alternatives to "-emit-inline-file" and "-emit-type-file", respectively; "-n" has been deprecated. - .c/.o files are nary longer overwritten erstwhile they person the aforesaid basename arsenic a Scheme root record (i.e. "csc foo.scm foo.c -o foo" useful now). - "chicken-install" - "-deploy" now correctly installs limitations of deployed eggs nether the deployment directory alternatively of globally. - Full URI syntax is now supported for proxy situation variables (thanks to Michele La Monaca) - "chicken-status" - Added -eggs bid statement action to database installed eggs - misc - Removed the deprecated "-v" options (use "-version" instead) successful various halfway programs. - The runtime linker way for compiled executables was not group correctly connected FreeBSD systems. This has now been fixed. - Removed the deprecated "make" and "make/proc" installation from the "setup-api" module; besides removed the deprecated "required-extension-version" and "required-chicken-version" procedures. - Syntax - Added the aliases "&optional" and "&rest" arsenic alternatives to "#!optional" and "#!rest" successful type-declarations (suggested by Joerg Wittenberger). - Vectors, SRFI-4 number vectors and blobs are now self-evaluating for R7RS compatibility. Being literal constants, they are implicitly quoted. - For R7RS compatibility, named characteristic literals #\escape and #\null are supported arsenic aliases for #\esc and #\nul. WRITE will output R7RS names. - The CASE shape accepts => proc syntax, for illustration COND (as specified by R7RS). - letrec* was added for R7RS compatibility. Plain letrec nary longer behaves for illustration letrec*. - Compiler - the "inline" declaration does not unit inlining anymore arsenic recursive inlining could lead to non-termination of the compiler (thanks to Andrei Barbu). - Type-analysis ("scrutiny") is enabled by default now, unless "-optimize-level 0" aliases "-no-usual-integrations" is given. - The "-scrutinize" compiler action has been deprecated. - A caller lightweight flow-analysis walk ("lfa2") has been added. Enable by passing the "-lfa2" action to the compiler. - The deprecated options "-disable-warning", "-heap-growth", "-heap-shrinkage" and "-heap-initial-size" person been removed. - Removed the deprecated "constant" declaration. - Removed the deprecated "-lambda-lift" and "-unboxing" compiler options. - Removed the deprecated "-V" compiler option. - Generated names for general parameters of overseas functions are slightly much informative. - Unused references to variables that sanction intrinsics tin beryllium removed. - In the flow-analysis pass, matching of combinations of "list"/"list-of" and "or" types pinch has been made much reliable. - Fixed various bugs successful the type database. - Syntax expander - added "require-extension-for-syntax" and "use-for-syntax". - Extended syntactic definitions are now disposable by default successful all evaluated code, peculiarly successful codification evaluated astatine runtime successful compiled applications. - Removed the deprecated version "(define-compiler-syntax (NAME . LLIST) BODY ...)" of "define-compiler-syntax". - C API - Deprecated C_get_argument[_2] and C_get_environment_variable[_2] functions. - Removed the deprecated "__byte_vector" type. 4.8.0 - Security fixes - CVE-2012-6125: Improved hash array collision guidance and added randomization to forestall malicious outer causes of collisions. All SRFI-69 procedures judge other arguments to power randomization for testing/debugging. - CVE-2012-6124: On 64-bit machines the "random" process nary longer truncates consequence values (which caused very nonrandom results for very ample values). Note that random shouldn't beryllium utilized for security-critical code. - CVE-2012-6123: Added checks for embedded '\0' characters successful strings passed to immoderate C functions connected a little level than CHICKEN's FFI. - Build system - type accusation has been moved into a abstracted portion to make the build-version shown successful the banner and accessible done library procedures much accurate, this besides speeds up the build connected version- changes (thanks to Jim Ursetto for contributing this) - the build was made much reliable pinch respect to cross-compilation and civilization installation names - the test-suite is now moving connected the mingw32 level (with a fewer tests abnormal owed to missing functionality) - the type and branch of the sources are now decently compiled into the halfway libraries and shown successful the "csi" and "chicken" type headers - The default target room sanction for an installation configured for cross- compilation is now "libchicken" and independent connected immoderate particular mounting of PROGRAM_PREFIX/PROGRAM_SUFFIX (thanks to Otavio Salvador) - Compiler - Fixed bug successful handling of symbols successful constant-definitions (thanks to Peter Bex) - Stricter cheque for value-part of changeless meaning (thanks to Kon Lovett) - Fixed bug that caused argument-signatures of outer definitions to be incorrectly modified during optimization (thanks to Peter Bex) - Failing constant-folding expressions now nutrient a compile-time warning - Fixed various bugs successful the soul type-database (thanks to Kon Lovett and Peter Bex) - Fixed incorrect optimization rules for immoderate fp-rounding and fixnum operators - added "-specialize" action and "specialize" declaration which enables optimizations of uses of halfway room procedures based connected type- accusation gathered during travel analysis - "-optimize-level 3" and higher now implies "-specialize" - added action "-strict-types" and "-emit-type-file" - progress-information is now only shown pinch "-debug p"; the "-verbose" action only shows informational but noncritical messages - added optimizations for immoderate room procedures - adaptable propagation for world adaptable accesses is now done successful certain situations - the algorithmic complexity of the closure-conversion walk has been reduced which speeds up compilation noticably for ample files - the "-uses" action handles whitespace successful portion lists fixed connected the bid statement (thanks to Santosh Rajan) - the replacement branch successful a conditional is dropped erstwhile the condition is known to beryllium a non-boolean worth (suggested by Joerg Wittenberger) - implemented galore fixes and improvements for travel analysis - fixed a bug successful the compiler that could origin immoderate adaptable bindings to beryllium optimized distant successful definite situations involving inlining - added an experimental optimization called "clustering" (enable pinch the compiler action of the aforesaid name) - the optimizations done by the compiler are now listed arsenic a comment successful the generated C file - the type-information obtained during flow-analysis ("scrutiny") is now utilized for performing type-sensitive optimizations of calls to astir of the core-library procedures - deprecated the "constant" declaration specifier - "unboxing" optimization has been wholly removed - the implementation was unreliable and unmaintainable; the "-unboxing" compiler action will still beryllium accepted but will nutrient a warning - Peter Bex contributed an optimization to the study walk that greatly reduces compile clip for root codification containing profoundly nested lexical bindings - procedures that are known to person the worth of a halfway room procedure that is simply a "standard" aliases "extended binding" will beryllium inlined - enhanced statement number search to get amended correction messages from the scrutinizer. - hygiene bugs related to compiler-syntax were fixed. - the section flow-analysis was sometimes reporting aggregate warnings for the aforesaid type-conflict. - the time/space-complexity of immoderate algorithms utilized successful the compiler were reduced resulting successful overmuch amended compile-times especially for ample root files. - Interpreter - ",q" leaves the presently progressive REPL invocation alternatively of terminating the process (as suggested by John Cowan) - ",m" decently switches betwixt modules (thanks to Christian Kellermann) - Core libraries - Cleaned up the group of disposable soul SRFI-feature-identifiers - Fixed bugs successful "make-pathname" and "normalize-pathname" (thanks to Jim Ursetto) - The scholar is now much accordant erstwhile parsing symbol- and keyword names that are afloat aliases partially escaped (thanks to Kon Lovett) - The printer now does a amended occupation astatine escaping definite single-character awesome names - Unit "lolevel" - deprecated "null-pointer" and "null-pointer?" - Fixed a bug successful the Windows implementation of "file-type" (thanks to Jim Ursetto) - Fixed a bug successful the implementation of "current-milliseconds" that could consequence successful integer-overflow - Fixed an incorrect type-check successful "list-ref" (thanks to Sven Hartrumpf) - Disabled "-setup-mode" erstwhile compiling extensions for deployment (thanks to Ivan Raikov) - Got free of immoderate warnings successful the C runtime strategy that were triggered on the SunPro C compiler (thanks to Joe Python) - Fixed bug successful "string->number" that caused out-of-range characters to beryllium accepted for guidelines > 10 (thanks to Jim Ursetto) - added "foldl" and "foldr" procedures, which are much businesslike and person a much accordant statement bid than the corresponding SRFI-1 procedures - "shuffle" has been deprecated - added "queue-length" - "queue->list" allocates and returns a caller database now - invoking a parameter-procedure pinch an statement will return the new value - added caller process "quit" - port-procedures now cheque correctly for argument-ports being open (thanks to Peter Bex) - "repl" accepts an optional evaluator process (suggested by John Cowan) - added a setter process to "signal-handler" ("posix" unit) - EINTR is decently handled for input routines that whitethorn block waiting for input - the implementation of R5RS information environments is now fully standards compliant - "file-exists?" and "directory-exists?" activity now decently for files > 2GB (EOVERFLOW handling successful stat(3) strategy call) - fixed bug successful implementation of "fifo?" - the process returned by "condition-predicate" accepts immoderate type of statement now - blobs person a readable textual practice ("#{...}") - "find-files" does not travel symlinks by default (as it did previously) - also, the aged non-keyword statement signature for "find-files" is not supported anymore - added "alist-update" ("data-structures" unit) - "irregex-replace" returns the original drawstring alternatively of #f erstwhile the regex does not match - irregex "real" built-in inferior shape now accepts a starring sign - added "change-directory*" ("posix" unit) - number parsing has been made much reliable and standards compliant - deprecated "none?", "always?" and "never?" - room procedures that return ports arsenic arguments now each execute checks connected port-direction and open/closed state - "mutate-procedure" has been renamed to "mutate-procedure!" - the old sanction is still disposable but deprecated - deprecated C_hash_string and C_hash_string_ci functions successful the C API in favour of the much unafraid versions C_u_i_string_hash, C_u_i_string_ci_hash - a number of bugs successful the irregex regular look motor person been fixed; it has been updated to upstream merchandise 0.8.3 - "with-input-from-file", "with-output-to-file", "with-input-from-pipe" and "with-output-to-pipe" now decently reconstruct the modular input/output ports successful lawsuit the assemblage thunk escapes - symbols pinch a single-char print-name wherever not ever decently escaped erstwhile printed readably - the "make" installation of the "setup-api" module has been deprecated, please usage the "make" hold erstwhile your ovum requires this during setup. - Core tools - "csc" - The environment-variables "CHICKEN_C_INCLUDE_PATH" and "CHICKEN_C_LIBRARY_PATH" tin now beryllium utilized to adhd default include- and link-directories to C-compiler invocations - "-O5" passed costly optimization flags to the C compiler which could expose C-Compiler bugs, depending connected the compiler version (thanks to Sven Hartrumpf for pointing this out). - "-rpath" is ignored connected OS X (thanks to Kon Lovett). - Fixed handling of "-output-file" (it was being ignored) - "chicken-install" - Added action "-override", which allows retrieving extension- versions from a record - this whitethorn beryllium useful to guarantee specific versions of a complete group of eggs are installed - Added action "-keep-installed"/"-x" that only installs explicitly named extensions fixed connected the bid line, if they are not already installed - Added action "-list" that lists each extensions available - Added action "-csi" to specify what expert should beryllium used to execute the setup-script of an installed extension - Added action "-scan" that scans a section directory for the highest disposable hold versions available - Added action "-reinstall" that reinstalls each presently installed eggs, keeping their versions, if possible - Fixed bug pinch "chicken-install -test" erstwhile aggregate extensions where fixed connected the bid statement (thanks to Kon Lovett) - installing subdirectories useful now connected Windows. - fixed handling of "-force" erstwhile a "chicken" dependency type did not match - added caller action "-show-foreign-depends" which lists overseas egg limitations (if available) - added caller action "-show-depends" which lists ovum dependencies - added support for "or"-dependencies wherever a dependency is considered installed if 1 of a group of candidates is available - "chicken-profile" - fixed immoderate bugs successful the profiler and the runtime support codification for profiling (thanks to Sven Hartrumpf) - fixed surgery percent calculation (thanks to "megane") - "chicken-status" - Added action "-list" that dumps versions of installed extensions successful a format suitable for "chicken-install -override ..." - the "pattern" statement is now really treated arsenic a shape and not arsenic a regex - Core syntax - "assert" shows the statement number of the shape erstwhile a 2nd argument is not fixed aliases is simply a literal string - "parameterize" now correctly omits invoking the defender process when the aged worth is restored (thanks to Joo ChurlSoo) - added ":", "the" and "assume" syntax for declaring types - added "define-specialization" shape to state type-driven procedure telephone rewrites successful compiled code - Syntax expander - Fixed a bug that caused imported identifiers to leak into the macroexpansion/compile-time situation (reported by Christian Kellermann) - Fixed a bug successful the processing of extended lambda-lists (thanks to Peter Bex) - Peter Bex fixed a bug that caused bound variables to beryllium incorrectly renamed successful quoted literals (thanks to Matthew Flatt) - fixed devious bug successful the invocation and procreation of transformer procedures - utilizing normal "lambda" forms arsenic transformers for section aliases global syntax definitions is deprecated - 1 should usage "syntax-rules", "er-macro-transformer" aliases "ir-macro-transformer" from now on - Runtime system - fixed handling of "inf" and nan" floating-point predicates for Solaris (thanks to Claude Marinier) - support for re-loading of compiled files has now been completely removed - the maximum magnitude of strings is nary longer constricted to a 24-bit number connected 64-bit architectures but tin beryllium 56 bits. - string-comparison handles embedded '\0' characters. - numerical predicates grip infinity and NaN correctly. - deprecated "[+-]nan", "[+-]inf" and different notations "accidentally" accepted by CHICKEN owed to the underlying C library's strtod() function, standardizing connected "[+-]nan.0" and "[+-]inf.0" from R6RS (and soon R7RS), erstwhile displaying numbers only these forms are generated now. - signals are queued to immoderate grade and the interrupt handling has been cleaned up somewhat - the expert handles SIGINT straight - loading the "posix" unit is not needed anymore to grip this feature - changed default nursery size somewhat and fixed a bug that caused incorrect (too small) nursery sizes connected 64-bit platforms - deprecated the compiler action "-heap-initial-size", "-heap-growth" and "-heap-shrinkage" - the assembly-language stub regular for the implementation of "apply" was surgery for Sparc64 systems and has been abnormal for this platform - awesome masks were accidentally reset upon GC for immoderate platforms; use sigsetjmp/siglongjmp connected BSD, Linux, MacOS X and Haiku - Type system - added caller type-specifiers "input-port", "output-port", "(list-of T)" and "(vector-of T)" - the type-specifiers "(vector T ...)" and "(list T ...)" represent fixed size lists and vectors now - added qualified types ("forall"), optionally pinch type constrains - added the "define-type" typical shape and type-abbreviations - added "compiler-typecase", a compile-time typematching form - Module system - Added "interfaces", which are named groups of exports - Added "functors", which are parameterized modules - Modules tin now beryllium aliased - New syntax: (define-interface NAME EXPORTS) (functor (NAME ...) EXPORTS ...) - Extended syntax of "module" for aliasing and functor-instantiation - the "scheme" module has been integrated into the halfway room and is not installed arsenic a abstracted import room anymore - added halfway module "r4rs" containing only bindings for R4RS identifiers - added halfway module othername "r5rs" for "scheme" module - added "module-environment" which returns an information environment for the bindings of a module - fixed bugs related to utilizing "export"/"reexport" successful operation with wildcard ("*") module export lists (thanks to "megane") - Foreign usability interface - locatives are allowed arsenic arguments declared "c-pointer" - "int32" was not decently detected arsenic a valid overseas type (thanks to Jim Ursetto) 4.7.0 - Build system - On BSD, libchicken.so is linked pinch -lpthread, arsenic this seems to beryllium required for linking libraries that require pthreads - The C header-files are now installed successful a subdirectory below the "PRFIX/include" directory to let installation of multiple chickens pinch different PROGRAM_PREFIX/PROGRAM_SUFFIX settings successful the aforesaid prefix; to debar conflicts pinch existing CHICKEN headers, it is recommended to wholly region immoderate old installation earlier installing the caller version - the PROGRAM_PREFIX and PROGRAM_SUFFIX configuration settings are applied to generated files and directories which allows execute otherwise named installations into the aforesaid PREFIX - increaded binary-compatibility type from 5 to 6, which intends installed extensions successful an existing installations will person to beryllium re-installed - bugfixes successful mingw/msys makefiles - Sven Hartrumpf contributed a bugfix to the soul helper book for creating distribution directories - Peter Bex has cleaned up the makefiles heavily, making the build much maintainable and easier to modify; acknowledgment to all who helped testing this caller build - renamed the makefile to `GNUmakefile' to drawback utilizing the a make(3) different than GNU make - configuration-header hole for BSD systems (thanks to Peter Bex and Christian Kellermann) - Core libraries - the `regex' room portion has been removed and is separately disposable arsenic an hold which should beryllium afloat backwards- compatible - `irregex' is now a halfway room portion and replaces the `regex' API - "extras" unit - fixed pretty-printer output of definite escaped character sequences wrong strings (thanks to Mario Domenech Goulart, acknowledgment to Kon Lovett for pointing retired a missing test-file) - The beautiful printer did not flight immoderate power characters correctly (reported by Alan Post) - control-characters successful symbol-names are now decently escaped if the awesome is printed readably (thanks to Alaric Snell-Pym for pointing this out) - the deprecated `random-seed' usability has been removed - "files" unit - fixed bug successful `normalize-pathname' - `file-copy' and `file-move' cheque 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 scholar accepts now escaped octal characteristic codes successful string literals - Read-syntax tin return zero values to bespeak ignored objects - R5RS output output routines now ever return a "void" result - "\|" was not correctly escaped erstwhile occurring inside awesome people 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 introduction for `vector-copy!' (thanks to Jules Altfas) - information aliases excessively profoundly nested information generates a more useful correction connection erstwhile encountered by `equal?' - `list-tail' gives now a amended correction connection erstwhile passed a non-list argument - fixed bug successful `getter-with-setter' that modified the first statement if it already had a setter process attached - fixed incorrect size of soul information vector utilized successful `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 position codification of a terminated process connected 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 arsenic initially owned by the existent threads (thanks to Joerg Wittenberger) - the file-descriptor handling successful the scheduler has been simplified and performs immoderate sanity checks - deadlock successful the scheduler now terminates the process alternatively of attempting to propulsion an error - added immoderate sanity checks to the scheduler - "tcp" unit - Fixed bug successful "tcp-abandon-port" (reported by Jim Ursetto) - "utils" unit - `compile-file' now returns `#f' erstwhile the compilation fails, alternatively of raising an error - Compiler - Removed unreliable lambda-lifting optimization (now, really!); the "-lambda-lift" action is still accepted but produces a warning - When "-scrutinize" is given, installed ".types" files will be automatically consulted for extensions and utilized units - Fixed optimizer bug successful handling of "let" forms pinch multiple bindings which could consequence successful toplevel assignments being silently dropped (reported by Moritz Heidkamp) - the `-accumulate-profile' action did not supply a measurement to specify the target floor plan information record - now `-profile-name' must ever beryllium fixed erstwhile accumulated profiling is done (thanks to Taylor Venable) - added `-module' option, which wraps the codification into an implicit module - removed cheque for unsafe toplevel calls successful safe mode - intrinsic handling of `exact->inexact' and `string->number' is now much efficient - fixed bug successful leaf-routine optimization (thanks to David Dreisigmeyer) - unit-toplevel entry-points are now named differently, which whitethorn break binary-compatibility pinch existing compiled Scheme codification modules - fixed invalid dropping of unused outer entry-points in block-mode - fixed incorrect lambda-list cheque successful scrutinizer (thanks to Alan Post) - Kon Lovett reported galore bugs successful the type-database used by the scrutinizer - `-fwrapv' is abnormal connected OpenBSD, since the default compiler does not support this action (thanks to Christian Kellermann) - connected Solaris `gcc' is utilized by default, override `C_COMPILER' to usage the Sun compiler instead - declaring a usability `notinline' will forestall direct-call optimization for known process calls - the implementation of overflow-detection for arithmetic operations connected fixnums person been replaced and now let utilizing the afloat 63-bit scope of fixnums connected 64-bit systems - fixed superior inlining-bug (thanks to Sven Hartrumpf) - constant-folding successful the compiler has been simplified and is much reliable (thanks to Sven Hartrumpf) - optimization-levels 3 and higher connote `-unboxing -inline-global' - added caller declaration `unsafe-specialized-arithmetic' which allows optimizing unboxed floating-point arithmetic successful safe mode - removed `scrutinize' declaration - the informing shown erstwhile unimported identifiers are utilized successful compiled modules now besides shows the sanction of the process wherever the identifier is referenced (suggested by Alaric Snell-Pym) - Documentation - Added database of installed files to README - Documented remaining "c...r" modular procedures (thanks to Juergen Lorenz) - The manual is now installed successful HTML format in PREFIX/share/chicken/doc, galore acknowledgment to Jim Ursetto for contributing is fantabulous `manual-labor' hold which made this possible - Foreign usability interface - Added support for missing "(const [XXX-]c-string)" overseas 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 caller overseas type `size_t' (suggested by Moritz Heidkamp) - added the missing `unsigned-integer64' overseas type (thanks to Moritz for catching this) - added caller overseas type `pointer-vector' which maps to `void **' and provided a low-level API successful the `lolevel' room portion for manipulating pointer vectors - Runtime system - Fixed typo successful "runtime.c" (thanks to Sven Hartrumpf) - Little-endian discovery connected MIPS systems was not correct (thanks to Christian Kellermann) - Fixed bug successful handling of runtime-options pinch arguments (also reported by Christian Kellermann) - `equal?' does not comparison procedures recursively anymore - fixed incorrect usage of alloca.h connected OpenBSD (thanks to Christian Kellermann and Alan Post) - checks for NaN and infinity are now done utilizing ISO C99 operations, which required various changes to `chicken.h' to make the codification compile successful ISO C99 mode - remaining debris regarding MSVC builds has been removed - fixed bug successful argument-type cheque for 64-bit integer (thanks to Kon Lovett) - accrued default trace-buffer size from 10 to 16 - fixed bug successful low-level termination regular (thanks to Jeronimo Pellegrini) - the scheduler handles violations of soul invariants regarding threads somewhat much gracefully (thanks to Jim Ursetto) - fixed surgery sleep-time conversion (thanks to Karel Miklav) - repaired surgery handling of aggregate finalizers that referred to the aforesaid entity (reported by Moritz Heidkamp) - fixed problem pinch scholar and escaping of single-char symbols - Syntax expander - For-syntax syntax definitions wherever not correctly retained inside modules - Peter Bex fixed various captious bugs successful the expander - The simplification for quasiquote expressions was unable to grip definite information information (reported by Moritz Heidkamp) - `syntax-rules' now supports tail-patterns and is now fully SRFI-46 compatible - galore acknowledgment to Peter Bex for implementing this - Peter Bex provided a bugfix for solution of primitive imports - handling of soul definitions pinch shadowed defining forms is now done correctly - hole erstwhile again from Peter Bex - corrected non-standard behaviour of quasiquote pinch respect to nested quasiquotations - different bugfix by our mighty macro master - removed stub-implementation of `define-macro' - handled lawsuit wherever a world redefinition of `cons' influenced a non-inlined soul usage successful the expander (thanks to David Steiner) - `define-record' now allows defining SRFI-17 setter procedures for accessing slots - the description of DSSSL lambda-lists uses now `let-optionals*' internally alternatively of `let-optionals' and truthful allows back-references to earlier general variables; this besides results in faster and much compact codification for argument-list destructuring (thanks to Alan Post) - caller "implicit renaming" macro installation contributed by Peter Bex (see `ir-macro-transformer') - parameters are now settable and tin beryllium modified utilizing `set!' (SRFI-17) - added a SRFI-17 setter to `list-ref' - added literal blob syntax ("#{ ... }") - Tools - chicken-install - action "-deploy" does not compile deployed extensions with "-setup-mode" anymore to debar problems pinch move loading on immoderate platforms (specifically Mac OS X) - action "-deploy" action did not transcript the correct library (including the version-number) (thanks to Christian Kellermann) - added support for proxy-authentification (thanks to Iruata Souza) - erstwhile installing from a section directory `chicken-install' now removes existing `*.so' files successful that location to debar stale binaries erstwhile the `make' syntax is utilized successful setup scripts - chicken-bug - removed abnormal email support - csc - removed `-static-extension' option - removed deprecated `-windows' option - fixed incorrect usage of `chicken.rc' connected non-Windows platforms successful `-gui' mode (thanks to "ddp") - erstwhile compiling successful C++ mode, the compiler will beryllium called pinch the `-Wno-write-strings' option - `-frwapv' has been added to the default C compiler options - csi - the ",m" toplevel bid now accepts "#f" to move backmost to the first quiet module discourse (suggested by Christian Kellermann) - fixed surgery `,g' toplevel command - deprecated `script' characteristic identifier (use `chicken-script' instead) - options `-p' and `-P' and `-e' connote `-no-init' - the call-trace reported will not see exception-handler code anymore (suggested by Christian Kellermann) 4.6.0 - the licenses utilized successful each components of the halfway strategy have been collected successful the LICENSE record (Thanks to Peter Bex) - Added caller compiler action `-no-module-registration' which omits procreation of module registration code, moreover when procreation of import libraries has not been enabled - moving `chicken' without arguments now hints astatine the beingness of `csi' and `csc' - `caar', `cdar' and `cddr' make faster code - calls to `list', `vector' and the soul structure allocation primitive that return 1 to 8 arguments generate faster code - `chicken-install' now checks the type of the setup configuration record `setup.defaults' - added action `-exact' to `chicken-status' and `chicken-uninstall', which treats the shape statement arsenic the literal sanction of the hold to beryllium listed/deinstalled - `assert' shows line-number information, if available (suggested by Alejandro Forero Cuervo) - interpreted codification records the lexical-environment astatine call- sites, which tin successful lawsuit of an correction beryllium inspected pinch the caller `,c', `,f' and `,g' csi toplevel commands - the evaluation-result history successful `csi' tin beryllium inspected and cleared (to trim representation load) pinch the toplevel commands `,h' and `,ch' - portion `data-structures': deprecated `left-section' and `right-section' - fixed bug that caused the fixed syntax-environment of syntax exported by a module to beryllium incomplete - module `setup-api': Documented the `version>=?' and `extension-name-and-version' proceedures - portion `posix': `utc-time->seconds' is considerably faster connected Mac OS X (thanks to Jim Ursetto); added caller process `file-type' - the `time' macro now shows the correct number of minor garbage collections - the immediate-object cheque wrong the marking procedure of the garbage collector has been manually inlined which results successful a important GC speedup, depending connected memory load - portion `srfi-18' and `scheduler': various bugfixes (thanks to Joerg Wittenberger) - portion `srfi-4': bugfix successful 8-bit vector allocation routines (thanks to Kon Lovett) - added `-:H' runtime action to dump heap authorities connected exit - fixed missing alteration successful Makefile.cygwin (thanks to John Cowan) - fixed bug successful `let-optionals' macro that caused problems erstwhile the rest-variable was really named `rest' (thanks to Alejandro Forero Cuervo) - erstwhile Scheme files are translated to C++ aliases Objective-C, `csc' will registry the feature-identifiers `chicken-scheme-to-c++'/ `chicken-scheme-to-objc' ar compile-time - fixed bug successful description of `#!key' parameters successful lambda-lists - debug-output for forcing finalizers connected exit goes to stderr now (thanks to Joerg Wittenberger) - the installation routines for extensions automatically add version-number accusation if nary is fixed successful the extension spot database (suggested by Alejandro Forero Cuervo) - `standard-extension' accepts `#f' now for the type number and will usage the type that has been obtained via `chicken-install' - `fifo?', `symbolic-link?', `directory?', `regular-file?', `socket?', `character-device?' and `block-device?' now accepts file-descriptors aliases filenames - `find-files' takes keyword arguments, now (including the options to process dotfiles and disregard symbolic links); the aged argument signature is still supported but deprecated - removed dependency connected `symbol-append' successful immoderate macros utilized in srfi-4.scm to beryllium capable to compile the strategy pinch older chickens - fixed bug successful book that generates improvement snapshot - added build-variable `TARGET_FEATURES', which tin beryllium utilized to pass other options enabling aliases disabling fetures for a strategy configured for cross-compilation - added compiler and expert action `-no-feature FEATURENAME' that disables predefined characteristic identifiers - codification compiled pinch interrupts abnormal will not emit inline files for world inlining since they whitethorn execute successful a discourse where interrupts are enabled - the `setup.defaults' record that holds download sources for `chicken-install' now allows aliases for locations - CHICKEN systems build from cross-compilation now by default transparently build and instal extensions for some the host and target parts of the cross-compilation setup; the options `-host' and `-target' tin now beryllium utilized to selectively build an extensions for the host- and the target system, respectively - besides added `-host' and `-target' options to `chicken-status' and `chicken-uninstall' - `chicken-install' now respects the `http_proxy' situation variable (contributed by Stephen Eilert) - the `srfi-4' room portion has been heavy cleaned up and optimized - optimization-level 3 now enables world inlining - fixed the lawsuit that declarations listing world identifiers did not correctly rename them - deprecated `-N' action shortcut for `-no-usual-integrations' action in `csc' - `csi' now offers a toplevel bid `,e' for invoking an external editor (suggested by Oivind Binde) - the `describe' bid successful `csi' now detects galore information lists (contributed by Christian Kellermann) - `csi' doesn't dangle connected the `srfi-69' room portion anymore - erstwhile a closing series delimiter is missing aliases incorrect, the scholar besides reports the starting statement of the sequence - the scholar signals an correction erstwhile a record contains definite characters that bespeak that it is simply a binary file - procedure-information shown by the printer for procedures is now corrected for immoderate room procedures that wherever missing the correct information; `getter-with-setter' copies procedure-information objects into the recently created accessor procedure, if available - calls to immoderate known axenic standard- aliases extended procedures are removed, if the procedures are called pinch side-effect free arguments and the consequence is not utilized (this tin besides by enabled for personification procedures with the `constant' declaration) - fixed immoderate build-system bugs related to installation - fixed a problem successful the C runtime codification that prevented it to beryllium compileable without a configuration header-file - the makefile-target to build a bootstrapping `chicken' executable performs multi-stage build now - changed correction connection erstwhile required hold is retired of day (thanks to Mario Goulart) - documented room units loaded by default successful `csi' (thanks to Moritz Heidkamp) - added `boot-chicken' makefile target to simplify bootstrapping the strategy from sources and documented this successful the README (suggested by Jim Ursetto) - CHICKEN tin now beryllium built connected haiku (contributed by Chris Roberts) - connected Solaris, the strategy tin beryllium compiled pinch the SunPro C compiler (thanks to Semih Cemiloglu) - removed the `-disable-warnings' compiler action and `disable-warnings' declaration specifier - `fx/' and `fxmod' make now faster codification successful safe mode - cleaned up manual pages - somewhat optimized variable- and procedure-access - successful the compiler `-debug-level 2' implies `-scrutinize' - soul compiler-transformation for `for-each' and `map' use now pinch immoderate look arsenic the process argument - the compiler warns astir non-intrinsic exported toplevel variables which are declared to beryllium safe - `csc' didn't grip the `-verbose' action (thanks to Mario Goulart) - the `,d' bid successful `csi' now detects information 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 successful user-defined grounds printers are caught and shown successful the output alternatively of throwing an correction to debar endless recursion when an correction connection is printed - a characteristic identifier named `chicken-MAJOR.MINOR' is now defined to simplify conditionalization of codification connected the CHICKEN version - `getter-with-setter' copies the lambda-information (if available) from the getter to the generated procedure - `time' uses a somewhat much concise output format and outputs timing accusation to stderr alternatively of stdout - added a caller section connected cross-development to the manual - added the `safe-globals' declaration specifier - divided up manual section `Modules and macros' into 2 chapters (named `Modules' and `Macros', respectively - suggested by Mario Goulart) - the past 5 non-precompiled regular expressions are now internally cached successful compiled form, which speeds up repeated matching of the aforesaid uncompiled regular look dramatically - added the caller process `yes-or-no?' to the `utils' room unit - added a `bench' makefile target that runs immoderate non-trivial benchmark programs - added `install-target' and `install-dev' makefile target for installing only target strategy libraries successful cross-mode and improvement files (static libraries and headers) - added `[-]no-procedure-checks-for-toplevel-bindings' compiler action and declaration - usage of unimported syntax successful modules gives much usable correction messages; successful particular, utilized but unimported FFI forms are now detected - invalid syntactic forms (mostly `()') encountered by the compiler aliases expert show the contextual shape containing the expression, or, if indicated by the discourse warns astir missing imports - simplified manual pages of each halfway devices - they now mention to the output shown by invoking ` -help' - added caller action `-feature FEATURE' to `chicken-install' tool to walk feature-identifiers to invocations of `csc' - removed deprecated `-host-extension' action from `chicken-install' - `chicken-status' successful a strategy built for cross-compilation now lists extensions installed successful the target prefix, unless the caller `-host' action is fixed connected the bid line - `chicken-uninstall' successful a strategy built for cross-compilation now removes extensions installed successful the target prefix, unless the caller `-host' action is fixed connected the bid line - added missing introduction for `finite?' to the `chicken' module exports - added caller process `port-closed?' to the `library' unit (contributed by Peter Bex) - added caller process `symbol-append' to the room unit - the compiler-option `-optimize-level 0' is balanced to `-no-compiler-syntax -no-usual-integrations` - soul rewritings of `map' and `for-each' guarantee correct information bid of the arguments and does a amended job astatine 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 awesome garbage collection earlier executing the contained expressions and writes the timings successful a much compact format to the larboard given by `(current-error-port)' alternatively of the modular output port - definitions of the shape `(define specify ...)' and `(define-syntax define-syntax ...)' now trigger an error, arsenic required by R5RS (thanks to Jeronimo Pellegrini and Alex Shinn) - deprecated `random-seed' from the `extras' unit, since it is identical to `randomize' - added caller process `create-temporary-directory' to the `files' unit - deprecated the optional way separator statement to `make-pathname' - somewhat improved the capacity of keyword argument processing - removed the deprecated `canonical-path' and `current-environment' procedures from the `posix' unit - warnings that mostly mention to programming style issues are now coined `notes' and are only shown successful the interpreter aliases erstwhile debug-mode is enabled aliases erstwhile scrutiny is enabled erstwhile compiling 4.5.0 - soul fixes of handling of replacement installation-prefix successful setup-api - definite compiler-warnings that are successful really conscionable notes and don't bespeak a imaginable correction (like reimport of identifiers) are only shown pinch -S aliases successful verbose mode - fixed handling of VARDIR successful `chicken-install' (thanks to Davide Puricelli) - `chicken-install -test' doesn't runs tests for dependencies - erstwhile a non-else clause follows an else-clause successful `cond', `case' aliases `select' a informing (note) is shown successful verbose mode - removed the deprecated `define-extension' and `define-compiled-syntax' - `chicken-uninstall' now ever asks earlier removing extensions, unless `-force' is given - improved capacity of keyword-argument processing slightly - `export' extracurricular of a module meaning has nary effect - `number->string' now accepts arbitrary bases betwixt 2 and 16 (thanks to Christian Kellermann) - fixed `standard-extension' successful `setup-api' module - literal constants support their identity, moreover erstwhile inlined - Unit library: added `fxodd?' and `fxeven?' - All hardcoded typical forms person been replaced with syntax definitions that grow into soul forms, this allows redefinition and shadowing of each Scheme halfway forms - faster implementations of `get' and `put!' - faster implementation of `assq' successful unsafe mode - the `-sx' action prefixes each output statement pinch `;' - somewhat amended description performance - much archiving of the C API (thanks to Peter Bex) - `module' supports a shorthand shape that refers directly to a record to beryllium included arsenic the module body - added runtime action `-:G' to unit GUI mode (on platforms that separate betwixt GUI and non-GUI applications) - removed the unsafe runtime room (`libuchicken'), this simplifies and speeds up the build and reduces the risk of executables loading room units from different variants of the runtime system - removed the `-unsafe-libraries' action from `chicken' and `csc' - removed bootstrapping target and bootstrapping files from improvement repository; to bootstrap the system, either usage a merchandise aliases development-snapshot tarball aliases fetch a statically linked precompiled `chicken' binary from http://chicken.wiki.br/chicken-projects/bootstrap/ - Jim Ursetto provided immoderate fixes for building universal binaries connected Mac OS X - `csc' now compiles and links Windows assets (.rc) files erstwhile fixed connected the bid line - `chicken-install' and `chicken-uninstall' person an embedded manifest that suppresses the elevation dialog connected Windows Vista and later erstwhile UAC is activated (Thanks to Thomas Chust) - the `install' programme is not utilized successful the build connected mingw and mingw/MSYS platforms, since this is surgery connected older mingw versions - line-number-information is now decently handled (in the fewer places wherever it is used) correctly for included files; the root record is fixed successful trace-output successful summation to the statement number - removed compiler informing for shared objects compiled in unsafe mode - unboxing is now only done successful unsafe mode - successful unsafe mode, pointer-accessors from the `lolevel' unit are now handled intrinsically by the compiler - `chicken-install' accepts now comparative pathnames for the `-prefix' option - `define-record-type' now optionally allows utilizing SRFI-17 setters arsenic record-field modifiers - `integer?' returns `#f' for NaN and infinite numbers - `csc' now has an `-no-elevation' action for embedding a manifest that prevents the elevation dialog connected Windows Vista and later erstwhile IAC is activated - the `,d' csi bid displays qualified symbols properly - symbols starting pinch the `#\#' characteristic trigger an correction erstwhile encountered by the reader - Unit posix: `glob->regexp' now ever returns a regular look entity aliases optionally an SRE - Unit posix: `terminal-port?' and `terminal-size' person been implemented for Windows, the second ever returns `0 0', though (thanks to Jim Ursetto) - Unit regex: `regexp' now accepts a regular expression entity arsenic argument - Unit regex: removed `glob?' - fixed bug successful `chicken-install'/`chicken-uninstall' and `chicken-status' that prevented collapsed command-line options to beryllium handled correctly. - abnormal runpath-fix for deployed applications for netbsd (but resurrected providing a runpath astatine all, acknowledgment to Peter Bex) - Peter Bex provided archiving for the `C_closure' C API function 4.4.0 - the strategy tin now beryllium built pinch llvm-gcc and/or "clang" (the LLVM C compiler which doesn't usage the GNU C frontend) - added caller action `-trunk' to `chicken-install', which forces building and installing the improvement type of extensions successful operation pinch `-t local' - added caller action `-deploy' to `chicken-install', which builds hold for usage successful "deployed" applications (see below) - added action `-deploy' to `csc', the compiler driver. With this action `csc' tin build afloat self-contained exertion bundles and double-clickable Macintosh GUI apps; spot the "Deployment" manual section for much information - the directory fixed to the `-prefix' action of `chicken-install' whitethorn now beryllium a comparative pathname. - removed GUI-specific runtime room (`libchicken-gui') from Windows build - GUI- and non-GUI applications now usage the same runtime library - typical forms of the foreign-function interface person been replaced pinch an soul shape and syntax to let renaming and shadowing of these forms - the caller `-private-repository' action successful `csc' compiles executables pinch the extension-repository way group to the directory from which the programme 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!' person been removed - `delete-file[*]', `rename-file', `create-directory', `file-copy', `file-move', `delete-directory' and `change-directory' return their argument/destination filename connected success - added the missing process `condition-variable-name' to the srfi-18 room portion (Thanks to Joerg Wittenberger) - the `glob?' usability from the `regex' portion has been deprecated - added the process `scan-input-lines' to the `utils' room unit - added caller runtime action `-:g' which enables GC debugging output - reclamation of unused symbols successful "symbol-gc" mode (`-:w') now only takes spot for symbols pinch an quiet property-list - connected Windows loading of codification compiled pinch [non-]GUI runtime libraries will neglect and nutrient an correction connection erstwhile the loading executable is linked pinch a different runtime system - connected Windows, GUI libraries were not correctly linked by `csc' - portion posix: added setter for `file-modification-time' - the banner shows the branchname of the build, unless it's "master" - the `-no-install' action to `chicken-install' is ignored when building/installing dependencies - `chicken-uninstall' takes a glob alternatively of a regular look as argument - the rename and comparison functions for low-level macro-definitions judge now arbitrary s-expressions and renames/compares them recursively - `number->string' handles negative-numbers pinch bases different from 10 correctly (thanks to Peter Danenberg) - removed deprecated `setup-install-flag' and `setup-verbose-flag' from the `setup-api' module - added caller action `-repository' to `chicken-install' (Thanks to Christian Kellermann) - removed `chicken-setup' stub program - hole to `csc' to usage the correct room erstwhile fixing move load paths (Thanks to Derrell Piper) - removed html archiving from distribution (the wiki manual will now beryllium installed) - fixed bug successful `reexport' which caused syntax not to beryllium correctly reexported - erstwhile assignments to a toplevel adaptable that are separated by broadside effect free expressions are removed - fixed windows type of `find-files' (thanks to Jim Ursetto) - archiving for extensions is not installed automatically by `chicken-install' anymore - changed binary type from "4" to "5", because the caller runtime libraries are not binary-compatible pinch erstwhile releases; this intends each eggs person to beryllium reinstalled and existing programs be recompiled! - added unboxing walk to compiler which results successful partially dramatical capacity improvements for unsafe floating-point-intensive code; unboxing is enabled connected optimization levels 4 and 5 - removed rest-argument-vector optimization arsenic it could conflict pinch inlining (thanks to Sven Hartrumpf) - renamed `pointer-offset' to `pointer+' and deprecated `pointer-offset' - toplevel assignments that person nary different side-effects tin beryllium eliminated if it tin beryllium shown that the worth is not utilized (the compiler will make a informing successful this case) - removed deprecated `-quiet' action successful `chicken' program - removed deprecated `run-time-macros' declaration - removed deprecated `-v2' and `-v3' options successful `csc' program - removed deprecated `list-of' usability (it is exclusively available arsenic `list-of?' now) - removed deprecated `stat-...' functions successful posix room unit - removed deprecated `for-each-line' and `for-each-argv-line' procedures successful utils room unit - added `fpinteger?' and `fpabs' - deprecated `define-compiled-syntax' - added caller floating-point primitives `fpsin', `fpcos', `fptan', `fpasin', `fpacos', `fpatan', `fpatan2', `fpexp', `fplog', `fpexpt' and `fpsqrt' - dense cleanup of floating mathematics functions which gives overmuch amended performance, particularly for codification compiled successful unsafe mode - calling `assert' pinch a azygous statement shows the tested expression connected failure - various bugfixes and cleaning up 4.3.0 - fixed bug successful `move-memory!' that caused antagonistic offsets to beryllium accepted (thanks to Jim Ursetto) - removed tracing installation and apply-hook (see the "trace" egg for a replacement for tracing and breakpoints) - chicken-install(1): renamed `-host-extension' action to `-host' - added support for a make(1) configuration record ("config.make") - `chicken-install' now allows specifiying a proxy for retrieving extensions complete HTTP (thanks to Nicolas Pelletier) - fixed bug successful `cond-expand' that incorrectly renamed feature-identifiers if the shape was the merchandise of a syntax description (reported by Thomas Bushnell) - import-libraries are only generated by the compiler if they don't exist yet and if the contented has really changed (this simplifies makefile- rules successful immoderate cases) - it is now imaginable to walk a config-file to `make(1)' alternatively of specifying each build-options arsenic variables connected the command-line (see README) - removed compiler options for "benchmark-mode" and replaced them pinch a caller optimization level (5) (note that `-O5' does not connote fixnum mode anymore) - `hen.el' and `scheme-complete.el' are not bundled pinch the halfway system anymore - `hen.el' is presently not maintained, and `scheme-complete.el' has its ain merchandise cycle; some files are available, see http://chicken.wiki.br/emacs - removed meaningless benchmark suite and cleaned up - added optional statement to `grep' that allows applying a function to each matched point (contributed by Tony Sidaway) - added extension-property `import-only', which makes it imaginable to create extensions that person nary runtime part - the statement 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 successful `get-condition-property' - fixed bug successful windows type of `process-execute' - TCP timeouts propulsion objection of benignant `timeout' to allow distinguishing betwixt timeouts and different errors - removed immoderate soul functions that manipulate environments - fixed bugs successful `standard-extension' (`setup-api' module) and added keyword arguments for building fixed extensions and adding civilization properties - erstwhile cross-compiling, `chicken-install(1)' doesn't walk `-setup-mode' (the big devices should not effort to load target binaries) - `installation-prefix' successful the `setup-api' module was not ever correctly set - the `-force' action successful `chicken-install(1)' overrides the CHICKEN version check - abnormal email characteristic successful `chicken-bug(1)', since it doesn't work anyway, successful the moment - fixed bug successful `reexport' that made it intolerable to reexport halfway library definitions - hole successful optimizer that sometimes caused C functions for inlined procedures to beryllium emitted aggregate times (Thanks to Joerg Wittenberger) - documented `define-compiler-syntax' and `let-compiler-syntax' - printer for hash-tables shows existent number of stores items - erstwhile upgrading during installation of a dependency `chicken-install' shows the type to upgrade to (Thanks to Christian Kellermann) - Updated scheme-complete (Thanks to Alex Shinn) - hole for pathnames pinch whitespace successful 'runtests.sh' connected Windows - hole for 'normalize-pathname' pinch absolute pathname argument - added 'decompose-directory' to portion files - hole for 'local-timezone-abbreviation' - wasn't utilizing the existent time truthful tz-name constant - deprecated 'make-pathname' separator argument 4.2.0 - added compiler action `-emit-all-import-libraries' - added `reexport' - added compiler and expert action `-setup-mode' - various insignificant capacity improvements - hole for 'create-directory' erstwhile parents wanted - `for-each-line' and `for-each-argv-line' person been deprecated - chicken-install tries replacement servers if server responds pinch error - fixed load bug (ticket #72) - caller room process `get-condition-property' - galore 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 limitations earlier installing them - "-optimize-level 2" enables inlining by default - disable executable stack successful assembly codification modules (patch by Zbigniew, reported by Marijn Schouten) - csc now ever exits pinch a position codification of 1 connected errors (patch by Zbigniew) 4.1.0 - The caller parameter "parantheses-synonyms" and the command-line action "-no-parantheses-synonyms" let disabling list-like behaviour of "{ ... }" and "[ ... ]" tokens - The caller parameter "symbol-escape" and the command-line action "-no-symbol-escape" allows disabling "| ... |" awesome escape syntax - Added command-line action "-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 elemental flow-analysis walk that does basal checking of argument-counts and -types for halfway room procedure calls (new action "-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 drawback incorrect usage of this instrumentality (which has been replaced successful 4.0.0 pinch "chicken-install") - Changed "setup-install-flag" and "setup-verbose-flag" to "setup-install-mode" and "setup-verbose-mode" successful "setup-api" module, the aged names are still disposable but deprecated - Posix unit: added "socket?", "block-device?" and "character-device?", deprecated redundant "stat-..." procedures - Added "directory-exists?" - "(for-each (lambda ...) X)" is compiled arsenic a loop - The argument-count cheque for format-strings for "[sf]printf" pinch a constant drawstring statement is done astatine compile-time 4.0.0 - removed `apropos' and `apropos-list' from the "utils" room unit; disposable arsenic an extension - removed texinfo and PDF archiving - this will imaginable beryllium added back later - replaced PCRE regex motor pinch Alex Shinn's "irregex" regular expression package - removed `-extension' option - removed `-static-extensions' csc action and added `-static-extension NAME' - `regex' unit: removed `regexp*' and `regex-optimize' - added `CHICKEN_new_finalizable_gc_root()' - `length' checks its statement for being cyclic - removed civilization declarations and "link-options" and "c-options" declarations - deprecated "-quiet" action to "chicken" program - added "-update-db" action to chicken-install - the compiler now suggests perchance required module-imports - moved non-standard syntax-definitions into "chicken-syntax" room unit - the pretty-printer prints the end-of-file entity readably now - replacement conditional execution paths person abstracted allocation computation (previously the allocation of each alternatives was coalesced) - removed unused "%kmp-search" from "srfi-13" room unit - expander handles syntax-reexports and makes unexported syntax available for exported expanders successful import libraries - added checks successful immoderate procedures successful the "tcp" room unit - the macro strategy has been wholly overhauled and converted to hygienic macros - a macro-aware module strategy has been added - added "-sx" action to csi - removed the pursuing 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" person been removed - caller procedures: strip-syntax expand - caller macros define-syntax module export - the pursuing macros person been removed: define-foreign-record define-foreign-enum define-macro define-extension - "local" mode, successful which locally defined exported toplevel variables can beryllium inlined - caller options and declarations "[-]local", "[-]inline-global" and "-emit-inline-file" - optimization levels changed to usage inlining: -optimize-level 3: enables -inline -local (but *not* -unsafe) -optimize-level 4: enables -inline -local -unsafe - accrued default inlining-limit to 20 - support for cross-module inlining - "make bench" runs the benchmark suite - "chicken-setup" has been replaced by caller bid statement tools "chicken-install", "chicken-uninstall" and "chicken-status", which are much elastic and let greater state erstwhile creating section aliases application- circumstantial repositories - extension-installation tin beryllium done straight from SVN repositories aliases a local record tree - enabled chickenhearted reflector tract arsenic replacement download location

More