Package changes:
Put documentation in the canonical pkgsrc directories.
Add test target support.
Gmake is not needed anymore.
Things changed in release 1.0:
- Many bugfixes
- Declaration specifier `compress-literals' and compiler-option
`-compress-literals N'
- Chicken now compiles on OpenBSD [Thanks to Steve Elkins]
- `library' unit:
(chicken-version)
- A new version of the portable syntax-case macro system is now used, which
provides `identifier-syntax', `fluid-let-syntax' and `datum->syntax-object',
allows low-level macros (`define-macro') in combination with hygienic
macros and supports the module system used in Chez Scheme (but does not
handle separate compilation)
- The syntax `(define-syntax (name var) ...)' is allowed
- Chicken supports now SRFI-37 officially (A new library unit named `srfi-37'
has been added)
- The old module system has been removed. It was rather hackishly implemented
and didn't integrate well with the highlevel macro system
- The scheduler and the threading system have been massively overhauled
and scale a little better
- The pattern-matcher is now available in combination with the highlevel
macro system, enter `(include "match")' or `(require-for-syntax 'match)'
to make it available
- SRFI-22 script interpreters `scheme-chicken' and `scheme-chicken-hygienic'
have been added
- Compiled `#!' scheme scripts with an invocation line of `csi -script' or
`scheme-chicken'/`scheme-chicken-hygienic' automagically link with all
libraries which would normally be available under the interpreter.
- Type-checks of fixed size objects are slightly more efficient
- Extension-libraries can now be stored alternatively in a directory given
by the CHICKEN_REGISTRY environment variable or in `$HOME/.chicken-registry'
- The new library unit `tcp' provides a PLTish socket interface,
`tcp-accept' and I/O from socket ports do not block other running threads
- The new compiler/interpreter option `-strict-letrec' enables a fully R5RS
compliant expansion of `letrec'
- Chicken should now pass all tests of Scott G. Millers `r5rs_pitfalls.scm'
- Jonah Beckford ported SWIG (<http://www.swig.org>) to Chicken!
Check out a preliminary version at
<http://beckford.netfirms.com/hobbies/swig/>
- On Windows (Cygwin, Mingw32 and MSVC), CHICKEN now supports shared libraries
and dynamic loading. Many thanks to Jonah Beckford for his tremendous work!
Things changed in release 0.1082:
- Bugfixes.
- Support for SRFI's 26 (cut) and 30 (block comments).
- Peter Keller translated the manual into LaTeX. Pdf and html
documentation is available.
- Peter Keller has contributed a comprehensive testing framework
(fully R5RS compliant).
- Declaration specifiers:
export
compile-time-macros-only
- Library unit `extras':
hash-table-remove!
->string
- Library unit `posix':
sleep
- Library unit `lolevel':
pointer-offset
pointer-u8-ref pointer-u8-set!
pointer-s8-ref pointer-s8-set!
pointer-u16-ref pointer-u16-set!
pointer-s16-ref pointer-s16-set!
pointer-u32-ref pointer-u32-set!
pointer-s32-ref pointer-s32-set!
pointer-f32-ref pointer-f32-set!
pointer-f64-ref pointer-f64-set!
- Dynamic loading is now supported on older HP-UX systems that
provide `shl_load()' instead of `dlopen()'
(Thanks to Tony Garnock-Jones)
- Error messages have been (slightly) improved.
- A system for simplified packaging, building and installation
of extension-libraries (based on shared libraries) is now provided.
- New data type `locatives' allow to create pointers into arbitrary
sections of various kinds of Scheme data objects.
- So called `locations' simplify passing pointers to local or global
Scheme variables to foreign procedures.
- FFI-generated code is a little bit more compact and efficient.
- Chicken supports alternative keyword syntaxes (CL/DSSSL) via the
compiler/interpreter option `-keyword-style' and the parameter
`keyword-style'
- `define-record-printer' now handles SRFI-9 record types.
- The regex-libraries now allow the creation of precompiled regular
expressions (new procedures `regexp' and `regexp?').
CHICKEN is a Scheme-to-C compiler supporting most of the language
features as defined in the Revised^5 Report on Scheme. CHICKEN
generates quite portable C code, and files compiled by it (including
itself) should work without any changes on most platforms.
The whole package is distributed under a BSD license and as such free
to use and modify as long as you adhere to its terms (see the manual).
Linkage to C modules and C-library functions is straightforward, so
it's easy to access C from Scheme. Compiled code can be embedded into
existing C programs without problems. The generated code supports
full tail-recursion, first-class continuations, multiple values and
dynamic-wind.