4.1.0

- The new parameter "parantheses-synonyms" and the command-line
  option "-no-parantheses-synonyms" allows disabling list-like behaviour
  of "{ ... }" and "[ ... ]" tokens
- The new parameter "symbol-escape" and the command-line
  option "-no-symbol-escape" allows disabling "| ... |" symbol escape
  syntax
- Added command-line option "-r5rs-syntax" to disable CHICKEN-specific
  read-syntax
- Added compiler command-line-option "-no-compiler-syntax"
- Deprecated "getenv" (use "get-environment-variable" instead)
- Removed "macro?" and "undefine-macro!"
- Support for Microsoft Visual Studio / MSVC has been dropped
- The compiler provides now a simple flow-analysis pass that does
  basic checking of argument-count and -types for core library procedures
  (new option "-scrutinize")
- New compiler-options "-no-argc-checks", "-no-bound-checks",
  "-no-procedure checks", "-no-procedure-checks-for-usual-bindings",
  "-types TYPEFILE" and "-consult-inline-file FILENAME"
- Added a "chicken-setup" stub-application to catch incorrect use of
  this tool (which has been replaced in 4.0.0 with "chicken-install")
- Changed "setup-install-flag" and "setup-verbose-flag" to
  "setup-install-mode" and "setup-verbose-mode" in "setup-api" module,
  the old names are still available but deprecated
- Posix unit:
  added "socket?", "block-device?" and "character-device?", deprecated
  redundant "stat-..." procedures
- Also in Posix unit: "canonical-path" has been deprecated, "normalize-pathname"
  from the "files" unit provides now most of the functionality
- Added "directory-exists?"
- "(for-each (lambda ...) X)" is compiled as a loop
- The argument-count check for format-strings for "[sf]printf" with a constant 
  string argument is done at compile-time
- A stub application named "chicken-setup" is installed to catch when a 
  user invokes theobsolete tool instead of the new "chicken-install".

4.0.0

- removed `apropos' and `apropos-list' from the "utils" library unit;
  available as an extension
- removed texinfo and PDF documentation - this will possible be added back 
  later
- replaced PCRE regex engine with Alex Shinn's "irregex" regular expression
  package
- removed `-extension' option
- removed `-static-extensions' csc option and added `-static-extension NAME'
- `regex' unit: removed `regexp*' and `regex-optimize'
- added `CHICKEN_new_finalizable_gc_root()'
- `length' checks its argument for being cyclic
- removed custom declarations and "link-options" and "c-options" declarations
- deprecated "-quiet" option to "chicken" program
- added "-update-db" option to chicken-install
- the compiler now suggests possibly required module-imports
- moved non-standard syntax-definitions into "chicken-syntax" library unit
- the pretty-printer prints the end-of-file object readably now
- alternative conditional execution paths have separate allocation computation
  (previously the allocation of all alternatives was coalesced)
- removed unused "%kmp-search" from "srfi-13" library unit
- expander handles syntax-reexports and makes unexported syntax available
  for exported expanders in import libraries
- added checks in some procedures in the "tcp" library unit
- the macro system has been completely overhauled and converted 
  to hygienic macros
- a macro-aware module system has been added
- added "-sx" option to csi
- removed the following deprecated functions:
   [un]shift!
   andmap ormap
   byte-vector? byte-vector-fill!
   make-byte-vector byte-vector
   byte-vector-set! byte-vector-ref 
   byte-vector->list list->byte-vector
   string->byte-vector byte-vector->string
   byte-vector-length
   make-static-byte-vector static-byte-vector->pointer
   byte-vector-move! byte-vector-append!
   set-file-position! set-user-id! set-group-id!
   set-process-group-id!
   macro? undefine-macro!
- the situation-identifiers "run-time" and "compile-time" have
  been removed
- the compiler options "-check-imports", "-import" and "-emit-exports"
  have been removed
- new procedures:
  strip-syntax
  expand
- new macros
  define-syntax
  module
  export
- the following macros have been removed:
    define-foreign-record
    define-foreign-enum
    define-macro
    define-extension
- "local" mode, in which locally defined exported toplevel variables can
  be inlined
- new options and declarations "[-]local", "[-]inline-global" and "-emit-inline-file"
- optimization levels changed to use inlining:
  -optimize-level 3: enables -inline -local (but *not* -unsafe)
  -optimize-level 4: enables -inline -local -unsafe
- increased default inlining-limit to 20
- support for cross-module inlining
- "make <VARIABLES> bench" runs the benchmark suite
- "chicken-setup" has been replaced by new command line tools
  "chicken-install", "chicken-uninstall" and "chicken-status", which are
  more flexible and allow greater freedom when creating local or application-
  specific repositories
- extension-installation can be done directly from SVN repositories or a local
  file tree
- enabled chicken mirror site as alternative download location

3.4.0

- Fixes to the MinGW build.
- PCRE 7.7
- Bug fix for bitwise-or use [Joerg Wittenberger]
- Bug fix in thread-terminate! [thanks to Joerg Wittenberger]
- Cygwin build patched to put the runtime libraries in the right place. 
  [thanks to Nathan Thern]
- added support for out-of-tree compilation (via the SRCDIR variable)
  [thanks to Ivan Shmakov]
- bug fix for (string->number "/")
- support for selective procedure profiling in the compiler
- unit utils: moved file- and pathname-related procedures to unit files
- new unit files

3.3.0

- bug fix for bitwise-or use [Joerg Wittenberger]
- bug fixes for tickets  393, 430, 436
- bug fix pointer->address
- the build system now sets the SONAME field of libchicken.so under Linux
- fixed an allocation bug in decode_literal
- some fixes to the build system when USE_HOST_PCRE is set
- added use of unit ports to unit extras and chicken-setup
- unit utils and extras: moved port extensions to unit ports
- new unit ports

3.2.0

- unit extras: moved lists, queues, strings to data-structures
- new unit data-structures
- unit library: symbol->string now copies its argument
- chicken-setup: added option -svn-trunk
- unit utils: added file-copy and file-move (request by the einit team)
- unit srfi-69: added hash-table-clear!
- unit srfi-69: new
- unit extras: moved SRFI 69 to unit srfi-69

3.1.0

- svnrevision.sh - cleaned logic to prevent invalid error message
- csc - fixed bug preventing static linking of executables (build order issues)
- unit regex: PCRE 7.6
- unit regex: avoid string copy in regex matching [Jim Ursetto]
- chicken-setup: eggs are downloaded to and compiled in a temporary
  directory determined by CHICKEN_TMPDIR or TMPDIR environment
  variables, or by -build-prefix and -download-dir options,
  respectively; -destdir option is replaced with -install-prefix.
- unit regex: PCRE 7.6
- unit tcp: use of offset into string rather than substring for faster
  socket write [Jim Ursetto]
- MSVC can now be used to build the system, when standard UNIX tools (like
  MSYS) are available [Many thanks to Ashley]
- unit library: added "flonum-print-precision" for changing the default of
  16
- unit posix: create-directory can now handle DOS drive letters 
  in the given path
- unit posix: added stat- predicates for file types
- unit posix: added strftime format string support to "time->string"
- unit posix: added "string->time", which takes a strptime format string
  (Unix only)
- unit extras: added "left-section", "right-section", "none?", "always?",
  and "never?"
- unit extras: added "hash-table-merge", "hash-table-map",
  "hash-table-for-each", and extended "make-hash-table" with minimum/maximum
  load & initial value
- unit extras: added "eq?-hash", "eqv?-hash", "equal?-hash", "number-hash",
  "symbol-hash", "keyword-hash", "##sys#number-hash-hook", and
  "hash-by-identity" as a synonym for "eq?-hash"

3.0.0

- upgraded scheme-complete.el to version 0.6 [Thanks to Alex Shinn]
- unit library: added "blob=?"
- the library can optionally be built with an already installed libpcre
- chicken-setup accesses a separate set of eggs, specific on the major CHICKEN
  version (3)
- added csi options "-p" ("-print") and "-P" ("-pretty-print")
- support for Mac OS X universal binaries hase been added [Thanks to Zbigniew]
- `cond-expand' is available in the set of core macros [Thanks to Alex Shinn]
- On sparc64 architectures more than 126 procedure arguments are allowed 
  [Thanks to Peter Bex]
- posix unit: "seconds->string" and "time->string" have now their trailing
  #\newline character removed. THIS IS A BACKWARD-INCOMPATIBLE CHANGE.

2.739

- the SVN checkout can now be built from a bootstrapping tarball without
  the need for a pre-installed "chicken" executable
- literals are compiled in a platform-independent binary encoding into 
  the executable which results in faster C compile times and moe compact
  binaries. This also makes the "compress-literals" option and declaration
  unnecessary
- the "-compress-literals" compiler option and the "compress-literals"
  declaration have been removed
- the CHICKEN_HOME environment variable is now obsolete, use CHICKEN_PREFIX
  and possibly CHICKEN_REPOSITORY_PATH
- added pre GC hook C-level variable
- Cygwin is now fully supported
- removed deprecated functions:
  extension-info
  print-backtrace
  test-feature?
  ___callback (chicken.h)
  foreign-callback-lambda[*]
  thread-deliver-signal!
  critical-section
  enable-interrupts
  disable-interrupts
  invalid-procedure-call-handler
- There is no platform-dependent pathname directory separator
  anymore, the slash ("/") and backslash ("\") characters can be
  used interchangably
- New procedures "regexp*", "regex-optimize" and "make-anchored-pattern"
  (regex library unit)
- New procedures "terminall-size", "terminal-name" and "get-host-name"
  (posix library unit)
- chicken-setup: can create repository catalog file from local 
  SVN checkout of egg repository
- chicken-setup has the new option "-host-extension" to force
  compiling extensions in "host" mode when using a cross-compiling
  chicken
- Better cross-development support for the build system (the
  Makefile accepts various variables for customizing the build)
- "file-size" and "file-stat" handle file-sizes of >4GB now
- "find-files" collects directories as well, now [Thanks to Ivan Raikov]
- added "dist" target to toplevel makefile
- "andmap" and "ormap" have been deprecated
- makefiles support relinking now
- added "thread-wait-for-i/o!" (srfi-18 library unit)
- the "chicken-bug" program can now be used to create bug reports
  and send them to the CHICKEN maintainers

2.717

- New binary compatibility version (3) - installed eggs mst be recompiled!
- deprecated "shift!" and "unshift!"
- regex unit:
  Uses PCRE 7.4
- utils unit:
  Uses compiled regular expressions
- unit posix:
  Uses compiled regular expressions
- removed build option for extra symbol slot
- added Lisp-style symbol property lists

2.701

- countless bugfixes and minor improvements
- new foreign types:
  [nonnull-]unsigned-c-string[*]
  c-string-list[*]
- added "unused" declaration specifier
- new GNU Make based build process
- libffi is not used anymore, handcoded assembler is used for x86, x86-64 
  and powerpc platforms
- library unit:
  blob?
  make-blob
  blob-size
  string->blob
  blob->string
- regex unit:
  glob?
- utils unit:
  directory-null?
  port-fold
- extras unit:
  hash-table-remove!
- lolevel unit:
  mutate-procedure
- srfi-4 unit:
  XXXvector->blob[/shared]
  blob->XXXvector[/shared]
- csc options:
  -cxx-name
  -disable-compiler-macros
- byte-vectors have been removed and replaced by new "blob" type,
  added various blob<->SRFI-4 vector conversion procedures in srfi-4 unit
- ":optional" has been renamed to "optional" (the old name is still
  available but deprecated)
- "switch" has been replaced by "select" ("switch" is still available but
  deprecated)
- "tcp-connect" and "tcp-accept" handle time-outs via parameters
  "tcp-connect-timeout" and "tcp-accept-timeout"
- tcp unit: support for read/write timeouts


2.6

- Many bugfixes
- Better support for Sun's C compiler
- Input-performance has been improved
- PCRE (Perl compatible regular expressions) by Philip Hazel is now
  bundled with CHICKEN
- Static linking of extensions is now possible (when supported by
  the egg)
- The interpreter warns about references to potentially unbound variables
  in loaded code and expressions entered on the REPL
- The expansion process is traced during compilation and interpretation
  to give (slightly) more usable syntactic context in error messages
- library:
  * added `any?`, `bit-set?' and `on-exit'
- eval:
  * new procedure `set-parameterized-read-syntax!'
- posix: 
  * SRFI-17 setters for `file-position`, `current-user-id', 
    `current-group-id', `process-group-id'; the respective setter-procedures
    are still available but have been deprecated
  * `file-stat' returns more information (including device info)
  * added `process*'
- extras:
  * added `read-string!'
- utils:
  * `apropos' and `apropos-list' procedures
- srfi-4:
  * added `read-u8vector', `read-u8vector!' and `write-u8vector'
- srfi-18:  
  * added `time->milliseconds' and `milliseconds->time'
- csi:
  * `-ss SCRIPTNAME' option
- csc:
  * accepts options given in the environment variable `CSC_OPTIONS'
  * new options `-static-extensions' and `-host'
- chicken/csc:
  * new option `-keep-shadowed-macros'
- chicken-setup:
  * accepts options given in the environment variable `CHICKEN_SETUP_OPTIONS'
  * allows retrieval and installation of eggs from subversion repository
    and the local filesystem
  * new options `-tree FILENAME', `-svn', `-local', `-revsion' and 
    `-destdir PATHNAME'
  * added helper procedures `required-chicken-version' and
    `required-extension-version'
- Lots of improvements in the CMake build

Many thanks to Ingo Bungener, Peter Busser, John Cowan, Marc Feeley,
Stephen Gilardi, Mario Domenech Goulart, Joshua Griffith, Sven
Hartrumpf, Daishi Kato, mejedi, Dan Muresan, Deanna
Phillips, Robin Lee Powell, Ivan Raikov, Danial Sadilek, Alex Shinn,
Tony Sideaway, Minh Thu for reporting bugs, suggesting improvements
and contributing fixes.

Thanks again to Brandon Van Every for his extensive work on the CMake
build process.

Special thanks to Kon Lovett for many improvements made in the posix
library.


2.5

- Bugfixes
- CHICKEN can now be built using CMake <http://www.cmake.org>, in fact CMake
  is required to built CHICKEN from sources on Windows with the Microsoft 
  tools
- the whole build process has been cleaned up and simplified
- the "easyffi" and "tinyclos" library units have been removed from the base
  system and are now available as separate extensions
- the deprecated "set-dispatch-read-syntax!" has been removed
- Will Farr cleaned up the behaviour of number-type specific numeric operations
  ("fx..."/"fp...") with respect to safe/unsafe mode
- added "(finite? NUMBER)"
- the "$" macro moved into its own separate extension
- the values of "software-type", "software-version", "machine-type" and "machine-byte-order"
  are now registered as features and can be tested using "cond-expand" or "#+"
- all tools now support the "-release" option
- chicken-setup: added "-test" option

Special thanks to Brandon Van Every, who put considerable effort into the
CHICKEN build system and who ported it to CMake completely from scratch.
The installation instructions and build file are extensively documented and may
serve as a tutorial for creating non-trivial software projects with CMake.
Thanks, Brandon! Also thanks to Bill Hoffmann and Brad King from Kitware
for their support.

Many thanks to Peter Bex, Toby Butzon, Thomans Chust, John Cowan, Alejandro Forero Cuervo, 
dgym, Alex Drummond, Mario Domenech Goulart, Kon Lovett, Benedikt Rosenau and Zbigniew 
Szadkowski for reporting bugs, suggesting improvements and contributing fixes.


2.41

- Bugfixes galore
- compiler: 
  * added support for the generation of "export" files through the "-emit-exports" option
  * new option `-check-imports' (csc: `-G') checks for unimported symbols and can be quite
    helpful in finding unbound variable errors (this requires all extensions ("eggs") to be
    adapted to this new feature, a process which isn't complete yet)
  * new declarations `emit-exports', `constant' and `import'
  * new option `-disable-warning' and declaration `disable-warning'
  * new options `-release' and `-import'
- chicken-setup: 
  * new `exports' extension property
  * option `-check' checks for extension upgrades
  * added `-eval' option
  * added parameters `setup-install-flag' and `setup-verbose-flag'
- FFI: 
  * added the handy `$' macro, which lets you do foreign calls directly without declaring
    a placeholder procedure
  * `define-foreign-enum' for treating C enums as symbol-sets
  * `foreign-safe-wrapper' has been deprecated
- Slight reorganization of TinyCLOS and match macros and support code
- `thread-join!' has been generalized to allow a thread to have multiple results
- Renamed `thread-deliver-signal!' to `thread-signal!' and `invalid-procedure-call-handler'
  to `set-procedure-call-handler!' 
- The system can be configured to add an extra slot to symbol objects
- Another configuration option enables GC of unused symbols by default
- The extension repository is now versioned to catch binary incompatible
  installations, this requires to either move all installed extensions to the
  new location ("$prefix/lib/chicken/1") or reinstall them
- Now supports SRFI-61 (extended `cond')
- Added procedures `load-relative', `tcp-buffer-size`, `string-chomp'
- trivial implementations of `real-part', `imag-part', `angle' and `magnitude' have 
  been added to the library to allow more portable code
- Breakpoints and single-stepping of compiled code on the function-level, new
  procedures `breakpoint' and `singlestep'
- csi: new toplevel commands `,info', `,step', `,br', `,ubr', `,breakall', `,breakonly',
  `,exn' and `,c'
- csi: `set-describer!' allows definition of custom output for the `,d' command
- Added `integer64' foreign type specifier
- The environment variable "CHICKEN_PREFIX" allows (together with "CHICKEN_REPOSITORY") overriding
  the installation path prefix in case you want to install and run multiple instances/versions 
  of CHICKEN or install on a shared network
- csc: added `-dry-run' option
- removed `-split...' options (and the ability to generate multiple C files from a single
  Scheme file)
- `crictical-section', `disable-interrupts' and `enable-interrupts' shouldn't be used from
  now on (deprecated), use SRFI-18 mutexes instead

Many thanks to Nico Amtsberg, Arto Bendiken, Jean-Francois Bignolles, Peter Busser, Thomas Chust, 
John Cowan, Alejandro Forero Cuervo, Jaarod Eells, Brandon van Every, Graham Fawcett, Mario Domenech 
Goulart, Sven Hartrumpf, Markus Hülsmann, Goetz Isenmann, Heath Johns, Daishi Kato, Kon Lovett, Dan 
Muresan, Ian Oversby, Göran Weinholt, Burton Samograd, Reed Sheridan, Alex Shinn, Sunnan, Zbigniew 
Szadkowski and Peter Wright for their helpful contributions, suggestions and bug reports!


2.3

- Many many bugfixes
- compiler:
  * new option `-profile-name FILENAME'
- the `chicken-config' script has been removed, identical functionality can be provided
  by `csc'
- csc: 
  * new option `-objc' compiles generated C files in Objective-C mode
  * accepts .m files and handles the case when only object files are given
  * new options `-framework', `-F<dir>' and `-rpath'
  * options `-home', `-cflags', `-ldflags', `-libs', `-cc-name' and `-ld-name'
- chicken-setup:
  * detects whether eggs are gzipped or not and accepts ungzipped eggs
  * if no other actions are specified and no eggs are given on the command line, then
    all .setup scripts in the current directory are executed
  * added `setup-build-directory' and `setup-root-directory' parameters
  * helper procedures `copy-file', `move-file', `remove-file' and `create-directory'
- csi commands `,s', `,l' and `,ln' accept multiple inputs, the `trace'/`untrace'
  macros have been replaced byy the toplevel commands `,tr' and `,utr'
- new toplevel commands in csi can be defined with the `toplevel-command' procedure
- `extension-info' has been renamed to `extension-information'. The old name is
  still available, but deprecated
- `print-backtrace' has been renamed to `print-call-chain'. The old name is still
  available (and deprecated)
- `transcript-on' and `transcript-off' are no longer supported
- New macro `define-for-syntax'
- library:
  (get-call-chain [DEPTH])
  (current-read-table)
  (copy-read-table READ-TABLE)
  (current-gc-milliseconds)
  `print-error-message' writes now to the current output-port, not the error port
  `number-string' does now a slightly better job converting large exact integers
  with non-decimal base
- extras:
  (each PROC ...)
  `hash-table-ref' throws (exn access) on error
- posix:
  (local-time->seconds TIME)
  (utc-time->seconds TIME)
  (local-timezone-abbreviation)
  `directory' takes optional path and dotfiles arguments
  `[group|system]-information' return lists instead of multiple values
- tcp:
  (tcp-port-numbers PORT)
- `set-dispatch-read-syntax!' has been renamed to `set-sharp-read-syntax!' (the old
  name is still available but deprecated)
- evaluated code generates call-trace information (as compiled code does), which
  results in much better back-traces.
- new foreign types `[unsigned-]int32' and `[unsigned-]integer32'
- added SRFI-17 setters for many accessors of the core libraries
- tinyclos: added a couple of missing classes for core library structures
- `let[*]-values' is now SRFI-11 compliant
- the finalizer-table is now resized dynamically, which speeds up code that uses
  very many finalizers [Thanks to Zbigniew Szadkowski]
- reloading compiled code dynamically does basically work (but still leaks memory)
- the manual contains a section on pattern matching
- libffi is used by default, when available
- CHICKEN has now experimental support for the "CMake" build system <http://www.cmake.org>
  Many thanks to Bill Hoffmann from Kitware and Brandon van Every for helping with this
- added compiler/runtime support for object serialization via the `s11n' extension
  (see <http://www.call-with-current-continuation.org/eggs/s11n.html>)

Sergey Khorev has offered to help with maintaining the Windows port of CHICKEN. 
Thanks, Sergey!

Many thanks Jean-Francois Bignolles, Patrick Brannan, Adam Buchbinder, Hans Bulfone, Category 5, 
John Cowan, datrus, Guillaume Germaine, Mario Domenech Goulart, Daniel B. Faken, Andrey Fomichev, 
Jarod Eells, Sven Hartrumpf, David Janssens, Daishi Kato, Levi Pearson, Pupeno, Eric Raible, Benedikt 
Rosenau, Reed Sheridan, Zbigniew Szadkowski and Mark Wutka for their helpful contributions, 
suggestions and bug reports!

Special thanks to Kon Lovett for fixing countless open issues and many useful sugestions.


2.2

- Many bugfixes
- The read-syntax `#+X Y' is provided as a shorthand for `(cond-expand (X Y) (else))'
- `foreign-parse' and `foreign-parse/spec' have been removed
- lolevel: Executable byte-vector stuff has been removed
- SRFIs 28, 31, 62 and 69 are now officially supported
- New compiler option `-extension' simplifies static compilation of eggs
- csc: changed `-E' to `-P', `-E' is now an alias for `-extension'
- Embedding:
  * All the `entry-point' related things have been removed, as has been `define-embedded',
    calling Scheme from C is now exclusively done with callbacks
  * Integrated boilerplate embedding API into the `eval' unit
  * Added `CHICKEN_continue' API function
  * Default "stub" toplevel (`CHICKEN_default_toplevel') allows embedding without a
    separate Scheme file 
  * Different stack-levels during invocation of CHICKEN_run or callbacks could result
    in crashes - this is now detected (or can be checked manually)
- Added extension-specifier `(version ...)'
- New FFI macros `foreign-declare', `foreign-parse' and `foreign-parse/declare' replace
  the declaration-specifiers of the same name
- Hash-table resizing was ridiculously slow, and should now be much faster
- `define-foreign-record' handles recursive structures
- `require-extension' is now available by default, and so can be used with the
  plain Scheme evaluator
- Procedures now contain some basic debug information, unless a file was compiled
  with `-no-lambda-info'
- compiler: `-debug-level 2' is now the default (enables trace- and lambda-info)
- chicken-setup: 
  * handles direct downloads from arbitrary URLs
  * HTML documentation for eggs can now be included into the egg and will be installed
    in the repository (using the `documentation' info-property)
  * `chicken-setup -docindex' shows path of generated documentation index for all 
    installed eggs
- extras: 
  * SRFI-69 is now fully supported, note that THIS WILL BREAK EXISTING CODE, since
    the API is not compatible to the previous one
  * `clear-hash-table!', `get' and `put!' are gone
  * `read-file' accepts optional reader procedure and max count
  * `read-lines' accepts filename instead of port
- library:
  * `signum' is now exactness-preserving
  * `procedure-information' returns some basic debug info for a given procedure
  * Added `(warning MESSAGE ARGUMENTS ...)'
  * `(promise? X)'
- posix:
  * `(current-directory DIR)' is equivalent to `(change-directory DIR)'
- regex:
  * `pattern->regexp' has been renamed to `glob->regexp'
- The `format' library unit has been removed from the base system and is noww available
  separately
- SRFI-17, on the other hand has been moved into the base system
- String literals and the print-names of symbol literals are now allocated in static
  (non-GC'd) memory 
- If static or shared build is disabled, no `...-static' executables will be generated


Many thanks to Ashley Bone, Thomas Chust, John Cowan, Alejandro Forero Cuervo, Daniel Faken, Sven 
Hartrumpf, Daishi Kato, Sergey Khorev, Kon Lovett, Gene Pavlovsky, Reed Sheridan and Ed Watkeys for 
their helpful contributions, suggestions and bug reports!


2.0

- Many bugfixes 
- Loads of minor improvements (better error messages, more warnings, more error 
  checks, etc.)
- On systems supported by the "libffi" library, the 128-argument limit can
  be exceeded (currently to an arbitrary maximum of 1000). To take advantage
  of this, add `--with-libffi' to the configuration options when building
  chicken
- The `libsrfi-chicken' and `libstuffed-chicken' libraries have been folded
  into `libchicken', so only a single library is linked with generated
  executables, which greatly simplifies and speeds up the build process.
  It is recommended to remove any traced of `libstuffed-chicken.*' and 
  `libsrfi-chicken.*' before installing a new release. This requires also
  to reinstall all eggs (extension libraries).
- The compiler is able to inline more procedure calls
- Implicit non-multival continuations (like in `begin' or 'let') accept multiple 
  values and discard all but the first value
- finalization should actually work now and is much more efficient (unless
  used excessively)
- csi: 
  `advise' has been removed
  `-eval' implies `-batch' and `-quiet'
  added `-require-extension'
  short option names are now supported and may be collapsed, if unambigous
- New runtime options:
  -:b (enter REPL on error)
  -:B (ring bell on every major GC)
  -:fNNN (set pending finalizer maximum limit)
- New compiler options:
  -accumulate-profile
  -inline
  -inline-limit
  -emit-external-prototypes-first
- The compiler-option `-require-for-syntax' has been renamed to `-require-extension'
  and is the same as putting a `(require-extension ...)' form directly into the code
- Removed compiler- and interpreter option `-no-feature'
- New declarations:
  (lambda-lift)
  ([not] inline)
  (inline-limit LIMIT)
  (emit-external-prototypes-first)
  ([not] check-c-syntax)
- `foreign-callback-lambda[*]' has been renamed to `foreign-safe-lambda[*]' - the
  old names are still valid but deprecated
- New foreign type specifier `scheme-pointer' (the same as `pointer', which is 
  deprecated now)
- Easy FFI: 
  `___scheme_pointer' and `___byte_vector' pseudo types
  `___pointer' and `___length' markers
  `default_renaming' and `opaque' pseudo declarations
  `___inout' and `___out' argument markers work also for C++ reference types
  Recognizes `C_word' and `size_t'
- The reader supports selective case sensitive/insensitive reading using the 
  `#cs...' and `#ci...' syntax (as supported in PLT Scheme)
- `\uXXXX' and `\UXXXXXXXX' escape-sequences for string literals
- `#\UXXXXXXXX' character literal syntax
- `\v', `\a' and `\f' escape sequences and `#\delete', `#\esc', `#\alarm', `#\vtab' 
  and `#\nul' character literals
- `chicken-setup' supports proxy connections via the `-proxy' option
- library:
  (set-dynamic-load-mode! MODE)
  `(end-of-file)' has been removed (use `#!eof' instead)
- The alternative continuation API described in Marc Feeley's paper
  "A better API for first class continuations" is supported natively:
  (continuation-capture PROC)
  (continuation-graft K THUNK)
  (continuation-return K VALUE ...)
  (continuation? X)
- `foreign-primitive' and `define-extension' macros
- tinyclos:
  (instance-of? X)
  `define-method' specializes on all arguments and allows DSSSL keyword argument lists
- eval:
  (set-dispatch-read-syntax! CHAR PROC)
- extras:
  (hash-table-update! HT KEY PROC INIT)
  (hash-table-exists? HT KEY) 
  (hash-table-values HT)
  (hash-table-keys HT)
  (alist->hash-table ALIST [TEST SIZE])
  `hash-table->list' has been renamed to `hash-table->alist
  `hash-table-for-each' takes the arguments in reversed order (the old order is still
  valid but deprecated)
  Hash-tables support now user-defined hash functions
- posix:
  (file-link OLD NEW)
  (symbolic-link? FILENAME)
  (regular-file? FILENAME)
  errno/exist
  `process' and `process-execute' allow passing an environment
- regex:
  (regexp-escape STR)
- tcp:
  (tcp-listener-fileno LISTENER)
- utils:
  (port-for-each FN THUNK)
  (port-map FN THUNK)
- On Windows, the batch file `win-install.bat' can be used to install the system
  into the desired location
- Building Chicken on Windows with the free development tools from Microsoft (VCToolkit,
  Platform Core SDK) has been tested and is documented in the file `vctk-install.txt'
- The `-script-meta' option has been removed
- The srfi-25 and srfi-37 library units and the test-infrastructure facility have been 
  removed from the core system and is now separately available as an extensions (eggs)
- The syntax-case macro and module system has been removed and also available as an
  extension. This implies that all compiler- and interpreter options related to hygienic
  macros and syntax-case are gone as well.
- All strictness compiler- and interpreter options (and the `strict-reader' parameter)
  have been removed
- the `examples' directory and its contents have been removed from the distribution
  

Many thanks to William Annis, Mark Baily, Peter Bex, Dominique Boucher, Patrick Brannan, 
Thomas Chust, Alejandro Forero Cuervo, Graham Fawcett, Damian Gryski, Sven Hartrumpf, 
Hans Huebner, Christian Jaeger, Dale Jordan, Daishi Kato, Sergey Khorev, Krysztof Kowalczyk,
Goran Krampe, John Lenz, Kon Lovett, Scott G. Miller, Julian Morrison, Nicolas Pelletier, 
Carlos Pita, Benedikt Rosenau, Andreas Rottmann, Reed Sheridan, Alex Shinn, Andrey Sidorenko, 
Michele Simionato, Volker Stolz, Sunnan, Zbigniew Szadkowski, Andre van Tonder, Henrik 
Tramberend and Mark Wutka for their helpful contributions, suggestions and bug reports!
