[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Chicken-users] ANN: Chicken 2.41,
felix winkelmann <=