Tuesday, October 8, 2013

Crack 0.8 Released

We're pleased to announce the release of Crack 0.8.  The new release includes
a number of bug-fixes and code cleanups as well as a number of new extension
modules, and brings us up to date with LLVM 3.3.

It's been almost a year since our last release, which is far longer than usual
and far longer than what we'd like.  The reason for the delay has been the
ongoing work on module caching.  Module caching provides a substantial
speed-up of program loading by allowing the executor to reuse the
artifacts of previous compiles instead of recompiling everything from source.
Unfortunately, it has proven to be very difficult to get this feature working
perfectly, and it still doesn't work quite right for complicated generics. 
Users are encouraged to experiment with it by adding the -C option.

The complete release notes for 0.8 follows:

    -   Lots of bug fixes and small features.
    -   Lots of refactors and code cleanups.
    -   Implemented most of the code for caching (which is still way too buggy
        for anything other than experimentation).
    -   Added flag driven tracing facility.
    -   Lots of new modules and extension modules:
        -   OpenSSL
        -   libpng
        -   alsa, midi, jack, and fluidsynth
        -   curl
        -   SHA1 digests
        -   base64 encoding
        -   Mongo DB and LMDB
        -   netCDF
        -   Mersenne Twister PRNG.
    -   enhanced the test framework to support composite tests.
    -   added the Wurld OpenGL example program.
    -   Ported to LLVM 3.3
    -   Changed annotation-in-generic semantics.