
  Fixes and changes:


01/01/02 (build 989):
	- `##core#elaborationtimetoo' is identical to `##core#elaborationtimeonly'
	  in the interpreter.
	- Changed copyright headers (2002).

31/12/01 (build 988):
	- Fixed buggy highlevel definition for `define-foreign-type'.
	- Compiled SRFI-22 scripts had program-name as first argument.

30/12/01 (build 988):
	- Fixed `define-macro' form problem inside `begin' forms while
	  evaluating.
	- `load' is now exported by the `scheme' module.
	- Fixed some inconsistencies regarding compile/elaboration-time
	  evaluation between compiled and interpreted code.
	- Fixed several module system problems.
	  [Thanks to Shawn Wagner]

29/12/01 (build 986):
	- Fixed bug in `makefile.vc'.
	- Fixed misspelled `C_main_argv' in `runtime.c' (Win32 build).
	- Added `not' qualifier for standard-bindings/extended-bindings/
	  usual-integrations declaration specifiers.
	- `extended-procedure?' crashed on an immediate argument.
	- `with-input-from-file' and `with-output-to-file' were not exported
	  from the `scheme' module.
	- Fixed bug related to testing wether object is contained in
	  C stack.
	  [Thanks to Dennis Marti]

28/12/01 (build 985):
	- Distribution didn't include strict highlevel macro definitions.
	- Added R5RS evaluation environments.
	- Added `byte-vector'.
	- Fixed bug in rewriting of `=' standard-binding: called wrong 
	  C routine in flonum-mode.
	- Fixed bug in implementation of `equal?': foreign-pointers were
	  not correctly compared.
	- `describe' segfaulted on unbound value.
	- `equal?' is rewritten to `eq?' if one argument is a quoted symbol.

27/12/01 (build 982):
	- SRFI-22 scripts catch missing `main' procedure.
	- SRFI-22 drivers are called with `-no-init' and 
	  `-strict[-srfi-0]', is appropriate.
	- Added `-strict' and `strict-srfi-0' options.
	- Foreign arguments of type `c-pointer' or `(pointer ...)'
	  accept `#f' now (NULL).

26/12/01 (build 982):
	- `process.scm' is autoloaded.

24/12/01 (build 982):
	- Added `process.scm' source file.
	- Renamed `case-sensitivity' to `case-sensitive'.

21/12/01 (build 981):
	- `evict' handles circular and shared refs.
	- Type converters didn't apply to `foreign-callback-wrapper'.
	- Added `#'' read-syntax.

20/12/01 (build 981):
	- `print-to-string'.
	- `#<# ...' read syntax.
	- Bytevector conversion routines in `srfi-4.scm' were not
	  spelled correctly.

19/12/01 (build 979):
	- `null-pointer?' is inlined, now.
	- Some globals of the runtime system have been declared `block-global'.
	- Added `external-pointer' special form.

18/12/01 (build 979):
	- Optional `regex' package uses `regex.h' again on
	  Cygwin.
	- `-mpreferred-stack-boundary=2' is back again.
	- If foreign code returns NULL as type c-string, then `#f'
	  is returned.
	- Added `get-host-name'.
	- Foreign variables that returned c-strings returned pointer
	  instead.

17/12/01 (build 978):
	- Fixed bug in vector-allocation routine: heap-ptr wasn't
	  properly aligned sometimes.

16/12/01 (build 977):
	- Better rewriting for `##sys#setslot'.
	- Safe rewriting for `vector-set!' was not applied.
	- Customizable procedures with empty closures drop
	  closure argument.

15/12/01 (build 976):
	- Removed `-mpreferred-stack-boundary=2' for x86 targets.
	  (this seems to give problems -> puzzle.scm/12k nursery/benchmode).
	- Renamed `bytevector's to `byte-vector'.
	- Optional regex package uses `gnuregex.h' on
          Cygwin.
	- `file-read' and `file-write' accept bytevectors.
	  [Thanks to Dale Jordan]

14/12/01 (build 976):
	- Comment syntax `#; <exp>' and `char-name'.

13/12/01 (build 976):
	- Fixed bug that caused `foreign-callback-wrapper' not to
	  work with debug-info.
	- The `q' debugger command now terminates the program without
	  doing any cleanups.
	- On Cygwin, `unistd' uses `_POSIX_PIPE_BUF'.
	  [Thanks to Dale Jordan]

12/12/01 (build 976):
	- Removed procedure-check in manifest lambda calls.
	- Fixed bogus length-limit in syntax checking procedure.

11/12/01 (build 975):
	- Fixed huge bug in foreign callback handling.
	- Random name generation in the compiler is more reliable.
	- `foreign-[callback-]lambda*' accept multiple code strings.
	- Added foreign type converters.

09/12/01 (build 973):
	- Foreign lambdas that don't allocate memory for results
	  generate better code.
	- No limit on returned c-string's in foreign lambdas.
	- `report.scm' wasn't distributed.
	- Fixed bug in `FAQ.html'.

06/12/01 (build 972):
	- Runtime exposes argc/argv passed to `main()'.

05/12/01 (build 972):
	- `-:b' now only breaks once in multi-unit programs.

04/12/01 (build 972):
	- Removed `#include <MacHeaders.h>' from `chicken.h'.
	- Added `pretty-print-width'.
	- Fixed some things in `srfi-18.scm'.
	- `define-syntax' without `-hygienic' signals error.

02/12/01 (build 971):
	- Removed `structures.scm'.
	- Assignments to unused toplevel bindings are removed in
  	  block-mode, if assigned value is side-effect free.
	- In block-mode, global variables can be referenced/assigned
	  faster.
	- Runtime options may be combined.
	- Threads are printed as `#<thread: NAME>'.

29/11/01 (build 970):
	- Fixed some BSD-incompatible things in `unistd.scm'.
	- `C_trace' prints qualified names.
	- Heavy allocation of vector-like objects is more reliable.
	- Fixed bug in `##sys#error-hook': runtime error called
	  `##sys#signal' instead of `##sys#signal-hook'.

28/11/01 (build 969):
	- `regex.scm' includes `gnuregex.h' on BSD.
	- Added some Win32 examples.
	- Fixed `C_dllexportdecl' macro in `chicken.h' (must be
	  `__stdcall' in non-DLL client.

27/11/01 (build 969):
	- Added `report.scm'.
	- `csi' autoloads `report.scm' and `describe.scm'.
	- The `unistd' unit sets the user-interrupt handler, now.
	- `describe' show structure slots.
	- `csc' append link-options after .o files.
	- Macroexpansions use internal versions of `apply' and `values'.

25/11/01 (build 969):
	- `csc' takes care not zo overwrite source-file when compiling
	  scripts.

24/11/01 (build 969):
	- Fixed bug in `structures.scm'.

23/11/01 (build 969):
	- Fixed bug in module parsing: empty `begin' clause triggered
	  error.

22/11/01 (build 967):
	- `list?' rewrites to inline-call.

21/11/01 (build 962):
	- `make-vector' is inlined when the first arg is constant.
	- Fixed bug in `library': primordial thread creation
	  referenced unbound (but unchecked) variable.
	- Disabled bound-checks in all libraries.
	- Compiler enabled bound-checks in situations where it
	  shouldn't.
	- Fixed bug in `support.scm' that generated wrong expression
	  tree for `##core#bind'.

20/11/01 (build 960):
	- Removed `conditions.scm' from `Makefile.am'.
	- Added `-no-unused' option to `formatprofile'.
	- `first' ... `fourth' are inlinable extended bindings.
	- Tweaked compiler-performance.
	- A source file beginning with `#|' triggered error.
	- Added some unsafety declarations to the compiler
	  sources.

19/11/01 (build 960):
	- Added SRFI-12 exception system (and changed some
	  things in TinyCLOS).
	- Removed `condition.scm' again.
	- Fixed bug in error handling (interrupts were disabled
	  after error-exception).
	- The debugger is now part of the unsafe libs, too.

18/11/01 (build 960):
	- Disabled `C_INLINE_RETRIEVE' again.
	- Finalizers are forced before exiting.
	- Added definition of `set-finalizer!' to `modules'.
	- Added some fixes for FreeBSD platform
	  [Thanks to Bakul Shah!]

15/11/01 (build 960):
	- Fixed bug in custom `C_setenv' in `unistd.scm'.
	- Added missing prototype for `C_evict_block'.
	- `srfi-18.scm': uses `##sys#signal-hook' in some cases.
	- Added finalization.

14/11/01 (build 958):
	- Added some missing symbols to module-def for `lolevel'.
	- `chicken.h' was missing in the distribution.

13/11/01 (build 957):
	- Added membership-test-optimization for `memv'.
	- Renamed `..permanent...' stuff in `lolevel' to
	  `...static...'.
	- Removed `release-static-bytevector'.
	- `copy', `evict`, `evicted?' and `release'.
	- Garbage collector handles arbitrary static objects.
	- `chicken.h' includes `alloca.h', if available.

12/11/01 (build 955):
	- Added `#sys#user-interrupt-hook'.
	- Compiler `verbose' messages flush output.
	- Added `subclass?'.
	- Added `case-sensitivity'.
	- Fixed bug in macroexpansion logic.
	- Added `conditions.scm'.
	- Added SRFI-7 support.

09/11/01 (build 954):
	- The code in `unistd.scm' should compile now on plain UNIX
	  systems.

08/11/01 (build 952):
	- Willy Heinemann fixed a bug in `substring-index'.
	- Added version info to the manual.
	- Added `substring-index-ci'.

07/11/01 (build 952):
	- Cleaned up error/warning-processing (added central
	  hook).
	- Fixed bug in compiler: "(let () ...)" wasn't properly converted
	  to node.

06/11/01 (build 952):
	- Fixed bug in `manual.html'.
	- Added `bound-to-procedure' declaration.
	- Added `match-error-control'. Unsafe compilation sets
 	  error control to `#:unspecified'.

03/11/01 (build 950):
	- Move FFI definitions into `chicken-ffi' module.
	- Moved `##match#error' into `library' unit.
	- Added another syntax for `define-external'.
	- `make-input-port' handles peeking automatically if no
	  peek-argument is provided.
	- Added debugger commands `variables' and `procedures'.
	- Certain toplevel definitions were not properly registered
	  as debug info.

31/10/01 (build 949):
	- Renamed internal definitions in `match' unit.
	- Variable and procedure retrieval is done via macros under GCC.
	- Added some unsafe runtime routines.

28/10/01 (build 948):
	- Error-handler in debugged applications prints qualifiers.
	- `##sys#break-on-startup' wasn't initialized in runtime.
	- Compiler generated sometimes argument-count checks that weren't
	  needed.
	- Added optimized closure generation for some constants in `eval'.

27/10/01 (build 948):
	- Added `-:b' runtime option.
	- Removed `env' parameter from `CHICKEN_parse_command_line'.
	  `current-environment' uses `environ' (as it should be).

26/10/01 (build 946):
	- Compiler messages are not prefixed withg #\; in verbose mode.
	- `csi' prefixes banner with #\;.
	- Added profiler.
	- Removed benchmarks from distribution.
	- `time' works with multiple values.

24/10/01 (build 946):
	- The interpreter and the compiler display information
	  about certain command line options (the compiler does
	  with `-verbose').
	- `csc' invokes `chicken' with `-quiet' by default
	  (removed `-q' option).

22/10/01 (build 946):
	- `-benchmark-mode' implies `-block'.
	- Renamed `-O9' to `-Ob'.
	- Changed debug-info handling (debug-info with multiple
	  modules didn't work properly).	
	- `csc' quotes arguments correctly.

19/10/01 (build 946):
	- RETURN also repeats `continue' debugging command.
	- Fixed bug in `csc'. It also shows a message if a shell
	  command fails.
	- Fixed bug in string-output-port routine that didn't check
	  wether the already enlarged buffer was really large enough.

18/10/01 (build 946):
	- String output ports grow up to maximum.
	- Added debug-level 4.
	- Fixed collision of SRFI-1's `break' and
	  the debugger's `break'.

16/10/01 (build 946):
	- Improved method-dispatching performance.
	- Removed `match-expression' from library.
	- `print*' does now benefit from `no-fancy-ports' also.

15/10/01 (build 946):
	- During build, `csi' also uses `c_defaults.h' (to access
	  CHICKEN_HOME for `highlevel-macros.scm').
	- `string-split-fields' (`regex' unit) takes keywords instead
	  of symbols.

12/10/01 (build 946):
	- Single stepping works in toplevel frame.	
	- Single stepping break shows frame only if different to
	  previous.
	- Removed `zap-strings' declaration and machinery.

10/10/01 (build 946):
	- Changed name of anonymous procs in debugger-backtrace.
	- Compiler gives warning when non-winding-callcc + emit-debug-info.
	- Better backtrace in debugger (debug-level 3).
	- `csc' aborts when unsafe + debug-level >=2.
	- Added single stepping.
	- Added `print*'.

09/10/01 (build 945):
	- `void' is not inlined anymore.
	- Parameters are thread-local, now.
	- Added more primitive classes.

08/10/01 (build 945):
	- Fixed bug in `library' unit: used internal procedure
	  defined in `eval'.

06/10/01 (build 945):
	- Renamed `o/..' flags in `unistd' unit to `open/...'.

04/10/01 (build 945):
	- Added `srfi-1' module (forgot it!).

03/10/01 (build 945):
	- Fixed bug related to expansions into forms with lexically 
	  shadowed identifiers (eval). Cleaned up macroexpansion
	  machinery slightly.

01/10/01 (build 945):
	- Added `debugger' module.
	- Added more debugger commands.
	- Changed csc's `-y' option to `-H'.
	- Toplevel assignment to name that is also a macro gives warning.
	  [Thanks to Brian Denheyer]

30/09/01 (build 945):
	- Added more stuff to the debugger.
	- `thread-suspend!' nuked continuation, if a thread
	  other than the current one was suspended.
	- Fixed bug in code for 2-argument numeric operators
	  (invalid argument type would slip through and give
	  bogus results instead of error message).
	- More debugger stuff.
	- Removed pathetic debugging stuff from evaluator.

29/09/01 (build 945):
	- `csc' aborts if `unistd' is not available.
	- `(void)' is rewritten to `(##core#undefined)'.

28/09/01 (build 945):
	- Compiler handles pbytevector literals.
	- Printer/pretty-printer doesn't signal error when
	  unprintable objects are encountered.
	- Moved `describe' into own source file.
	- The REPL restores error- and reset-handlers when
	  exited via call/cc.
	- Basic debugger stuff.

27/09/01 (build 945):
	- Changed `-no-debug' option to `-no-trace'.
	- Added `-debug-level' and `-emit-debug-info' options.

25/09/01 (build 945):
	- Added binary distribution for Windows.
	- Fixed two bugs in `makefile.vc'.
	  [Thanks to Ron Kneusel]

24/09/01 (build 945):
	- Changed method-cache layout slightly.
	- Fixed problem with RPM: i686 architecture was selected
	  (but RPM should work with any i386 and above).
	  [Thanks to Franklin Chen]

21/09/01 (build 944):
	- Fixed bug in SRFI-10 implementation.
	- Fixed bug in internal vector allocation routine, that
	  caused segfault if heap-size was exceeded.
	  [Thanks to Benedikt Rosenau (who else)]

20/09/01 (build 943):
	- Fixed bug in `pattern->regex'.
	- Fixed bug in error-handling: sometimes no stacktrace was
	  generated.
	  [Thanks to Oskar Schirmer]
	- Added manual section on data representation.
	- Changed resizing of output-buffer in output-string stuff.
	- Added `import-excluding' module clause.
	- Fixed bug in `csc' which uses wrongly named libraries
          when optimizations were enabled.
	  [Thanks to Benedikt (again)]

19/09/01 (build 943):
	- Added `keyword->string' and `string->keyword'.
	- Feature identifiers are keywords, now.
	- Added classes `environment', `hash-table' and `queue'.
	- Added manpages for `extend-csi', `chicken-config' and `csc'.

18/09/01 (build 943):
	- Fixed bug in `csi.scm': file-port resolving for
	  transcript port was wrong.
	  [Thanks again to Benedikt Rosenau]

17/09/01 (build 943):
	- Multiply `unit' declarations are handled differently
	  (subsequent defs are ignored).
	- Fixed stupid bug in `modules': error condition resulted
	  in endless loop.

13/09/01 (build 943):
	- Swapped order of variable/class pairs in `define-method'.
	- Changed custom port operation specifiers to keywords.
	- Fixed bug in `modules' (didn't check wether `CHICKEN_HOME'
	  is set before using it as a prefix for loading 
	  `.chicken-interfaces').
	  [Thanks to Benedikt Rosenau]

12/09/01 (build 942):
	- Not all slots of `##sys#standard-error' were properly initialized.

11/09/01 (build 942):
	- Redefinition of standard/extended bindings triggers
	  warning.
	- Fixed bug in analysis pass. Local bindings were assumed
	  known even when reassigned in inner closures.
	  [Thanks to Benedikt Rosenau]

10/09/01 (build 942):
	- Added some checks to `compute-method-more-specific?'
	  (taken from TinyCLOS 1.7).
	- Added name slot to generics (makes print and describe
	  more useful).
	- Under Cygwin, `malloc()' instead of `valloc()' is used
	  in `lolevel'.
	- Added primitive classes `<inexact>', `<exact>' and
	  `<void>'.
	- Implemented method caching, which seems to give
	  substantial speedups.

09/09/01 (build 940):
	- `compute-getter-and-setter' returns 2 values instead
	  of cons.
	- Procedures print as `#<procedure>'.
	- Added `name' slot to classes and `class-name'.
	- `describe' of instances is more useful.

08/09/01 (build 940):
	- Added `<null>' class.
	- Documented that size-options also accept
	  lowercase suffixes.
	- Fixed bugs in `mutex-unlock!' and `condition-variable-
	  signal!'.
	- `csi.scm' is now compiled with interrupts disabled.
	- `symbol->string' doesn't have to copy the string.
	- Fixed serious problems in threading library.
	  [Thanks to Sven Hartrumpf]

06/09/01 (build 940):
	- Added `make-executable-bytevector' and
	  `executable-bytevector->procedure'.
	- Optimized slot-references of class objects.

05/09/01 (build 940):
	- Added primitive classes `<end-of-file>', `<input-port>'
	  and `<output-port>'.
	- Added `instance?'.
	- Added generic `describe-object'.
	- `describe' accepts an optional port argument.
	- Added references to `modules' and `tinyclos' units to
	  `Makefile.d*'.
	- `define-module' allows `<module>' as alternative to
	  `(<module>)' in import clauses.
	- The feature identifier `compiling' is registered after
	  the compiler loads extensions.

04/09/01 (build 940):
	- Renamed `slot-ref' and `slot-set!' to `block-ref'
	  and `block-set!'.
	- `get-keyword' wasn't properly exported from `chicken-lolevel'.
	- Added `tinyclos' library unit and support macros.
	- Fixed bug in interpreter's `,d' command.

03/09/01 (build 939):
	- Fixed bug in `Makefile.am' (DESTDIR macro wasn't
	  respected in certain installation target).
	- Added RPM to distribution.
	- Fixed omissions in the non-UNIX makefiles.
	- The `,b' interpreter command prints qualified names.
	- Renamed `keyword-argument' to `get-keyword'.
	- Fixed `examples/makefile' 
	  [Thanks to Benedikt Rosenau]

02/09/01 (build 939):
	- Added `number-of-slots' and `get-line-number'.

31/08/01 (build 939):
	- `system' returns a more sensible status code.
	- Several fixes related to missing exported symbols.
	- `process-wait' returns a third value.
	- Documented `,x1'.
	- Added `begin' clause to `define-module'.
	- Added keywords (`keyword?', `keyword-argument').
	  All procedures that accept special symbol arguments
	  use keywords now.

30/08/01 (build 938):
	- Fixed numerous missing/wrong export definitions.
	- The user-read hook in the `srfi-4' unit wasn't properly
	  working under the module system.
	- Qualified record-names didn't generate qualified
	  accessor ifentifiers.
	- Renamed some modules.
	- Added `slot-ref' and `slot-set!'.
	- Added support for an interface repository.
	- Made `modules.scm' a separate library unit.

29/08/01 (build 938):
	- `reset' in the REPL didn't enable qualified syntax.
	- Added `-E' and `-U' options to `csc'.
	- Fixed bug in import handling in `modules.scm'.
	- Fixed bug in `configure.in' (wrong filenames).
	- If `srfi-13.scm' is loaded into the interpreter, then
	  it loads `srfi-14.scm` automatically.
	- Stacktraces show symbol qualifiers.
	- Fixed bug in `makefile.dj'.
	- Added `permanent-bytevector->pointer'.

27/08/01 (build 933):
	- Lots of changes/fixes in the module system.
	- `reset' in REPL disables default-namespace-prefix.
	- Added `define-library-interface' and 
	  `define-library-implementation' macros.
	- The compiler accepts bytevector and structure literals.
	- Added `csc' to the distribution.
	- The system should now build under 8.3 filenames
	  (raw DOS).
	- Added `define-record-printer' macro.
	- Moved module-macros into `moremacros.scm'.

26/08/01 (build 926):
	- Compiler-errors and -warnings show offending source file.
	- Added `parameters.scm'.
	- Implemented preliminary module system.
	- Added `bytevector?'.

24/08/01 (build 926):
	- Added `macroexpand-1' and `,x1' interpreter command.
	- `string'/`list->string' didn't check argument types
	  correctly.

20/08/01 (build 926):
	- Fixed `makefile.guilibs'.
	- Added makefile for Mingw32.
	  [Thanks to Mike Thomas]

19/08/01 (build 925):
	- `chicken-config' accepts options for generating Win32
	  GUI applications on Windows (Cygwin/Mingw32).
	- Code generation of callback stubs and headers has been
	  cleaned up.
	- Added `makefile.guilibs'.

18/08/01 (build 925):
	- Fixed bug related to `foreign-callback-lambda*'.
	- Win32-GUI libraries are built under Cygwin/Mingw32
	  (these are identical to the normal libs on UNIX
	  systems).
	- Added `extend-csi' script.

17/08/01 (build 925):
	- Removed check for `strings.h' in `configure.in'.
	- Fixed bug in code-generation of `foreign-lambda*'.
	- Added `foreign-callback-lambda*'.
	- `define-external' accepts optional qualifiers.	
	- `foreign-callback-wrapper' has qualifers argument.
	- Added some changes for better Mingw32 integration.
	  [Thanks to Mike Thomas]

13/08/01 (build 924):
	- Moved `void' and `end-of-file' into library unit.

12/08/01 (build 924):
	- Error recovery is better when compiling scripts with 
 	  invalid header lines.
	- The feature identifier `srfi-22' is correctly registered
	  in interpreted and compiled scripts.
	- The Scheme sources are installed in addition to the
	  compiled C files of the Chicken system.

10/08/01 (build 923):
	- Support for SRFI-22.

08/08/01 (build 921):
	- Fixed problem in configuration script.
	  [Thanks to Kirill Lisovsky]

06/08/01 (build 921):
	- Invalid options made the compiler ignore all following
	  switches.
	- The interpreter uses the `match' unit by default.

05/08/01 (build 921):
	- `##sys#make-structure' is an inline call, now.
	- Added unsafe libraries.

03/08/01 (build 920):
	- Internal CPU time routine uses `clock()' on Cygwin.

01/08/01 (build 918):
	- Added `unregister-feature!'.
	- Compiler/interpreter options `-feature' and `-no-feature'.
	- Optimization levels >=1 enable leaf routine optimization.

31/07/01 (build 917):
	- `current-environment' returns an a-list.
	- The `-script' option for the interpreter registers
	  the feature-identifier `script'.

24/07/01 (build 917):
	- SRFI-1's `car+cdr' is slightly more efficient.

23/07/01 (build 917):
	- Fixed bug in `set-signal-handler!'.

22/07/01 (build 916):
	- Added `pipe/buf'.
	- Added bytevector routines to `lolevel'.
	- Fixed two bugs in the code-generator related to
	  foreign-lambdas with explicit C code bodies.
	- Changed handling of `usual-integrations' slightly.
	- The `,d' and `,p' commands of the interpreter
	  didn't handle `(& [N])' correctly.
	- Allocation primitives check for max. size of blocks.
	- GC ignores permanent bytevectors.

21/07/01 (build 914):
	- C sources are installed for distribution.
	- `-write-dependencies' and `-dependency-output' options
	  were not correctly recognized.
	- Fixed bug in `c-backend.scm' (#include directive
	  was wrong)
	  [Thanks to Ronald Schroeder]

20/07/01 (build 913):
	- Added `autoload' and `compress'.

19/07/01 (build 912):
	- `trace' and `untrace' are not anymore defined with
	  the highlevel macro system in compiled files.
	- The implementation of the `trace' macro in the highlevel-
	  macro system was buggy.

17/07/01 (build 912):
	- `cdr' wasn't inlined properly in unsafe mode.
	- Leaf routine optimization applies to allocating
	  procedures, as long as they are not recursive.
	- Added extended procedure stuff.
	- `csi' additionally uses units `srfi-4' and `lolevel' by default.
	- `time' measures CPU time.
	- Added `file-select' and `nth-value'.
	- `process-fork' called with a thunk calls `_exit'
	  after execution of that thunk.
	- Added `dump' to the interpreter.

16/07/01 (build 911):
	- 'pretty-print' handles qualified symbols, now.
	- '##core#callunit' is ingored by 'eval'.
	- Fixed bug in 'seconds->time'/'time->seconds'.

15/07/01 (build 911):
	- Changed handling of 'current-milliseconds'.

14/07/01 (build 911):
	- 'lolevel' unit wasn't linked on DJGPP/VC++ builds.
	- Fixed bug in deserialization of structures.
	- Bytevectors are 8-byte aligned.
	- 'string->number' handles exactness prefixes.

13/07/01 (build 910):
	- Fixed bug in low-level 'u32vector-set!' routine.
	- Fixed bug in 'string->number'.
	- Changed reading of qualified names.
	- Numeric prefixes "#<radix>#<exactness>" and "#<exactness>#<radix>".
	- Numeric literals of the form "-.<digit>..." and ".<digit>..."
	  were not correctly recognized.
	  [thanks to Brian Denheyer]

12/07/01 (build 909):
	- "hash" handles foreign pointers better.
	- Fixed bug in code-generator: callback stubs with multiple arguments
	  were wrong.

11/07/01 (build 909):
	- Forgot one use of 'C_extern' in 'c-backend.scm'.
	- 'move-memory!' handles bytevectors.
	- '[usf][0-9]+vector->bytevector' can be inlined by the compiler.
	- 'clear-hash-table!' didn't reset count.
	- Fixed bug in 'deserialize': closures weren't completely read back.
	- Added 'printf' directive '~!'.

10/07/01 (build 908):
	- FAQ is back again (cleaned up).
	- 'null-list?' and 'not-pair?' have been implemented
	  natively.
	- 'print' with character- or string-constants as arguments
	  is rewritten to more primitive forms (with '-no-fancy-ports').

08/07/01 (build 905):
	- Applied namespace hack to all internal names.
	- Macros expand now into internal copy of 'dynamic-wind'.
	- 'define-entry-point' did bogus check for numeric id (but 
	  any expression is allowed).

07/07/01 (build 904):
	- Changed 'chicken.h' and 'c-backend.scm' to make C output
	  suitable for C++ compilation.

06/07/01 (build 899):
	- Added namespace thing again, in a slightly more
	  useful form.

05/07/01 (build 897):
	- Removed "INTERNALS".
	- Removed simple namespace hack.
	- "%%byte" and "%%setbyte" weren't properly inlined.
	- Replaced "strncmp" in symbol lookup with "C_memcmp".

03/07/01 (build 896):
	- Evaluated code has no direct limit on the number of parameters
	  to a function, but 'apply' still accepts no more than 126.
	- Fixed bug in code-generator: tail recursive optimized leaf routines
	  could loop endlessly if interrupt-checks were enabled.
	- When CHICKEN_HOME wasn't set, the compiler and the interpreter
	  would bomb.
	  [Thanks to Mike Thomas]

02/07/01 (build 895):
	- 'foreign-callback-lambda' wasn't properly handled with
	  hygienic macros.
	- Added 'foreign-callback-wrapper' and 'define-external'.
	- Added 'clear-hash-table!'.
	- Redefining '%%interrupt-hook' didn't work correctly.
	- Renamed "process-kill" to "process-signal".

01/07/01 (build 894):
	- Added 'null-pointer?'.

28/06/01 (build 893):
	- Added declarations 'no-winding-callcc', 'fixnum-arithmetic'
  	  and 'disable-interrupts'.
	- Added command-line options '-no-fancy-ports' and
	  '-no-winding-callcc'.
	- Renamed 'exit0' to '_exit'.
	- Inline-heuristics have been changed slightly.	  
	- 'makefile.gcc' was buggy.
	  [Thanks to Franklin Chen]

26/06/01 (build 893):
	- Support for callbacks (Baker said 'no', I say 'yes' ;-).

24/06/01 (build 891):
	- 'pretty-print' can handle some new object types.

22/06/01 (build 890):
	- 'csi' honors the environment variable 'CSI_OPTIONS'.
	- All pathnames passed via environment variables or command
	  line options may optionally end with the pathname directory
	  separator character.
	- Added 'read-file'.

21/06/01 (build 887):
	- Cleaned up 'manual.html'. Improved section on standard compliance.
	- Moved 'force' into 'library' unit.
	- 'delay'/'force' can handle multiple values, now.
	- Renamed 'init.scm' to '~/.csirc'.

20/06/01 (build 883):
	- 'srfi-13.scm' and 'srfi-14.scm' can now also be loaded in the interpreter
	  in combination with the highlevel macro system.
	- Added new optimization: rest-parameters are consed at call-site, if possible.
	- Added 'print'.
	- Moved 'let-string-start+end' into 'moremacros.scm'.

19/06/01 (build 882):
	- The compiler can now handle multiple '-debug' options.
	- Reader errors and warnings give line-number, if available.
	- Fixed bug in compiler: rest-arguments were optimized to vectors
	  even if standard bindings were not available.

18/06/01 (build 881):
	- Cleaned up compiler handling of 'let' nodes.
	- Fixed bug in multival/cont. stuff that appeared only
	  in optimized code.

17/06/01 (build 881):
	- Added time functions to 'unistd'.
	- 'glob' leaves directory in each pathname.

16/06/01 (build 881):
	- Fixed bug in 'compose'.

15/06/01 (build 880):
	- Added an additional reader hook.

14/06/01 (build 875):
	- Fixed bug related to script compilation.
	- Added 'no-fancy-ports' declaration.
	- Added syntax-check to 'define-entry-point'.
	- Fixed syntax check in 'case-lambda' macro definition.
	- Changed 'chicken-config' slightly and added '-emb-libs' option.
	- Fixed line-number handling of forms, which was not working
	  properly.
	- Fixed nasty little bug related to multi-value continuation
	  calls.
	  [Thanks to David Rush]

13/06/01 (build 872):
	- Fixed bug in compiler (malformed expression error wasn't showing
	  line number).
	- Leaf routine optimization is not enabled by default - there seem
	  to be obscure problems related to nursery size.
	- Added '-optimize-leaf-routines' option.
	- Changed script comment syntax to single line comment.
	- 'csi' doesn't use srfi-18 unit anymore.

12/06/01 (build 868):
	- Pointers are printed with address, now.
	- Added 'null-pointer', 'address->pointer', 'pointer->address'
	  and 'pointer?'.
	- Merged 'close-input-file' and 'close-output-file' into
	  'close-file'.
	- Added 'file-open', 'file-read' and 'file-write'.
	- Moved 'file-position' and 'set-file-position!' into unistd
	  unit and added some functionality.
	- Added memory mapped I/O procedures to unistd unit.
	- 'move-memory!' handles mmapped files.
	- Renamed 'truncate-file' to 'file-truncate'.
	- Used more sensible names for lolevel I/O routines.
	- Reorganized batch-driver a little. Without '-optimize', we
	  stop after 3 optimization iterations.

10/06/01 (build 867):
	- Fixed bug in 'equal?' introduced yesterday (grumble).

09/06/01 (build 867):
	- Documented 'command-line-arguments' in parameters section.
	- Removed 'scheme-script'. '-script' and SRFI-22 will be enough.
	- '%%check-structure' is done inline, now.
	- Moved srfi-18 unit into libstuffed-chicken.a.
	- Fixed bug in 'equal?' (symbols are not recursively traversed).
	- Fixed bug in 'cscbench'. 
	  [Thanks to Doug Quale]

08/06/01 (build 865):
	- Renamed 'threads' unit to 'srfi-18'.
	- Added options '-fixnum-arithmetic', '-benchmark-mode' and
	  '-disable-interrupts'.
	- Added '-script' option to 'csi'.

07/06/01 (build 864):
	- Added new optimization pass: leaf routine optimization.

06/06/01 (build 862):
	- Options in CHICKEN_OPTIONS were falsely put onto beginning
	  of option-list.

05/06/01 (build 861):
	- '-expand-only' wasn't properly recognized.

04/06/01 (build 859):
	- Fixed bug in ':optional' (bogus syntax check).
	- Fixed bug in eval-version of 'define-constant'.

03/06/01 (build 858):
	- Fixed bug in handling of define-constant with a value of #f.

02/06/01 (build 856):
	- 'define-id-macro'.
	- 'csi' doesn't use 'format' unit by default.

01/06/01 (build 854):
	- Fixed bug in 'define-constant'.
	- Syntax errors in most macro forms are a little bit more helpful
	  (offending form is printed in error message).
	- Added 'let-macro' and 'let-id-macro'.

30/05/01 (build 850):
	- Did some cleaning up in the compiler.
	- Added more syntax checks to macro definitions.

29/05/01 (build 848):
	- Fixed bug in Windows' version of 'main()'.
	- Fixed bug in 'hash' (returned negative results).
	- Added 'lolevel' unit.

28/05/01 (build 846):
	- Second argument to 'process-execute' is optional.
	- Changed default heap-size to 8MB.

27/05/01 (build 846):
	- 'close-input-file', 'close-output-file'.
	- Fixed bug in file-info: on DJGPP, S_IFLNK and S_IFSOCK are not
	  available.
	- The default error handler exits with code 0x70.
	- 'current-environment', 'setenv', 'unsetenv'.
	- 'process-execute' uses 'execvp' instead of 'execv', now.

26/05/01 (build 844):
	- Runtime option '-:w' and foundations for general weak pair support.
	- 'define-foreign-parameter' was lost temporarily.
	- Unused and unbound symbols are now fully recovered by GC.
	- 'create-pipe'.

25/05/01 (build 844):
	- '-case-sensitive' option sets 'case-sensitive' feature identifier.
	- EOF exits REPL.
	- GC of unbound unreferenced symbols from the symbol table seems to
	  work ok.

23/05/01 (build 842):
	- Options 'inline-passes' and 'inline-limit' weren't recognized.
	- Added ',ts' command to csi.

22/05/01 (build 842):
	- Cleaned handling of file-ports slightly. File operations work
	  now also on csi's transcript port.
	- The README is now added in MSDOS format as 'README.txt' to the
	  distribution.
	- Revamped interrupt handling.

21/05/01 (build 839):
	- Added 'zap-strings' declaration.
	- Changed SIGINT handling in csi a bit.
	- Added 'critical-section', 'enable-interrupts', 'disable-interrupts'
	  'set-signal-mask!' and 'move-memory!'.
	- The interpreter 'csi' doesn't use the 'match' and 'srfi-4' units anymore.

20/05/01 (build 838):
	- Renamed 'duplicate-file-descriptor' to 'duplicate-fileno' and
	  'file-descriptor' to 'port->fileno'.
	- Added 'foreign-lambda*'.

19/05/01 (build 836):
	- Improved 'compose'.
	- Added 'acconfig.h' to please autoheader.
	- Certain non-standard macros were not correctly handled in
	  combination with the highlevel-macro system.
	- Fixed bug in 'configure.in'.
	- Fixed compiler bug: '%%fudge' was constant folded.
	- Symbols of size 0 are written as '||', when printed readably.
	- Fixed minor bug in 'define-constant'.

14/05/01 (build 836):
	- Added 'file-[read|write|execute]-access?', 'set-user-id!'
	  'file-permissions', 'fifo?' and 'file-owner' to 'unistd'.

13/05/01 (build 835):
	- 'string=?' and 'string-ci=?' are implemented natively.
	- Added 'terminal-port?' and 'terminal-name'.
	- Some autoconf scripts didn't have proper execute permissions.

12/05/01 (build 832):
	- Added 'define-foreign-parameter'.
	- Man-pages for 'chicken', 'csi' and 'scheme-script' were added.

11/05/01 (build 831):
	- Fixed bug related to '-heap-size' compiler option: symbol table
	  contained dead memory after changing to a new heap.
	- Ordered compiler- and interpreter-options alphabetically in the
	  manual.

10/05/01 (build 830):
	- 'extras.scm' contains all included files now verbatim.
	- 'hash' can handle circular structures, now.

07/05/01 (build 830):
	- 'regex' and 'unistd' are only build if the GNU regex functions
	  are available.
	- 'csi' sets signal-handler if 'unistd' is used, only.

06/05/01 (build 828):
	- Foldable constant expressions don't trigger warning message.
	- Renamed 'file-locked' to 'file-test-lock'.
	- Added 'create-fifo', 'user-information',
	  'set-alarm!', 'exit0' and 'set-buffering-mode!'.
	- Switched to BSD style license.
	- Removed GNU regex package from distribution. On DJGPP and MSVC++
	  we build the libraries/interpreter without the 'regex' and 'unistd' units.
	- 'runtime.c' uses 'gcvt' only if configuration finds it.
	  [Thanks to Andreas Gustafsson]

04/05/01 (build 827):
	- Removed some stuff from 'unistd'. This has to go into a separate
	  'posix' unit someday.

03/05/01 (build 826):
	- 'truncate-file', 'set-signal-handler!'.
	- 'char-ready?' is slightly more useful on UNIX.
	- Added record locking to 'unistd'.

01/05/01 (build 825):
	- 'fake apply' hack doesn't work with optimizations enabled.
	  We use inline-assembly instead.
	- 'change-file-mode' works in VC++ (slightly).
	- Fixed some problems with VC++.
	- Fixed bug in 'glob'.
	- Added file-descriptor stuff to 'unistd'.
	- Port-names are shown by the printer.

30/04/01 (build 819):
	- Argument count check in certain evaluated procedures was omitted.

29/04/01 (build 819):
	- Added optional parameter to 'string-split'.
	- On some machines (x86) the parameter limit can be up to 1024.

26/04/01 (build 812):
	- Renamed 'scripting' unit to 'unistd'.
	- Moved 'grep' and 'pattern->regexp' into 'regex' unit.
	- Added character constant '#\backspace'.
	- Changed internal symbol->string/string->symbol conversions slightly.
	- Fixed bug in sharp-comma reader and moved it into 'eval' unit.
	- Added support for the simple namespace hack.
	- In case-sensitive mode uppercase characters in symbols are printed
	  without escape character.
	  [Suggested by Kirill Lisovsky]

19/04/01 (build 811):
	- Added 'system-information'.
	- Fixed bug in optimization of '-'/'/' in cases where literal the constant
          '0'/'1' was among the arguments.

18/04/01 (build 810):
	- 'call-with-input-file' and 'call-with-output-file' would accept
	  only a single return value.
	- Added 'call-with-{in,out}put-pipe' and 'with-{in,out]put-{to,from]-pipe'.
	- The compiler accepts '-' as input filename.

16/04/01 (build 809):
	- Renamed 'make-directory' to 'create-directory' and 
          'make-temporary-filename' to 'create-temporary-file'.
	- The interpreter option '-eval' and the compiler options
	  '-prelude' and '-postlude' accept multiple expressions.

15/04/01 (build 807):
	- Readable output of strings produced '\r' instead of '\n' for
	  the newline character.
	- Added '#<<' quoting syntax.

14/04/01 (build 805):
	- The '-case-sensitive' option wasn't accepted by the compiler.
	- Added process operations to the 'scripting' unit.
	- Fixed bug in 'reset'.

13/04/01 (build 804):
	- 'port-position' works on string- and file-ports.
	- Added 'set-port-position!'.

12/04/01 (build 804):
	- Commented out '-mflat' in 'configure.in'.
	- Added 'errno'.
	- Added 'scripting' unit.

10/04/01 (build 802):
	- 'describe' understands hash-tables.
	- If available (and we have a GNU compiler), then builtins
	  are used for 'setjmp()' and 'longjmp()'.

09/04/01 (build 801):
	- The reader issues warnings if number literals exceed implementation
          limits.

07/04/01 (build 800):
	- Fixed word-size dependency in 'support.scm'.

06/04/01 (build 800):
	- Fixed bug in 'string-split'.

05/04/01 (build 798):
	- Compiler option '-usual-integrations' wasn't properly
	  recognized.
	- syntax-case uses 'gensym' for temporaries instead of '%%make-symbol'.
	- Fixed some inconsistencies in 'moremacros.scm'.
	- ':optional' and 'let-optionals*' are available with syntax-case, now.

03/04/01 (build 797):
	- Fixed some word-size dependencies.

02/04/01 (build 796):
	- Added some macros to the manual that were omitted.
	- Fixed bug in 'modulo'. Large inexact values triggered
	  error.
	- Found bug in x86 inline assembly code for fixnum arithmetic
	  (removed all inline-assembly stuff).

31/03/01 (build 793):
	- Changed '-benchmark-mode' option to '-usual-integrations'.
	- 'string->number' accepted C hex-notation. Not anymore.
	- 'display' always printed symbols readable (even if containing
	  special characters).
	- Initialization of the runtime system is a little bit more intelligent.
	  One can call 'CHICKEN_invoke' without doing anything fancy
	  before.

29/03/01 (build 790):
	- Internal ('default') declarations are added before
	  any expressions passed to the compiler via '-prelude'.
	- Added 'read-string'.
	- Some extended bindings are inlined.
	- Added 'define-entry-point'.
	- Added the 'implicit-exit-handler' parameter.
	- Added the 'user-read-pass' compiler parameter.
	- The third parameter to 'define-foreign-variable'
	  is optional, now.
	- Changed two places in 'runtime.c' to avoid
	  use of 'gcvt' under Mac OS X.
	  [Thanks to Bruce Hoult]

26/03/01 (build 788):
	- Added 'scheme-script'.
	- The compiler handles the '#! ... !#' header.

25/03/01 (build 786):
	- Fixed bug in 'cscbench': it always used x86-specific options on
	  non-windows systems.

25/03/01 (build 785):
	- Changed definition of '#!' comment syntax.
	- Fixed bug in c-backend: toplevel initialization didn't
	  occur when demandcheck failed.

24/03/01 (build 784):
	- 'CHICKEN_initialize' uses default values if size-parameters are
	  zero.
	- Added 'CHICKEN_invoke' and 'C_parameter' type.

23/03/01 (build 784):
	- The 'usual-integrations' declaration combines 'standard-bindings'
	  and 'extended-bindings'.
	- Added basic support for entry points and entry-point dispatching.
	- Fixed bug in symbol interning routine: symbols created
	  during toplevel execution screwed up memory manager.

20/03/01 (build 779):
	- Added compiler option '-extend' and user passes.
	- Removed conditional optimization that was bogus.
	  [Thanks again to Sven Hartrumpf]

19/03/01 (build 779):
	- Added simplification for '(values <x>)'.
	- Added 'vector-copy!'.
	- Documented 'port?'.
	- '-expand-only' chopped off last expression when applied to
	  library units.

17/03/01 (build 777):
	- Some work on the multithreading stuff to conform better
	  to the new SRFI-18 spec.
	- 'fxmod' didn't check for zero dividend.
	- Foreign call results are casted to reduce warnings.

16/03/01 (build 777):
	- Removed 'filestuff.scm'.
	- Added 'software-type' and 'machine-type'.

15/03/01 (build 776):
	- Moved 'make-temporary-filename' to 'filestuff.scm'.
	- '-optimize-level' >= 1 adds '-no-debug'.
	- Low level symbol-hashing uses 1-element cache, now.
	- Added alternative syntax for 'define-macro'.

14/03/01 (build 775):
	- 'cdr' wasn't inlined properly.
	- Some unused locals triggered warning in block-mode.
	- Fixed bug in rest-parameter optimization.
	  [Thanks again to Sven Hartrumpf]

11/03/01 (build 770):
	- The compiler version is not printed by default.
	- 'CHICKEN_run' checks for reentrancy.
	- Compiler produces warnings about unused global variables
	  in block-mode.
	- Removed some word-size dependencies.

10/03/01 (build 769):
	- Fixed bug in 'chicken.h'. Mac-specific prototype had
	  syntax error.
	- Fixed missing prototype in 'chicken.h'.
	- Added '--' option to csi.

09/03/01 (build 768):
	- Added foreign types 'unsigned-char' and 'unsigned-int'.
	- Fixed some bugs in the FFI type stuff.
	- Fixed megastupid bug in multiple values processing.

09/03/01 (build 766):
	- Added 'define-foreign-type' and more type specifiers.
	- Fixed bug regarding internal 'define-values' definitions.
	- Added support for more foreign types.

07/03/01 (build 766):
	- Added foreign type 'scheme-object'.

06/03/01 (build 762):
	- Added 'set!-values', 'define-values', 'let-values', 'let*-values',
	  'letrec-values' and 'record-case'.
	- 'let-values' and 'let*-values' are not SRFI-11 conformant anymore.

05/03/01 (build 760):
	- 'port-position' returns 2 values, now.
	- Parameter limit is changed to 126.
	- Fixed bug in handling of '-optimize-level'.
	- Fixed bug in closure-conversion/preparation phase.
	  [Thanks to Sven Hartrumpf]

03/03/01 (build 757):
	- Added 'port-name' and 'port-position'.

01/03/01 (build 757):
	- Fixed bug in 'fprintf': '~?' didn't check 2nd argument.
	- Fixed bug in '%%error-hook'.
	- Configuration on SPARC doesn't specify '-mflat'. It doesn't
	  seem to work.

28/02/01 (build 757):
	- Added '-version' option to 'csi'.
	- Internal defininition expansions are not broken by shadowed 'letrec'.

27/02/01 (build 756):
	- Added alias 'define-integrable' for 'define-inline'.
	- Fixed bug in reader
 	  [Thanks to Kirill Lisovsky]

26/02/01 (build 755):
	- The FAQ is now an HTML document.
	- Most argument-type checking procedures are inlined, now.

24/02/01 (build 754):
	- Fixed bug in handling of macros, which were shadowed by local
	  bindings.

23/02/01 (build 751):
	- Added declaration alias 'usual-integrations' for 'standard-bindings'.
	- Renamed 'define-record-type' to 'define-record'.
	- '%%structure?' is called inline.

21/02/01 (build 750):
	- Renamed 'macros.scm' to 'highlevel-macros.scm'.
	- Renamed 'mfiles.scm' to 'filestuff.scm'.
	- Put 'values.scm', 'case-lambda.scm' and 'letopt.scm' into
	  'moremacros.scm'.
	- Added 'make-input-port', 'make-output-port' and 'end-of-file'.

19/02/01 (build 749):
	- renamed 'platform.scm' to 'c-platform.scm'.

18/02/01 (build 747):
	- Some minor cleaning up in the compiler sources.

15/02/01 (build 746):
	- eval handles 'include' better (compile-time evaluation wasn't
	  doing the right thing).

12/02/01 (build 743):
	- Fixed bug in regex package: pattern-buffers weren't zero'd
	  before first usage.
	- Removed '-separate' and '-safe' options.
	- Added '-optimize-level' option.
	- Inlining works now for procedures with rest-parameter.

10/02/01 (build 733):
	- Added compiler option '-benchmark-mode'.

09/02/01 (build 730):
	- Fixed bug in 'chicken.h': character unboxing didn't work
	  correctly.
  	  [Thanks to Sven Hartrumpf]

08/02/01 (build 729):
	- '-verbose' prints paths of included files.
	- New option '-to-stdout'.
	- Mutations are gathered on a stack instead of a list. This should
	  speed up minor GC's and reduce allocations a little.
	- Added benchmarks to distribution.

07/02/01 (build 729):
	- Added runtime option 'd'.
	- Fixed bug in memory-manager: minor GC didn't align heap-top
	  properly.
	- 'records.scm' wasn't copied properly on installation.
	  [Thanks to Sven Hartrumpf]

05/02/01 (build 727):
	- Out of range errors in the runtime system prints referenced
	  object in addition to the index.
	- Fixed bug in 'describe'.
	- Added 'string-substitute'.

04/02/01 (build 727):
	- 'call-with-...-file' and 'with-...-...-file' accept optional
	  third argument, the mode in which the file is to open.
	- 'substring-index' got optional START parameter.

03/02/01 (build 727):
	- Added 'xxx/yyy' syntax for numeric literals.
	- Added 'browse2.scm' to distribution.

02/02/01 (build 722):
	- Some minor cosmetic fixes.
	- Added code to include 'c_defaults.h' in 'compiler.scm'.

31/01/01 (build 720):
	- Added alias '-nursery' for '-stack-size'.
	- Fixed bug in compiler: target-stack size was also
	  applied in library units.

30/01/01 (build 718):
	- Added runtime option 'c'.

26/01/01 (build 715):
	- Added '-optimize'.
	- Fixed bug in parameter handling: '-:h' disabled heap.
	- Compiler options are checked now.
	
25/01/01 (build 709):
	- Added the procedure 'features'.
	- Fixed bug in inlining/contraction tests.

23/01/01 (build 706):
	- The interpreter supports simple debugging operations.
	- Interpreter option '-no-debug'.

22/01/01 (build 706):
	- Added debugging option 'b'.
	- '(list)' is folded to the empty list.

16/01/01 (build 706):
	- Removed debugging option '0' (was useless anyway).
	- Added 'when' and 'unless'.
	- Fast box initializations.
	- SRFI-10.
	- 'describe' and ',d' for csi.

15/01/01 (build 703):
	- Extended bindings are foldable.

13/01/01 (build 702):
	- Default chicken home and target-heap and -stack-sizes are given
	  to C compiled modules as preprocessor constants instead of using
	  'build.scm'.

05/01/01 (build 702):
   	- '-write-dependencies' includes source file name and prologue/
	  epilogue files.

04/01/01 (build 699):
	- 'build.scm' contains now defaults for 'CHICKEN_HOME', and target
	  stack- and heap-sizes.
	- Environment variable 'CHICKEN_OPTIONS' gives default options
	  for compiler.
	- The header of compiled code contains the compiler options used
	  and the unit-name/used units.
	- Options '-write-dependencies' and '-dependency-output'.

03/01/01 (build 697):
	- Local variables may shadow macros and special forms, now.
	- Fixed bug in format.scm: '~!' called the wrong function.

02/01/01 (build 697):
	- 'define-constant' wans't correctly handled in the interpreter.

29/12/00 (build 695):
	- 'define-macro' doesn't accept simple form (wouldn't work at
	  compile-time).
	- 'define-constant' and 'define-inline' weren't recognized by the
	  evaluator.
	- Added reference implementations of SRFI-13 and SRFI-14.
	- Reorganized the libraries.

28/12/00 (build 692):
	- Tuned 'srfi-1.scm' a little for fixnum operations.
	- Added compiler options '-prelude' and '-postlude'.
	- Removed 'run.scm'.
	- Fixed bug in code-generator: certain (very) tight allocating
          loops could overflow the stack.

27/12/00 (build 691):
	- Added parameters and reorganized error/reset/exit-behaviour
	  a little.
	- Renamed 'srfi-9.scm' to 'records.scm'.
	- Fixed bug in 'number->string' that crashed executable when radix
	  argument was out of range.
	- Last 5 compiled regexes are cached.
	- Multiplication is done via inline-assembly on x86.
	- The #\page character is properly recognized.

23/12/00 (build 687):
	- 'format' is not a synonym for 'sprintf' anymore.
	- Added SLIB format unit to runtime library.
	- Some minor optimizations.
	- Added 'eval-when', 'fixnum?', 'make-parameter' and 'parameterize'.
	- 'load' and 'load-noisily' accept second argument.

22/12/00 (build 683):
	- 'void'.
	- Added include-file 'srfi-9.scm'.
	- 'syntax-case.scm' is commpiled in fixnum mode.
	- Added optimization for '(if (memXXX' case.

21/12/00 (build 682):
	- Foreign functions with float arguments accept fixnum, now.

19/12/00 (build 682):
	- Incorporated Shivers' bugfix in srfi-1.scm (delete-duplicates!).

11/12/00 (build 681):
	- Fixed bug in compilation of 'define-constant'.
	- '%%implicit-termination-hook' is only invoked at end of non-library
	  unit.

08/12/00 (build 676):
	- Boxes are allocated inline (like closures).
	- More inline rewritings for some unsafe operators.
	- Fixed bug in inline-assembly: GCC on ELF doesn't use '_'
	  as symbol-prefix.
	  [Thanks to Doug Quale]

05/12/00 (build 676):
	- 'define-constant'.

04/12/00 (build 673):
	- 'define-inline'.

03/12/00 (build 672):
	- Closure creation happens in-line, now.
	- Speeded up assignment/mutation a little.
	- Looping direct calls do not recompute current closure anymore.
	- Fixed bug in INTERNALS.
	  [Thanks to Christian Tismer]

02/12/00 (build 671):
	- Compare and test of optimized code generates slightly better code when
	  compiled via GNU C.

01/12/00 (build 671):
	- 'CHICKEN_run' and '%%host-data'/'%%set-host-data!' are a little bit more
	  flexible now.

30/11/00 (build 671):
	- Fixed bug in 'string-split-fields': infix mode wasn't working correctly
	  on an empty string argument.

27/11/00 (build 669):
	- Rest parameters that are never used do not allocate storage.
	- Rest parameter lists that are only accessed under certain constraints
	  are actually stored in a vector, instead of a list.

26/11/00 (build 666):
	- Found bug in the handling of 'quote' when evaluated. The expression
	  '(quote (quote ...))' would be treated as '(quote ...)'.
	- Uploaded.

24/11/00 (build 664):
	- The 'unsigned-short' type wasn't handled in all situations.
	- Another GCC bug: 'regparm' attribute doesn't work in conjunction
	  with 'alloca'.

23/11/00 (build 661):
	- 'time' prints number of mutations performed.
	- Functions calls exclusively in direct form use fast calling conventions.

22/11/00 (build 659):
	- 'equal?' wasn't correctly inlined. Slight changes in the docs.

21/11/00 (build 655):
	- 'length' and 'inexact->exact' can be inlined.
	- Some minor changes in 'library.scm'.

20/11/00 (build 653):
	- Bound checks are omitted for all global variables which are directly
	  assigned at toplevel, as long as no procedure call is performed.
	- Global variables naming standard-/extended-bindings are considered
	  'always-bound'.
	- A 'apply' form with a constant last argument is rewritten to a normal
	  function application.

19/11/00 (build 652):
	- Compiling with the '-expand-only' option generates file that can
	  be properly compiled (any extra code/decorations are omitted from
	  output).

18/11/00 (build 652):
	- Added 'string-translate'.

16/11/00 (build 652):
	- Installation procedure for syntax-case disables '%%macroexpand-hook'
	  (eval was still refering to low-level macro system).

14/11/00 (build 650):
	- Certain conditional expressions generate better code ('___cond'
	  core form).
	- 'ass...' and 'mem...' procedures are inlined, now.
	- Found bug in GCC. :-(

12/11/00 (build 644):
	- More standard routines are inlined.
	- Tuned things here and there.
	- Fixed bug in 'positive?'.

11/11/00 (build 638):
	- More standard-bindings can be inlined.

10/11/00 (build 638):
	- Cascaded IF's can be mapped to C 'switch' in certain situations.
	- Polished manual a little.
	- Timing results from '%%stop-timer' are scaled to two places after
	  the decimal point.

09/11/00 (build 636):
	- Flonum printing precision is better, now.
	- 'begin' forms blocked internal definitions.
	- 'eqv?' was not implemented correctly.
	- '#' in inexact numbers was handled incorrectly.
	- 'remainder' is rewritten to fixnum-modulo in fixnum mode.
	- Added 'define-foreign-variable'.
	- Fixed compiler bug: '=' was not registered as standard-binding.

08/11/00 (build 630):
	- Added 'm' debugging mode to compiler.

07/11/00 (build 629):
	- 'printf', etc. support now '~?'.

06/11/00 (build 628):
	- The two heap semispaces are managed as two different memory blocks.
	- Added 'compose'.
	- Inlining seems to work.
	- Added declaration-specifiers for interrupts and inlining.
	- Gambit-style declarations are accepted (mostly).
	- Number type declarations are recognized without the 'number-type' 
	  symbol.

03/11/00 (build 625):
	- Basic inlining, but not fully tested.
	- Added foreign types 'unsigned-integer' and 'unsigned-long'.
	- 'integer' and 'long' is handled separatly, now.

02/11/00 (build 621):
	- Slight change in compiler: standard/extended-binding test
	  goes via analysis db, now.

31/10/00 (build 620):
	- Changed '%%make-port' slightly. 'open-output-file' accepts
	  'append option, now.

30/10/00 (build 620):
	- Added 'flatten'.
	- 'rx.c' and 'rx.h' still had CRLF line-endings.
	- Added 'read-lines' and 'string-split-fields'.

29/10/00 (build 615):
	- Cleaned up '%%canonicalize-body' in 'eval.scm'.

28/10/00 (build 615):
	- csi add 'CHICKEN_INCLUDE_PATH' to '%%include-pathnames'.
	- Fixed small word-size dependency in 'C_apply'.

26/10/00 (build 611):
	- Very long string-constants are handled properly, now.
	- Generated C-files show source filename in header.
	- The interpreter handles arbitrarily sized 'let' constructs.
	- C-files are translated to UNIX line-format for distribution.
	- Did some cleanup regarding installation procedures.
    	  [Thanks to Bruce Hoult]

24/10/00 (build 610):
	- '___immutable' form handles the case when it's argument
	  is quoted (The syntax-case package quotes everything
	  automatically).

23/10/00 (build 604):
	- Dots ('.') in symbols are not escaped when printed readably
	  (only if the symbol consists of a single dot).

22/10/00 (build 603):
	- Made ':optional' a macro in 'srfi-1.scm'.

21/10/00 (build 602):
	- Added 'fxmin' and 'fxmax'.
	- Cleaned up compiler (rewritings) a little.
	- Thread quantum has a minimum of 10, now.

20/10/00 (build 600):
	- Extended thread package.
	- Fixed bug in 'eval': '___compiletimetoo' and '___compiletimeonly'
	  weren't properly handled.

19/10/00 (build 598):
	- 'add1' and 'sub1' are inlined in fixnum-mode.
	- 'cddr' and 'cdddr' are inlined.
	- 'fprintf' didn't check it's string argument.
	- 'quasiquote' expanded into invalid expression if too
	  many components were given.
	- '%%check-syntax' checks lambda-list length.

17/10/00 (build 596):
	- Added 'fxmod' and 'fxneg'.
	- The compiler transforms '*' and '/' with 2 to a binary shift.
	  Identity values (no-ops) are removed from arithmetic ops.
	- Added dummy environment functions.
	- Relaxed 'safe' declaration a bit: if it doesn't crash, it's safe.
	- Fixed bug in inlining code for relational number ops.

16/10/00 (build 582):
	- Fixed nasty allocation bug in 'C_string_to_symbol'.
	- Cleaned up sources a little, added some Mac specific
          definitions.
	- Compiler prints a message after compilation with '-verbose'.

15/10/00 (build 582):
	- 'thread-join!' accepts timeout-argument.

14/10/00 (build 582):
	- Added SRFI-2 ('and-let*').
	- 'mutex-lock!' accepts timeout argument.
	- Fixed bug in 'mutex-lock!'.

13/10/00 (build 581):
	- Symbols with special characters are printed readably, now.

12/10/00 (build 580):
	- Threading stuff is working.	

10/10/00 (build 578):
	- An error in the read-eval-print loop resets the standard-ports
	  to the values they had repl-entry.
	- Block-comments didn't retain line-number-information correctly.
	- Timer-interrupts are more or less usable, now.
	- Forgot to add 'hashtab.scm' to distribution (stupid!)
	  [Thanks to Dave Bodenstab]

09/10/00 (build 577):
	- '{' and '}' trigger read-error, now.
	- Added simple print-length limitatio facility.
	- The generated C code triggers slightly fewer warnings.
	- Added '___immutable'.
	- Maximum number of entries in interpreter history is controled
	  by 'csi:history-count'.
	- '%%stop-timer' gives more accurate results, now.
	- Big Renaming Orgy: renamed all '%...' names to '%%...'.

05/10/00 (build 573):
	- Fixed bug in 'trace.scm'.
	- Fixed bugs in '%dynamic-unwind'.

04/10/00 (build 573):
	- '%error-alert-hook'.

03/10/00 (build 572):
	- 'chop'.
	- Added INTERNALS document to the distribution.

02/10/00 (build 572):
	- Removed CSE pass from the compiler: it was messy, ugly,
	  overly complicated, buggy and didn't improve performance
	  at all.
	- Dumped the bytecode interpreter. Now using a Feeley/Lapalme-
	  style closure-compiling interpreter. The old one was too
	  complicated, and the new one has apparently about the
	  same performance! (but is a lot simpler and cleaner).
	- Removed all interpreter-debugging stuff.

01/10/00 (build 569):
	- Fixed bugs in 'C_raise_interrupt' and the interrupt-hook
	  of the interpreter.

30/09/00 (build 568):
	- Added '-case-sensitive' switch to interpreter/compiler.
 	- Changed some things in the documentation.

29/09/00 (build 567):
	- Foreign type-specifier 'c-string' allows argument to be
          '#f', now (treated as NULL pointer).

26/09/00 (build 563):
	- Added 'fx='.
	- Fixed bugs in 'string-split'.
	- Fixed bug in 'string-append' (immediate argument
	  caused crash).

23/09/00 (build 562):
	- 'list-tail'/'list-ref' are inlined.
	- CSI has 'transcript-on' and 'transcript-off'.

22/09/00 (build 561):
	- Added 'string-capitalize' and 'string-capitalize!'.
	- Continuation procedures created via 'call/cc' did not
	  check argument-count correctly.
	- Fixed bug that caused declaration-specifiers that had
	  the same name as macros to bomb if using hygienic macros.
	- Fixed bug in 'arithmetic-shift' (left shift was buggy).
	- Fixed some bugs in SRFI-4 and supporting code.
	- The '#' character is now allowed in numeric constants.
	- 'char-upcase' and 'char-downcase' are inlined in unsafe
	  mode.
	- Added '&' procedure to CSI.

18/09/00 (build 556):
	- Added inline-rewritings for character predicates
	  ('char-alphabetic?', etc.).
	- Closure conversion is done in two phases now, to
	  accomodate some closure-representation optimizations
	  in the future.

17/09/00 (build 555):
	- Fixed compiler bug: direct calls were made to variables
	  that had a 'value property, but the 'unknown property
	  wasn't checked).
	- Block-comments ('#| ... |#') are handled properly.
	- Fixed bug in reader (r-list/period).
	- Added pipe stuff in 'files.scm'.
	- Fixed bug in '___inline_allocate'.
	- Fixed bug in compiler: simplification of 'even?'/'odd?'
	  resulted in error. Furthermore the simplication-expansions
	  were incorrect.
	  [Thanks to Dale Jordan]

15/09/00 (build 545):
	- 'dynamic-wind' is a fixed part of the library, now.

14/09/00 (build 543):
	- Renamed 'syntax-case-macros.scm' to 'macros.scm'.
	- Added arithmetic fixnum operations ('fx+', etc.). 
	- New type-specifier for 'foreign-lambda': 'integer'.

12/09/00 (build 538):
	- Literal-frame generation in toplevel-procedure was
	  slightly improved.
	- Added '$' procedure to CSI.
	- Fixed bug in compiler: 'null?' wasn't properly inlined.
	- Fixed bug in 'fprintf': the format-directive '~<whitespace>'
	  wasn't properly handled.
	- A few bugfixes, a few more performace improvements.

11/09/00 (build 528):
	- Added 'string->uninterned-symbol'.
	- 'gensym' with a symbol-argument uses a copy of the
	  symbol name.
	- Added syntax-case package to interpreter and compiler.

10/09/00 (build 527):
	- Added 'undefine-macro!'.
	- Added internal hooks for macro-expansion and evaluation.
	- Added compiler-special form '___compiletimeonly'.
	- Improved (native) hashing function for strings.

09/09/00 (build 519):
	- Renamed occurences of 'char' in runtime-system to 'C_char'
	  and 'C_byte'.
	- 'file-info?' works now for directories, too.
	- 'directory' in the VC++ version takes a directory name as 
	  argument.
	- When the runtime-system was compiled with 'WINDOWS_GUI',
	  the command-line didn't include the program-name.
	- The zip and tgz files contain now a subfolder named using
  	  current version and build-number.
	  [Thanks to Karl M. Hegbloom]

07/09/00 (build 519):
	- 'include' and 'declare' can appear anywhere now.
	- 'expt' is exactness-preserving if possible.
	- Put some stuff from 'chicken.scm' into the new compiler-
	  module 'platform.scm'.
	- Fixed some minor bugs.
	- 'inexact->exact' signals an error if the argument can
	  not be represented as a fixnum. The previous behaviour
	  was to truncate, which was wrong.
	- Multiple and indirect 'uses' declarations should be
	  possible, now (not tested, though).

06/09/00 (build 513):
	- 'max'/'min' use safe versions of '<' and '>'.
	- Uncatched runtime errors trigger message box if under
	  Windows and not in console-mode.
	- 'read-line' stops reading after #\newline OR #\return.
	- The 'time'-macro expands into code that writes statistics
	  to the proper port (%standard-output) and not to C's stdout.

05/09/00 (build 512):
	- '%load-verbose' is set to #f when CSI is invoked with the
	  '-quiet' option.
	- Added 'with-error-output-port'.

03/09/00 (build 512):
	- '((lambda ...) ...)' is canonicalized into '(let ((<tmp>
	  (lambda ...))) (<tmp> ...))', otherwise the procedure can
	  not be beta-contracted.

31/08/00 (build 510):
	- Added 'call-with-output-string', 'call-with-input-string',
	  'with-input-from-string' and 'with-output-to-string'.
	- 'C_display_flonum' uses 'gcvt' only under CYGWIN, now.
	  [thanks to Charles Martin]

30/08/00 (build 510):
	- Added 'signum'.
	- Renamed 'C_initialize_runtime' to 'CHICKEN_initialize' and
	  'C_restart_entry' to 'CHICKEN_run'.

27/08/00 (build 507):
	- Implemented a couple of standard predicates as macros/
	  procedures callable via '___inline'.

24/08/00 (build 501):
	- Added support for allocating inline calls and some more
	  standard-binding rewrites.
	- Fixed analyzer-bug: global variables are not replacable,
	  anymore.
	- Added 'extended-bindings' declaration specifier.

22/08/00 (build 496):
	- CSI handles Ctrl-C (implemented low-level signal handling).
	- 'number->string' works now for base 2.
	- Quasiquoted forms expand into internal constructors, so
	  the expanded code works even if the standard constructors
	  are redefined.

21/08/00 (build 495):
	- Fixed bug where stack-check in toplevel procedure was omitted in
	  unsafe mode.
	- Fixed bug in hashing routine.
	- Handling of very large/negative numbers if u32/s32-vectors in srfi-4
	  wasn't handled correctly.

20/08/00 (build 493):
	- Coalesced two calls to 'C_save_rest' in procedure-stubs into
	  a single one.

17/08/00 (build 490):
	- VC++ compiled version of runtime uses assembly routines for 
	  fixnum addition/subtraction.
	- Moved 'file-size' into 'extras' unit.
	- Added 'file-modification-time'.
	- Added queues to 'extras' unit.
	- Fixed bug in 'string->number'.

16/08/00 (build 489):
	- Added file 'files.scm' to 'extras'-unit.

11/08/00 (build 489):
	- Implemented basic foundation for interrupt handling in
	  runtime-system.

09/08/00 (build 488):
	- Added '-expand-only' option to the compiler.

08/08/00 (build 487):
	- Removed 'make-pathname' and 'decompose-pathname'.

06/08/00 (build 487):
   	- Unit toplevel procedures can invoke GC, now (using many
	  units can not exceed the stack anymore).
	- Added regex unit.

05/08/00 (build 485):
	- Added foreign-type 'c-pointer'.

04/08/00 (build 484):
	- Fixed compiler bug: canonicalization of 'begin' to 'let' put
	  'define's inside 'begin' blocks into wrong context.
	- Fixed bug in 'case-lambda'.
	- Endless recursion in 'C_equalp' is catched, now.

02/08/00 (build 483):
	- Fixed bug in runtime system: the 'cons' primitive had to probe
	  the stack, tight recursive list-construction (as in 'map') 
	  resulted in stack-overflow.

31/07/00 (build 482):
	- Cleaned up 'runtime.c' slightly.
	- Uppercase/mixedcase letters for special literals are allowed, now.

29/07/00 (build 481):
	- Fixed bug in the compiler: continuations in call-sites of 'not' were
	  not expected to be variables with a value other than '___lambda'.
	- Fixed bug in string-comparison routines.

28/07/00 (build 479):
	- Added example to the documentation [Thanks to Joey Gibson].
	- CSI accepts the '-include-path' option.

27/07/00 (build 479):
	- Fixed another flonum-alignment bug.
	- Added 'string-concatenate'.

25/07/00 (build ???):
	- Added some basic debugging-facilities to the interpreter
	- Removed documentation for SRFI-1 and MATCH.
	- Added SRFI-4.

24/07/00 (build ???):
	- The compiler didn't handle toplevel 'begin' forms
	  with empty subexpressions properly. Now it accepts
	  '(begin)' anywhere (non-standard, but shouldn't be a
	  problem).

23/07/00 (build ???):
	- Added 'case-lambda.scm' (SRFI-16).
	- Interpreter now can be used in pipe-mode.
	- Removed 'hash-table-load'.

22/07/00 (build ???):
	- Added 'macro?' and 'string-index'.
	- Fixed bug in 'string-right-trim'.
	- Interpreter commands are added to history-list, now.
	- 'init.scm' is loaded from current directory or CHICKEN_HOME,
	  if existing.

21/07/00 (build ???):
	- Flonums are aligned on 8-byte boundaries, now. Unaligned doubles
	  cause segmentation-fault on SPARC [Thanks to Richard Zidlicky].
	- Fixed bug in 'read-line'.
	- 'makefile.gcc' has UN*X text-format.
	- 'number->string' does now generate a trailing decimal-point in
	  flonums that otherwise don't contain one (if not in scientific
	  notation).
	- Added 'string-reverse', 'string-reverse!' and 'string-trim'.

20/07/00 (build ???):
	- Fixed interpreter-bug (three, actually).
	  ((call/cc call/cc) (call/cc call/cc)) works, now.
	- Added 'with-input-from-port' and 'with-output-to-port'
	  to util.scm.
	- Library uses 'strncasecmp' instead of 'strncimp'.
	- Added makefiles.
  	  [Thanks to David Rush, Jeffrey B. Siegal, Sven Hartrumpf and
	  Marc Feeley]
