./lang/chicken5, Scheme to C compiler, handling R5RS

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 5.4.0, Package name: chicken-5.4.0, Maintainer: pkgsrc-users

CHICKEN is a Scheme-to-C compiler supporting most of the language
features as defined in the Revised^5 Report on Scheme. CHICKEN
generates quite portable C code, and files compiled by it (including
itself) should work without any changes on most platforms.

The whole package is distributed under a BSD license and as such free
to use and modify as long as you adhere to its terms (see the manual).
Linkage to C modules and C-library functions is straightforward, so
it's easy to access C from Scheme. Compiled code can be embedded into
existing C programs without problems. The generated code supports
full tail-recursion, first-class continuations, multiple values and
dynamic-wind.


Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 4012.827 KB

Version history: (Expand)


CVS history: (Expand)


   2024-12-11 21:14:58 by Kevin Bloom | Files touched by this commit (2)
Log message:
lang/chicken5: fixed bug with dynamic lib not linking on Darwin
   2024-07-29 19:49:21 by Kevin Bloom | Files touched by this commit (3) | Package updated
Log message:
chicken5: update to 5.4.0

Packaging Changes:
- removed patch-egg-compile.scm since upstream has fixed this.

Upstream Updates:
- Security fixes
  - CVE-2022-45145: Neutralize possible escape characters in egg metadata
    to avoid arbitrary OS command injection during egg installation,
    reported by Vasilij Schneidermann who also provided the necessary
    patches to mitigate this problem.
  - The runtime option "-:b" has been removed, as it was deemed too
    insecure to be able to drop to a REPL from the CLI of any program.
  - Runtime option processing has been hardened: processing now stops on
    the first non-runtime option or after "-:", whichever comes first.

- Core libraries
  - Fix type declarations for `file-select` (reported by Anton Idukov).
  - Change `create-temporary-{file,directory}` fallback code on Windows to
    use %USERPROFILE%/AppData/Local/Temp if that environment variable is set.
  - Added new 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 in a thread-safe
    manner.
  - Added weak pairs to (chicken base), with similar 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` procedure now sets argv[0] to the unmodified
    filename. Previously, the directory part would be stripped.
  - Added support for embedded strings and characters in 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 internal (chicken compiler support) module, but
    using it from there is deprecated.
  - Added "export/rename" to (chicken module) for renaming identifiers on
    export.
  - The values of the TMPDIR, TMP and TEMP environment variables are no
    longer memoized (fixes #1830).
  - Condition objects produced by procedures that change errno now have
    an `errno' property.
  - Deprecated "chicken-home" and added "include-path" in the
    chicken.platform module.
  - Irregex has been updated to upstream 0.9.11 plus an additional fix
    for sre->string.  The 0.9.11 release fixes a few problems related to
    utf-8 handling (which should not affect CHICKEN) and expands the
    definition for the 'whitespace character set to include vertical tab,
    carriage return and form feed.

- Tools
  - Fix scripts generated by `chicken-install` on Windows to not quote `>>`
    when echoing into files which would result in empty egg-info files
    (reported and fixed by Jani Hakala).
  - The -R option for csi and csc now accepts list-notation like
    e.g. (srfi 1).  Fixes #1809, reported by Wolfgang Corcoran-Mathe.
  - Fix shell quotation in options passed from csc to other tools.
    Fixes #1302, reported by Xin Wang.
  - The -prelude and -postlude options for csc work properly again.
  - chicken-install now retrieves the latest egg version when
    instructed to install an egg that's already installed (#1802).
  - When `location' is specified in setup.defaults, chicken-install
    will consider two location layouts when looking for eggs:
    <location>/<egg> and <location>/<egg>/<version>.
  - chicken-install: Fix #1684 (programs that specify
    component-dependencies should build-depend on their import
    libraries).
  - chicken-install now caches eggs installed from local locations.
  - chicken-install now accepts the -location command line option
    (short: -l) to specify local directories where to get egg sources
    from.
  - chicken-install now gives a warning on unexpected properties (#1492).
  - chicken-install now uses a directory specific for cache metadata
    (VERSION, STATUS and TIMESTAMP files) to avoid collisions with source
    files on case-insensitive file systems like on MacOS (#1753, reported
    by Kon Lovett).

- Syntax expander
  - When passing a module as an environment to eval, correctly resolve
    identifiers in macro expansions (#1295 reported by Caolan McMahon).
  - Internal definitions honor rebindings of core special forms (#1132).
  - Globally defining an identifier previously bound to a macro now fully
    shadows the macro (#1166, reported by Michele La Monaca).

- Compiler
  - When emitting types files, the output list is now sorted, to ensure
    deterministic build output (fixes #1783, reported by "ss2").

- Build system
  - Fix compiler warnings about zero-sized `memset` (reported by Claude Marinier).
  - Disable broken test-create-temporary-file on Windows (reported by \ 
"jjhoo").
  - Drop use of XCODE_... environment variables on MacOS.
  - Add build directory to rpath on MacOS so that the test suite picks up correct
    libchicken, even if CHICKEN is already installed (thanks to Christian Himpe).
  - Default "cc" on BSD systems for building CHICKEN to avoid ABI problems
    when linking with C++ code.

- Runtime system
  - Make line numbers available for error output and during syntax expansion
    in the interpreter as well as the compiler.
   2023-05-04 22:54:40 by Nikita | Files touched by this commit (1)
Log message:
chicken5: add comment on why chicken5-boot is needed, with upstream ticket
   2023-04-30 22:18:08 by Nikita | Files touched by this commit (4)
Log message:
chicken5, chicken5-boot: split shared mk code off into Makefile.common.
   2023-04-26 20:11:51 by Nikita | Files touched by this commit (3) | Package updated
Log message:
chicken5: update to version 5.3.0

Changelog (taken from https://code.call-cc.org/releases/5.3.0/NEWS):

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 check that the
    new user/group value is a fixnum instead of blindly passing it on
    to the C implementation (which would cause bogus user ids to be set).
    Fixes #1787, thanks to Christopher Brannon.
  - The srfi-17 module now exports the `getter-with-setter` and `setter`
    procedures, not just the set! macro (thanks to Lassi Kortela)
  - Fix hang in chicken-install -update-db on Windows (thanks to Mark
    Fisher for reporting and Jani Hakala for debugging and patch).
  - Fixed an inadvertant error during error reporting in the `numerator`
    and `denominator` procedures when passed non-finite flonums (#1730).
  - Fixed a bug where optimisations for `irregex-match?` would cause
    runtime errors due 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 with positive lookbehind so all matches are
    replaced instead of only the first (reported by Kay Rhodes), and
    a regression regarding replacing empty matches which was introduced
    by the fixes in 0.9.7 (reported by Sandra Snan).  Also, the
    http-url shorthand now allows any top-level domain and the old
    "top-level-domain" now also supports "edu" (fixed by \ 
Sandra Snan).
    Also, a problem was fixed with capturing groups inside a kleene
    star, which could sometimes return incorrect parts of the match.
    Finally, "bol" handling was fixed to handle newlines consistently
    so that multiple matches don't overlap (reported by Sandra Snan).
  - current-milliseconds has been deprecated in favor of the name
    current-process-milliseconds, to avoid confusion due to naming
    of current-milliseconds versus current-seconds, which do something
    quite different.  Also, its definition has been tweaked to
    guarantee that it returns the time since process startup.  On
    Windows, it will now return sane values after 24 days of uptime.
    On UNIX, the values returned will be precise to the millisecond
    instead of rounded down to the nearest second at startup (which
    would result in erratic startup times).
  - The default mode for files created by `file-open' has been changed
    to 0666 (plus whatever change the effective umask applies), rather
    than 0744 (see #1698).
  - Fixed type database entry for "log" with second arg (fixes #1725).
  - Made topological-sort behave better when dependency target is listed
    multiple times by concatenating dependencies (fixes #1185).

- Module system
  - Reexported macros now work when the reexporting module redefines
    identifiers from the original (fixes #1757, reported by Sandra Snan).
  - When using "except" in "import" to omit reexported macros,
    they are really not imported (#1771, reported by Sandra Snan).

- Runtime system
  - Sleeping primordial thread doesn't forget mutations made to
    parameters in interrupt handlers anymore. (See #1638. Fix
    contributed by Sebastien Marie)
  - A feature corresponding to the word size is available
    regardless of the word size (#1693)
  - The default maximum heap size on 64-bit platforms is now the
    theoretical maximum addressable memory size (#1675).  Use -:m
    if you would like to override this at run-time.
  - Deprecated C_(a_i_current_)milliseconds in favor of
    C_(a_i_)current_process_milliseconds to match the Scheme-level
    deprecation of current-milliseconds.
  - Officially deprecated C_pair() in favor of C_a_pair(); it has
    been deprecated for years.
  - At program cleanup, finalizers are only forced when the live
    finalizer count is non-zero
  - The symbol `srfi-87` has been added to the list of built-in
    feature identifiers.
  - Garbage collection algorithm has been changed to reduce thrashing
    when heap is almost full, by growing the heap sooner.  A new -:hf
    option was added to tweak when heap growth should occur.
  - Added `-:R' runtime option to initialize rand() state
    deterministically (should help with #1650 and benchmarking).

- Compiler
  - Statically linked programs using built-in libraries are supported
    again (fixes #1788, a regression from 5.2.0).
  - Avoid re-using argvector when inline rest operations are being
    used in CPS calls (#1703, thanks to Jakob L. Keuze).
  - An `emit-types-file` declaration has been added, which corresponds
    to the compiler flag of the same name (#1644, thanks to Marco Maggi
    for the suggestion).
  - Fixed a bug caused by a bad interaction between two optimizations:
    argvector rest ops would be applied even if a procedure already got
    its rest arg consed at the call site (#1756, thanks to Sandra Snan).

- Build system
  - Fix build with tcc.
  - Fix a few tests on Windows so the suite passes once again.
  - Auto-configure at build time on most platforms. Cross-compilation
    still requires PLATFORM to be set, and it can still be provided
    manually, but it is no longer required in the common case.
  - Fix Linux to MingW cross-compilation (#1768, thanks to Théo Cavignac)
  - The `clean' target for make now also removes build configuration files.
  - The `distclean' target for make has been removed (now `clean' does what
    `distclean' used to do).

- Tools
  - Fix a problem with egg installation scripts on Windows, where the
    platform was not correctly identified, depending on the shell used
    during installation of the core system (thanks again to Mark Fisher
    for reporting and helping in finding the culprit).
  - Fixed a bug in chicken-install (#1744) that would cause
    `Error: (string->number) bad argument type: #!eof` in some cases.
  - If chicken-install has a program prefix/suffix, it now writes to a
    cache directory matching its program name (#1713, thanks to Alice Maz)
  - Fixed bug in chicken-install regarding variable quotation on UNIX-like
    systems which prevented installation into paths with spaces (#1685).
  - Fixed a similar bug in chicken-install for paths with spaces on mingw
    and mingw-msys (#1727, thanks to Josh Helzer for reporting and Vasilij
    Schneidermann for the patch).

- Module system
  - Fixed a memory leak when calling (import) multiple times in a row
    on the same module (#1772; reported by "plugd" on IRC).
   2021-10-26 12:51:59 by Nia Alarie | Files touched by this commit (260)
Log message:
lang: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

The following distfiles could not be fetched (possibly fetched
conditionally?):

./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-linux-gnu.tar.gz
./lang/rust-bin/distinfo \ 
rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-linux-musl.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-netbsd.tar.gz
./lang/rust-bin/distinfo \ 
rust-bin-1.54.0/rust-1.54.0-armv7-unknown-netbsd-eabihf.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-i686-unknown-linux-gnu.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-powerpc-unknown-netbsd90.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-sparc64-unknown-netbsd.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-apple-darwin.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-freebsd.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-linux-gnu.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-linux-musl.tar.gz
./lang/smlnj/distinfo smlnj-110.73/boot.ppc-unix.tgz
./lang/smlnj/distinfo smlnj-110.73/boot.sparc-unix.tgz
./lang/oracle-jre8/distinfo jce_policy-8.zip
./lang/oracle-jre8/distinfo jre-8u202-linux-i586.tar.gz
./lang/oracle-jre8/distinfo jre-8u202-linux-x64.tar.gz
./lang/oracle-jre8/distinfo jre-8u202-macosx-x64.tar.gz
./lang/oracle-jre8/distinfo jre-8u202-solaris-x64.tar.gz
./lang/oracle-jdk8/distinfo jdk-8u202-linux-i586.tar.gz
./lang/oracle-jdk8/distinfo jdk-8u202-linux-x64.tar.gz
./lang/oracle-jdk8/distinfo jdk-8u202-solaris-x64.tar.gz
./lang/ghc80/distinfo ghc-7.10.3-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc80/distinfo ghc-8.0.2-boot-i386-unknown-freebsd.tar.xz
./lang/ghc80/distinfo ghc-8.0.2-boot-x86_64-unknown-freebsd.tar.xz
./lang/gcc5-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.i386.freebsd.84.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.dragonfly.41.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2
./lang/rust/distinfo rust-1.53.0-aarch64-apple-darwin.tar.gz
./lang/rust/distinfo rust-1.53.0-aarch64-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-1.53.0-aarch64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-aarch64_be-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-arm-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-1.53.0-armv7-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-1.53.0-i686-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-1.53.0-powerpc-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-powerpc-unknown-netbsd90.tar.gz
./lang/rust/distinfo rust-1.53.0-sparc64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-apple-darwin.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-unknown-freebsd.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-unknown-illumos.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64-apple-darwin.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64_be-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-arm-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-std-1.53.0-armv7-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-std-1.53.0-i686-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-std-1.53.0-powerpc-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-powerpc-unknown-netbsd90.tar.gz
./lang/rust/distinfo rust-std-1.53.0-sparc64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-x86_64-apple-darwin.tar.gz
./lang/rust/distinfo rust-std-1.53.0-x86_64-unknown-freebsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-x86_64-unknown-linux-gnu.tar.gz
./lang/smlnj11072/distinfo smlnj-110.72/boot.ppc-unix.tgz
./lang/smlnj11072/distinfo smlnj-110.72/boot.sparc-unix.tgz
./lang/ghc84/distinfo ghc-8.0.2-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc84/distinfo ghc-8.4.4-boot-i386-unknown-freebsd.tar.xz
./lang/ghc84/distinfo ghc-8.4.4-boot-x86_64-apple-darwin.tar.xz
./lang/ghc84/distinfo ghc-8.4.4-boot-x86_64-unknown-freebsd.tar.xz
./lang/ghc7/distinfo ghc-7.10.3-boot-i386-unknown-freebsd.tar.xz
./lang/ghc7/distinfo ghc-7.6.3-boot-i386-unknown-solaris2.tar.xz
./lang/ghc7/distinfo ghc-7.6.3-boot-powerpc-apple-darwin.tar.xz
./lang/ghc7/distinfo ghc-7.6.3-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc90/distinfo ghc-8.10.4-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-aarch64-unknown-netbsd.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-i386-unknown-freebsd.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-x86_64-apple-darwin.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-x86_64-unknown-freebsd.tar.xz
./lang/openjdk8/distinfo \ 
openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
./lang/openjdk8/distinfo \ 
openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
./lang/openjdk8/distinfo \ 
openjdk7/bootstrap-jdk-1.8.181-netbsd-8-aarch64-20180917.tar.xz
./lang/openjdk8/distinfo \ 
openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.6-amd64-20140719.tar.bz2
./lang/openjdk8/distinfo \ 
openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
./lang/go-bin/distinfo go1.14.2.darwin-amd64.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-386.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-amd64.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-arm64.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-armv6l.tar.gz
./lang/go-bin/distinfo go1.14.2.netbsd-arm64.tar.gz
./lang/go-bin/distinfo go1.16beta1.darwin-arm64.tar.gz
./lang/gcc6-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.dragonfly.41.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2
./lang/ghc810/distinfo ghc-8.8.4-boot-x86_64-unknown-solaris2.tar.xz
./lang/sun-jre7/distinfo UnlimitedJCEPolicyJDK7.zip
./lang/sun-jre7/distinfo jre-7u80-linux-x64.tar.gz
./lang/sun-jre7/distinfo jre-7u80-solaris-i586.tar.gz
./lang/sun-jre7/distinfo jre-7u80-solaris-x64.tar.gz
./lang/ghc88/distinfo ghc-8.4.4-boot-i386-unknown-freebsd.tar.xz
./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-apple-darwin.tar.xz
./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-unknown-freebsd.tar.xz
./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-unknown-solaris2.tar.xz
./lang/gcc-aux/distinfo ada-bootstrap.i386.dragonfly.36A.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.i386.freebsd.84.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2
./lang/gcc6/distinfo ecj-4.5.jar
./lang/openjdk11/distinfo bootstrap-jdk-1.11.0.7.10-netbsd-9-aarch64-20200509.tar.xz
./lang/sun-jdk7/distinfo jdk-7u80-linux-x64.tar.gz
./lang/sun-jdk7/distinfo jdk-7u80-solaris-i586.tar.gz
./lang/sun-jdk7/distinfo jdk-7u80-solaris-x64.tar.gz
   2021-10-07 16:21:17 by Nia Alarie | Files touched by this commit (282)
Log message:
lang: Remove SHA1 hashes for distfiles
   2020-05-16 22:01:56 by Nikita | Files touched by this commit (2) | Package updated
Log message:
chicken: Update to version 5.2.0

Changelog:

5.2.0

- Core libraries
  - Fix `memory-statistics` by returning semi-space bytes and used
    semi-space bytes like the documentation says. Old implementation
    returned full-heap size and (full-heap - used-semi-space).
  - for-each and map now behave consistently in compiled and interpreted
    mode, like in SRFI-1.  They now stop when the shortest list is
    exhausted instead of raising an exception (fixes #1422).
  - There is now a srfi-88 module which contains just the three
    procedures from the (chicken keyword) module defined by the SRFI.
  - A feature identifier named "srfi-88" is now registered.
  - The procedures `record-printer` and `set-record-printer!` and a
    corresponding SRFI-17 setter have been added. These deprecate
    `define-record-printer` which isn't a "real" definition (see #1294).
  - On Windows, `decompose-directory` no longer crashes when a drive
    letter is present in the supplied path string.
  - irregex-replace[/all] have been fixed for empty matches, so they
    will no longer drop characters and ignore the replacement (#1661).
  - Irregex has been updated to upstream 0.9.7, which also improves
    how empty matches are treated in irregex-fold and irregex-split.

- Runtime system
  - Quoted empty keywords like ||: and :|| are now read like prescribed
    by SRFI-88 in the corresponding keyword mode.  Symbols containing
    quoted empty prefixes or suffixes like ||:abc and abc:|| will be
    read correctly as symbols now (fixes #1625, thanks to Andy Bennett).
  - IEEE floating point negative zero is now properly handled: it can
    be read, written and distinguished by eqv? and equal?, but not =
    (fixes #1627, thanks to John Cowan).
  - ##sys#check-exact and its C implementations C_i_check_exact and
    C_i_check_exact_2 have been deprecated (see also #1631).
  - When garbage collector is manually invoked from a finalizer, raise
    an error instead of hanging forever (fixes #1586).
  - define-record-type will now give an error if the constructor
    definition refers to field that's not listed elsewhere (see #1633)
  - Added new -:hu option to set the memory usage low watermark
    percentage at which the heap should be shrunk, and changed the
    calculation to actually reflect this (see #1379).

- Compiler
  - Fixed a bug in lfa2 pass which caused "if" or "cond" \ 
nodes to be
    incorrectly unboxed if the "else" branch had a flonum result type
    (#1624, thanks to Sven Hartrumpf)
  - Inline files no longer refer to unexported foreign stub functions
    (fixes #1440, thanks to "megane").
  - In some cases, rest argument lists do not need to be reified, which
    should make using optional arguments and case-lambda faster (#1623).
  - Values from foreign types which have an argument or return value
    converter are no longer inferred to have the Scheme type which
    corresponds to the raw foreign type, which was incorrect (#1649).

- Module system
  - Trying to export a foreign variable, define-inlined procedure or
    define-constant variable gives a friendly error instead of saying
    the variable doesn't exist (fixes #1346).
  - When modules are registered, they no longer pollute the global
    environment with imports made in that module (fixes #1548)

- Tools
  - The new "-module-registration" options causes module registration
    code to always be included in the program, even when it has also
    been emitted as a separate file (for example with "-J").
  - chicken-install now correctly checks server response code to avoid
    interpreting error response bodies (like 404, 500) as Scheme code.
  - chicken-install now follows HTTP redirects when downloading eggs.
  - chicken-install will now change to the correct drive before
    attempting to change to the egg directory (fixes #1647).