chicken-users
[Top][All Lists]
Advanced

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

[Chicken-users] Chicken 2.3 has been released


From: felix winkelmann
Subject: [Chicken-users] Chicken 2.3 has been released
Date: Sun, 19 Feb 2006 00:06:32 +0100

The CHICKEN Scheme-to-C compiler, Version 2.3 is now
available at <http://www.call-with-current-continuation.org>.


Things changed since the last release (2.2):

- 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 by 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
- reloading compiled code dynamically does works now (but still leaks memory)
- the manual contains a section on pattern matching
- libffi is used by default, when available
- 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 suggestions!

Features:

- 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, 11, 12, 13, 14, 15, 16,
17, 18, 19,
  23, 25, 26, 28, 29, 30, 31, 37, 38, 39, 40, 42, 43, 47, 55, 57, 62,
63, 66, 69
  and 72.
- Record structures, hash-tables, queues, custom I/O ports, extended string
  operations, regular expressions, TCP sockets and more...
- 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 (partially available for Windows)
- 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
  application.
- Uses a simple static linking system that allows easy creation of self-
  contained executables.
- The compiler can be customized in various ways.
- Support for writing interpreted or compiled UNIX shell scripts or
  Windows batch files.
- A separate utility allows straightforward download, build and installation
  of extension libraries.


Limitations:

- No unlimited-precision integers (bignums), rationals or complex numbers
  (available seperately as an extension)
- No support for unicode (also available separately)
- Procedures can not have more than 126 arguments (more on certain platforms
  or when libffi is available).
- Compilation of large files is quite slow.


Extensions and libraries:

  Check out <http://www.call-with-current-continuation.org/eggs/index.html>
  for a rapidly growing list of readily packaged extensions for CHICKEN.

  Currently available:

  ajax amb aquaterm args axst autoload array-lib awk base64 bb
binary-parse blas box bloom-filter c3 cairo
  charconv complex crc crypt crypt3 csv datatype debug defstruct
dissector doctype eggdoc environments
  epeg expat ezxdisp format format-modular ftp futures g2 gdbm
generalised-case generator gmp hashes
  hostinfo html-stream htmlprag http iconv imlib2 inline irc iset japi
json kanren lalr lazy-ffi
  levenshtein lightning locale loop magic mailbox make man mapm
matcher md5 meroon message-digest
  metakit miscmacros mole mysql nbstdin ncurses numbers objc oblist
opengl openssl packedobjects packrat
  pcap phoghorn pipeline pmatch pop3 postgresql ppi prometheus
proplist protobj qthack r6rs-libraries
  readline regex-case ripemd rfc3339 rfc822 rgraph rpc rss s11n
sandbox sassy schelog sdl sedna sfio sha1
  sha2 silex simple-macros smtp spiffy spiffy-utils spread sql sqlite
sqlite3 srfi-19 srfi-25 srfi-29
  srfi-37 srfi-38 srfi-40 srfi-42 srfi-47 srfi-57 srfi-66 ssax stack
stream-base64 stream-cgi stream-ext
  stream-ldif stream-parser stream-wiki structures sx sxml-tools
sxml-transforms sxpath syntax-case tar
  tagged-begin test-infrastructure tcc tcp-server tcp6 testeez
tiger-hash tk udp unix-sockets url utf8
  uuid-ossp vector-lib web-scheme wt-tree xlib xmi xml-rpc xosd xxexpr z3

  Particular attention should be paid to Zbigniew Szadkowski's
powerful Objective-C bridge,
  which provides full access to Mac OS X. Find code, documentation and
tutorials at
  <http://www.call-with-current-continuation.org/eggs/objc.html>


The current development version can be accessed through the "darcs"
revision control
system (available at <http://www.darcs.net>), like this:

  $ darcs get http://galinha.ucpel.tche.br:/chicken

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

  A special thanks to Mario Domenech Goulart and the Universidade
Catholica de las Pelotas for
  providing the server that hosts the source repository!


The mailing list for CHICKEN can be found here:

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

  General information about the mailing list is at
  <http://mail.nongnu.org/mailman/listinfo/chicken-users>


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


cheers,
felix




reply via email to

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