chicken-users
[Top][All Lists]
Advanced

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

[Chicken-users] ANN: Chicken 1.66 - Guaranteed to perform


From: felix
Subject: [Chicken-users] ANN: Chicken 1.66 - Guaranteed to perform
Date: Mon, 23 Aug 2004 23:02:34 +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 66 is now
available at <http://www.call-with-current-continuation.org>.


Things changed since the last release (1.50):

- Innumerable bugfixes
- The new `-split' and `-split-level' options allows splitting the generated
  C code into an arbitrary number of files [Thanks to Jonah Beckford for this!]
- New foreign type specifiers `number', `symbol' and `instance-ref'
- "Easy" FFI parser:
  * several minor improvements
  * `___discard' marker
  * `___number' and `___symbol' pseudo types
  * support for C++ instance references
  * The read-syntax `#>% ... <#' allows user-controlled processing of an
    abstract (S-expr based) representation of the parsed C/C++ declarations via
    the new `foreign-parse' and `foreign-parse/spec' macros
- chicken/csc: added `-ffi-custom' option
- csc: added `-l...' option
- The tilde is now properly expanded in filenames
- library unit:
  * the third argument to `substring' is now optional
  * reverse-list->string
  * memory-statistics
  * test-feature?
  * fp+  fp-  fp*  fp/  fp=  fp<  fp>  fp>=  fp<= fpneg  fpmax  fpmin
  * `command-line-arguments' filters out runtime ("-:...") options
- eval unit:
  * syntax-error
  * set-read-syntax!
  * set-extension-specifier!
- posix unit:
  * file-mkstemp
  * get-groups  set-groups!  initialize-groups
  * set-group-id!  create-session  process-group-id  set-process-group-id!
  * file-change-time  file-access-time
  * file-stat
- extras unit:
  * alist-ref
  * conc
  * read-token
  * noop
  * atom?
- lolevel unit:
  * record->vector
  * pointer=?
- syntax-case unit:
  * `undefine-macro!' and `macro?' work now properly
  * `debug-expand' allows stepping through the expansion of an expression
- chicken-setup:
  * handles ".so" file extension transparently on Windows under Cygwin
  * added `-fetch' and `-keep' options
  * unpacks eggs into a separate directory
- Better integration of the syntax-case module system
- `define' (local or toplevel) supports "curried" syntax (i.e
  "(define ((add x) y) (+ x y))")
- `use' is an alias for `require-extension'
- The `extras' library unit is now linked in and used by default in compiled
  code
- The interpreter (`csi') has now by default only access to the `library',
  `eval' and `extras' units - identical to the default for compiled files
- `rcsi' has been removed
- The read-syntax `#[NNN]' allows easier access to previous results
  in the interpreter
- C API: `CHICKEN_is_running()'
- SRFI-9 records are now much more efficient (just as efficient as records
  created with `define-record')
- SRFI-22 driver programs (`scheme-r4rs', ...) have been removed (the compiler
  still recognizes them in program headers)
- Support for SRFI-7 has been completely removed
- Chicken runs now on AMD64 platforms

Many thanks to Peter Barabas, Jonah Beckford,  Peter Bex, T. Kurt Bond, Taylor 
Campbell,
Gregorz Chrupala, Alejandro Forero Cuervo, Linh Dang, Petter Egesund, Daniel B. 
Faken,
Johannes Groedem, Sven Hartrumpf, Tollef Fog Heen, Alain Mellan, Eric Meritt, 
Mikael,
Pierre, Michele Simionato, Peter Wang, Thomas Weidner, Benedikt Rosenau, 
Clifford Stein
and Houman Zolfaghari 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, 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, AMD64, 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' 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.
- 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 rapidly growing 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]