Chicken 1.92 review
DownloadCHICKEN is a compiler for the Scheme programming language
|
|
CHICKEN is a compiler for the Scheme programming language. CHICKEN produces portable, efficient C, supports almost all of the current Scheme language standard, the Revised5 Report on the Algorithmic Language Scheme (R5RS ), and includes many enhancements and extensions. CHICKEN runs on MacOS X, Windows, and many Unix flavours.
Here are some key features of "Chicken":
Compiles Scheme to efficient and portable C
Includes a full-featured interactive interpreter as well as an optimising batch compiler
Full support for tail recursion, first-class continuations, high-level macros and dynamic-wind
Highly portable and known to run on many platforms, including IA-32 (80x86), IA-64, PowerPC, SPARC and UltraSPARC, Alpha, MIPS, PA-RISC, ARM, AMD64 and S/390
Distributed free for use and modification under the terms of the BSD License
Transparent support for shared objects and linkage to C
A sophisticated but easy-to-use Foreign Function Interface for linking C and C++ libraries and classes to Scheme
Lightweight threads based on first-class continuations
An object system with multiple dispatch, multiple inheritance and a meta-object protocol
Common Lisp-style format
Provides the syntax-case enhanced high-level macro system, R5RS syntax-rules , and define-macro
Support for syntactic pattern-matching via Andrew Wright's match package
Execution profiling, debugging and backtrace support
A clean POSIX interface that covers environment and filesystem access, pipes, processes, signals, locks, sockets, and low-level and memory-mapped I/O
Support for interpreted or compiled shell scripts under Unix and Windows
Support for a large number of Scheme Requests For Implementation (SRFIs), some available separately as extensions:
SRFI 0 (cond-expand )
SRFI 1 (List library)
SRFI 2 (and-let* )
SRFI 4 (Homogeneous numeric vector datatypes)
SRFI 6 (Basic string ports)
SRFI 8 (receive )
SRFI 9 (Record types)
SRFI 10 (#, external form)
SRFI 13 (String library)
SRFI 14 (Character set library)
SRFI 16 (case-lambda )
SRFI 17 (Generalized set! )
SRFI 18 (Multithreading support)
SRFI 23 (error )
SRFI 25 (Multidimensional array primitives)
SRFI 26 (cut , cute )
SRFI 28 (format )
SRFI 30 (Block comments)
SRFI 37 (Program argument processor)
SRFI 38 (External representation for data with shared structure)
SRFI 39 (Parameters)
SRFI 40 (Stream library)
SRFI 42 (Eager comprehensions)
SRFI 43 (Vector library)
SRFI 55 (require-extension )
Limitations:
No unlimited-precision integers (bignums), rationals or complex numbers
Procedures are limited to 126 arguments
No support for unicode
Compilation of large files can be slow
What's New in This Release:
chicken-setup: better handling when no remote repository file exists
Chicken 1.92 keywords