chicken-users
[Top][All Lists]
Advanced

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

[Chicken-users] chicken 2.6 released


From: felix winkelmann
Subject: [Chicken-users] chicken 2.6 released
Date: Fri, 2 Mar 2007 08:29:57 +0100

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

Things changed since the last release (2.5):

- 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 a repository
   and the local filesystem
 * new options `-tree FILENAME', `-svn', `-local', `-revision' 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, Paulo Jabardo, 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.


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, 27, 28, 29, 30, 31, 37, 38, 39, 40, 42, 43, 45, 47, 55, 57, 60,
 61, 62, 63, 66, 69, 72 and 78.
- 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:

 aalib ajax alexpander amb aquaterm args asxt autoload array-lib awk
 base64 bb binary-parse blas bloom-filter box c3 cairo charconv
 codewalk coerce complex content-type cookie crc crypt crypt3 csv
 datatype debug defstruct dissector doctype dollar dpfw easyffi
 eggdoc environments epeg estraier expat ezxdisp F-operator
 fancypants fastcgi format format-modular fp ftp futures g2 gdb gdbm
 generalised-case generator gettext glut gmp gtk2 gtk2-glade
 gtk2-gobject hashes honu hostinfo html-plots html-stream htmlprag
 http http-server-form-posts iconv imlib2 inline irc iset japi
 javahack job-worker jni json kanren lalr lazy-ffi levenshtein
 lightning lirc-client locale logging lookup-table loop loopy-loop
 macosx magic mailbox make man mapm mat5-lib match-action matchable
 matcher mathh md5 meroon message-digest mime metakit metaphone
 misc-extn miscmacros mistie modds modules mole mpd-client mysql
 nbstdin ncurses numbers octave objc object-apply oblist openal
 opengl openssl orders packedobjects packrat patch pcap perfect-hash
 phoghorn pipeline pmatch pop3 postgresql ppi procedure-surface
 prometheus proplist protobj pty q-lang qt r6rs-libraries readline
 records regex-case remote-launch remote-mailbox rfc3339 rfc822
 rgraph ripemd rlimit rpc rss s11n sandbox sassy schelog
 scheme-dissect sdl sedna sfio sha1 sha2 silex simple-macros slang
 slib smtp softscheme spiffy spiffy-utils spread sql sqlite sqlite3
 sqlite3-tinyclos sqlora srfi-4-comprehensions srfi-19 srfi-25
 srfi-27 srfi-29 srfi-37 srfi-38 srfi-40 srfi-42 srfi-45 srfi-47
 srfi-57 srfi-60 srfi-66 srfi-78 srfi-85 srfi-95 ssax stack
 stream-base64 stream-cgi stream-ext stream-flash
 stream-flash-tree-map stream-htpasswd stream-httplog stream-ldif
 stream-parser stream-sections stream-wiki structures suspension
 svn-client svn-post-commit-hooks sx sxml-match sxml-tools
 sxml-transforms sxpath synch syntactic-closures syntax-case tar
 tabexpand tagged-begin test-infrastructure tcc tcp-server tcp6
 testeez tiger-hash tinyclos tk tool udp unix-sockets uri url utf8
 uuid-lib uuid-ossp vector-lib web-scheme wt-tree xlib xmi xml-rpc
 xosd xxexpr z3


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

If you prefer subversion (<http://subversion.tigris.org>) access, get
it like this:

 $ svn co https://galinha.ucpel.tche.br/svn/chicken-eggs/chicken

(Username is "anonymous", enter <RETURN> when asked for a password)

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

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


Documentation can be found at the CHICKEN wiki:

 <http://chicken.wiki.br>

Toby Butzon kindly provided the CHICKEN documentation browser:

 <http://callcc.org>


The mailing list for CHICKEN users is available:

 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>


A mailing list specific to CHICKEN development and porting is
available at:

 <http://mail.nongnu.org/mailman/listinfo/chicken-hackers>


Bug and feature requests should be directed towards the CHICKEN
bug tracker at:

 <http://trac.callcc.org>

Many thanks to Arto Bendiken for providing and maintaining this
service!


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]