chicken-users
[Top][All Lists]
Advanced

[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>





reply via email to

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