chicken-users
[Top][All Lists]
Advanced

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

[Chicken-users] ANN: Chicken 2.41


From: felix winkelmann
Subject: [Chicken-users] ANN: Chicken 2.41
Date: Tue, 18 Jul 2006 07:40:03 +0200

Hello!

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

Things changed since the last release (2.3):

- Countless bugfixes
- compiler:
 * added support for the generation of "export" files through the
"-emit-exports" option
 * new option `-check-imports' (csc: `-G') checks for unimported
symbols and can be quite
   helpful in finding unbound variable errors (this requires all
extensions ("eggs") to be
   adapted to this new feature, a process which isn't complete yet)
 * new declarations `emit-exports', `constant' and `import'
 * new option `-disable-warning' and declaration `disable-warning'
 * new options `-release' and `-import'
- chicken-setup:
 * new `exports' extension property
 * option `-check' checks for extension upgrades
 * added `-eval' option
 * added parameters `setup-install-flag' and `setup-verbose-flag'
- FFI:
 * added the handy `$' macro, which lets you do foreign calls
directly without declaring
   a placeholder procedure
 * `define-foreign-enum' for treating C enums as symbol-sets
 * `foreign-safe-wrapper' has been deprecated
- Slight reorganization of TinyCLOS and match macros and support code
- `thread-join!' has been generalized to allow a thread to have multiple results
- Renamed `thread-deliver-signal!' to `thread-signal!' and
`invalid-procedure-call-handler'
 to `set-procedure-call-handler!'
- The system can be configured to add an extra slot to symbol objects
- Another configuration option enables GC of unused symbols by default
- The extension repository is now versioned to catch binary incompatible
 installations, this requires to either move all installed extensions to the
 new location ("$prefix/lib/chicken/1") or reinstall them
- Now supports SRFI-61 (extended `cond')
- Added procedures `load-relative', `tcp-buffer-size`, `string-chomp'
- trivial implementations of `real-part', `imag-part', `angle' and
`magnitude' have
 been added to the library to allow more portable code
- Breakpoints and single-stepping of compiled code on the function-level, new
 procedures `breakpoint' and `singlestep'
- csi: new toplevel commands `,info', `,step', `,br', `,ubr',
`,breakall', `,breakonly',
 `,exn' and `,c'
- csi: `set-describer!' allows definition of custom output for the `,d' command
- Added `integer64' foreign type specifier
- The environment variable "CHICKEN_PREFIX" allows (together with
"CHICKEN_REPOSITORY") overriding
 the installation path prefix in case you want to install and run
multiple instances/versions
 of CHICKEN or install on a shared network
- csc: added `-dry-run' option
- removed `-split...' options (and the ability to generate multiple C
files from a single
 Scheme file)
- `crictical-section', `disable-interrupts' and `enable-interrupts'
shouldn't be used from
 now on (deprecated), use SRFI-18 mutexes instead

Many thanks to Nico Amtsberg, Arto Bendiken, Jean-Francois Bignolles,
Peter Busser, Thomas Chust,
John Cowan, Alejandro Forero Cuervo, Jaarod Eells, Brandon van Every,
Graham Fawcett, Mario Domenech
Goulart, Sven Hartrumpf, Markus Hülsmann, Goetz Isenmann, Heath Johns,
Daishi Kato, Kon Lovett, Dan
Muresan, Ian Oversby, Göran Weinholt, Burton Samograd, Reed Sheridan,
Alex Shinn, Sunnan, Zbigniew
Szadkowski and Peter Wright for their helpful contributions,
suggestions and bug reports!


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.
- Preliminary support for the CMake (http;://www.cmake.org) build
system has been
 implemented (this needs the Chicken development version from darcs/svn).
 Special thanks to Brandon van Every for all the work he put into this.


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:

 F-operator ajax alexpander amb aquaterm args asxt autoload array-lib
awk base64 bb binary-parse blas
 bloom-filter box c3 cairo charconv chicken complex content-type
cookie crc crypt crypt3 csv datatype
 debug defstruct dissector doctype dpfw eggdoc environments epeg
expat ezxdisp fastcgi format format-modular
 fp ftp futures g2 gdbm generalised-case generator gmp hashes honu
hostinfo html-plots html-stream
 htmlprag http iconv imlib2 inline irc iset japi javahack jni json
kanren lalr lazy-ffi levenshtein
 lightning lirc-client locale lookup-table loop magic mailbox make
man mapm matcher object-apply
 match-action mathh md5 meroon message-digest mime metakit metaphone
miscc-extn miscmacros mistie mole
 mysql nbstdin ncurses numbers objc object-apply oblist opengl
openssl orders packedobjects packrat pcap
 phoghorn pipeline pmatch pop3 postgresql ppi procedure-surface
prometheus proplist protobj qthack
 r6rs-libraries readline regex-case rfc3339 rfc822 rgraph ripemd
rlimit rpc rss s11n sandbox sassy schelog
 scheme-dissect sdl sedna sfio sha1 sha2 silex simple-macros smtp
softscheme spiffy spiffy-utils spread sql
 sqlite sqlite3 sqlite3-tinyclos 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 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 syntax-case tar tagged-begin
test-infrastructure tcc tcp-server tcp6
 testeez tiger-hash tk udp unix-sockets 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!


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


--
http://galinha.ucpel.tche.br:8081/blog/blog.ssp




reply via email to

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