[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] Chicken 1.89 has been released.

From: felix winkelmann
Subject: [Chicken-users] Chicken 1.89 has been released.
Date: Mon, 10 Jan 2005 23:53:30 +0100

The CHICKEN Scheme-to-C compiler, Version 1, Build 89 is now
available at <>.

Things changed since the last release (1.66):

- Countless bugfixes
- chicken-setup:
  * Added `-csc-option', `-dont-ask' and `-no-install' options
  * chicken-setup and eggs are now basically usable on Windows systems
(for those extensions
    that are portable)
- Runtime system: 
  * The assembly language hack required for calling procedures with
more than 126
    arguments on x86 systems has been removed due to portability issues (so the
    argument count limit also applies to x86 platforms)
  * finalizer handling is much more efficient now
- Interpreter:
  * Threads are not blocked in the REPL [using a neat hack originally
by Chris Double]
- Compiler:
  * `usual-integrations' is now the default; the `-usual-integrations'
option has
    been removed and `-no-usual-integrations' has been added (pass
this option to
    the compiler or use declarations to enable redefinition of standard and/or
    core library procedures)
  * Declaration specifier `post-process'
- library unit:
  * c-runtime
  * fxand  fxior  fxxor  fxnot  fxshr  fxshl
  * `bitwise-...' and `arithmetic-shift' operations now accept inexact
integers when in
    machine word range
- utils unit:
  * shift!  unshift!
- posix unit:
  * memory-mapped-file?  set-root-directory!
  * The posix unit is now partially available on native Windows (MSVC) platforms
    [many thanks to Sergey Khorev!]
- regex unit:
  * `regexp' accepts optional arguments for case-insensitivity and
UTF8 awareness
    (not fully supported on all systems) [Kindly contributed by Alex Shinn]
- FFI:
  * C_post_gc_hook
  * The C parser now supports in/out/in-out arguments with multiple
values and basic support
    for structs and unions
- Reader:
  * `#\xXX' character syntax
  * added SRFI-55
  * removed last remnants of SRFI-22
- Numerous small improvements and corrections

Many thanks to Mark Baily, Jonah Beckford, Peter Bex, Fabian Boehlke,
Toby Butzon, Chris Double,
Daniel Goertzen, Johannes Groedem, Sven Hartrumpf, Sergey Khorev, John
Lenz, Micky Latowicki,
Brian Mastenbrook, Nicolas Pelletier, Christian Pohlmann, Psy-Kosh,
Eric Raible, Tim Reid,
Joel Reymont, Benedikt Rosenau, Lars Rustemeier, Alex Shinn, Michele
Simionato and Ed Watkeys
for their helpful contributions, suggestions and bug reports!


- Generates tail-recursive C with full support for first-class 
  continuations and multiple values (Using the translation
  scheme as described in Henry Baker's paper "Cheney on the M.T.A.").
- Fairly R5RS compliant.
- Support for SRFIs 0, 1, 2, 4, 6, 8, 9, 10, 13, 14, 16, 18, 23, 25,
  26, 28, 30, 37, 39 and 55.
- Record structures, hash-tables, queues, custom I/O ports, extended string
  operations, regular expressions, Common LISP style `format', TCP sockets and 
- Provides an object system with multiple inheritance, multimethods and a 
  Meta-Object-Protocol (based on Gregor Kiczales' TinyCLOS).
- Lightweight threads (based on call/cc).
- High portability (known to work on Windows, Linux, Free/Net/Open BSD,
  Solaris, SunOS, MAC OS X, HP-UX, IRIX and probably many more. Supported
  processors include x86, AMD64, Sparc, PA-RISC, Alpha, ARM, IA64, S/390, MIPS
  and PowerPC).
- Freely available under the BSD license.
- A POSIX interface.
- Powerful pattern matching macros.
- `syntax-case' macros and module system
- Generation of profiling information.
- A extensive Foreign Function Interface with callbacks, finalization,
  user defined foreign type converters, locatives, embedding of C code inside 
  Scheme programs, statically allocated (non GC'd) Scheme data and the 
  possibility of embedding compiled Scheme code into other applications.
- On many systems compiled code can be loaded dynamically into a running
- The compiler can be customized in various ways.
- Support for writing interpreted or compiled UNIX shell scripts or 
  Windows batch files.


- No unlimited-precision integers (bignums), rationals or complex numbers.
- No support for unicode.
- Procedures can not have more than 126 arguments.
- Compilation of large files is quite slow.

Extensions and libraries:

  Check out <>
  for a rapidly growing list of readily packaged extensions for Chicken.

  Currently available:

  awk axst base64 bb binary-parse blas c3 complex crypt csv datatype
debug dissector
  environments epeg ftp generalised-case gmp htmlprag html-stream http
irc iset iconv
  inline japi lalr levenshtein loop mailbox make mapm md5 meroon
metakit miscmacros
  mole ncurses oblist opengl pcap pmatch pop3 postgresql readline
regex-case rgraph
  rss sandbox stream-cgi stream-ext structures schelog sdl sfio silex
smtp spiffy
  spiffy-utils spread sqlite srfi-17 srfi-38 srfi-40 srfi-42 srfi-47
ssax tcc tcp-server
  tcp6 tk udp update-egg url vector-lib xlib xml-rpc

The current development version can be accessed via the "darcs" revision control
system (available at, like this:

  $ darcs get

  See the file README.darcs for details on how to bootstrap the system.

A mailing list for CHICKEN can be accessed here:

  To post a message send e-mail to <address@hidden>

  General information about the mailing list is at 

Bug reports, suggestions and comments would be very
welcome. Contact me at <address@hidden>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]