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 <chicken-users@nongnu.org> 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 <[EMAIL PROTECTED]> cheers, felix _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users