[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] New Chicken release! (1.50)
From: |
felix |
Subject: |
[Chicken-users] New Chicken release! (1.50) |
Date: |
Wed, 19 May 2004 23:39:51 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113 |
The CHICKEN Scheme-to-C compiler, Version 1, Build 50 is now
available at <http://www.call-with-current-continuation.org>.
Things changed since the last release (1.33):
- many bugfixes
- some error-messages have been improved slightly
- chicken-entry-points.scm: the new `define-embedded' macro makes it much
simpler to create
named entry points into a compiled Scheme library
- some include files have been renamed for more consistency
- csc:
-W is an alias for -windows
-dll generates Windows DLLs
-unsafe-libraries forces linking with non-safe runtime libs
-cxx selects alternative C++ compiler
- in addition to the normal interpreter (`csi'), a scaled down version (`rcsi')
is now generated, which contains only the base stuff and is used for SRFI-22
scripts - this interpreter is much smaller and starts up faster
- a benchmark suite has been added (run `make bench')
- low-level macros are now by default compile-time-only (use `-run-time-macros'
option or `run-time-macros' declaration to make them available at run-time)
- chicken-setup can now download extensions via HTTP.
- The whole setup/egg/extension stuff has changed considerably, and is now
(hopefully) more flexible, more transparent and simpler; Note that the new
extension system is *not* compatible to the old one - make sure to delete
your old extension repository (normally /usr/local/lib/chicken) completely
before
installing new extensions!
- compiler options `-syntax' and `-syntax-at-run-time' as aliases for
`-hygienic'
and `-hygienic-at-run-time'
- FFI forms that contain C code fragments do now some (very basic) syntax
checking
of the C code; in the cases where this might not be desirable the compiler
option
`-disable-c-syntax-checks' can be used
- compiler options `-disable-stack-overflow-checks'
- several improvements to the "easy" FFI and new pseudo declarations
`exception_handler', `destructor_name' and `class_finalizers'
- simpler creation of GC roots from C code (`CHICKEN_new_gc_root()', ...),
global variables can be accessed via the `CHICKEN_global_...' API
- `location' is more flexible now
- added `#$...' read syntax for locations; `#!...' and `#%...' are now accepted
as symbol syntaxes
- `(define-macro SYMBOL SYMBOL)' is now allowed (low-level macro system only)
- new foreign type specifiers `byte' and `unsigned-byte'
- tcp: `tcp-listen' accepts optional host argument
- extras:
string-chop
alist-update!
shuffle
read-file now accepts a filename as argument
- lolevel:
make-weak-locative (`make-locative' creates now a non-weak locative)
global-make-unbound!
tag-pointer
tagged-pointer?
pointer-tag
- script-utils:
read-all
- `define-foreign-record' allows easy accessing of C structures
- `define' may be used with a single argument
- DSSSL-style extended lambda-lists are now supported (i.e `#!optional',
`#!key' and
`#!rest')
- end-of-file is read and written as`#!eof' (self evaluating)
- `let-macro' and `package' have been removed
- `chicken-setup' has been completely rewritten is can now be used as a general
build and
installation tool for extension libraries and applications
- `chicken-format-profile' has been renamed to `chicken-profile'
- `chicken-profile', `csc' and 'chicken-setup' are now compiled to binaries
- The new syntax form `require-extension' does automatically the right thing,
regarding
syntax- and non-syntax extension libraries
- The manual is now available in texinfo format, info files for easy browsing
are installed
- The syntax-case module system can now be used with separately compiled files
Many thanks to Terence Brannon, Taylor Campbell, Category 5, Alejandro Forero
Cuervo,
Linh Dang, Daniel B. Faken, Feanor, Sven Hartrumpf, Matthias Heiler, Kim Liu,
Brad Lucier,
Alain Mellan, Benedikt Rosenau, Shmul, Michele Simionato, Clifford Stein, Peter
Wang,
jemhoff and z0d for their helpful 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, 7, 8, 9, 10, 13, 14, 16, 18, 22, 23, 25,
26, 28, 30, 37 and 39.
- Record structures, hash-tables, queues, custom I/O ports, extended string
operations, regular expressions, Common LISP style `format', TCP sockets and
more...
- Provides an object system with multiple inheritance, multimethods and a
Meta-Object-Protocol (based on Kiczales' TinyCLOS).
- Lightweight threads (based on call/cc).
- High portability (known to work on DOS, Windows, Linux, Free/Net/Open BSD,
Solaris, SunOS, MAC OS X, HP-UX, IRIX and probably many more. Supported
processors include x86, Sparc, PA-RISC, Alpha, ARM, IA64, S/390, MIPS
and PowerPC).
- Freely available under the BSD license.
- A POSIX interface (not supported on all platforms).
- Powerful pattern matching macros.
- `syntax-case' macro system.
- Generation of profiling information.
- A powerful 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.
- The compiler can be customized in various ways.
- Support for writing interpreted or compiled UNIX shell scripts or
Windows/DOS batch files.
Limitations:
- No unlimited-precision integers (bignums), rationals
or complex numbers.
- No support for unicode.
- Procedures can not have more than 126 arguments (on x86 platforms
this limit is raised to 1024).
- Compilation of large files is quite slow.
Extensions and libraries:
Check out <http://www.call-with-current-continuation.org/eggs/index.html>
for a list of readily packaged extensions for Chicken.
The current development version can be accessed via anonymous CVS, like this:
cvs -d:pserver:address@hidden:/cvsroot/chicken login
cvs -z3 -d:pserver:address@hidden:/cvsroot/chicken co chicken
When prompted for a password, simply press the Enter key.
See the file doc/README.CVS for details on how to bootstrap the system.
Check out <http://www.call-with-current-continuation.org/software.html>
for a collection of contributed code and libraries.
A mailing list for CHICKEN can be accessed 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>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Chicken-users] New Chicken release! (1.50),
felix <=