Version 0.7 of Crack, a general purpose scripting language aimed for high performance, has been released and it brings a number of new features and improvements. To its developers the Crack language is reaching a pay-off point as being an alternative to writing programs in Python, C++, or Java.
Crack is meant to be easy like other scripting languages while offering the performance of the compiled languages. The Crack program serves as a script executor that leverages LLVM for JIT compilation to machine code. Crack language concepts are derived mostly from C++, Java, and Python with support for object-oriented programming, operator overloading, strong typing, and other features. Crack is licensed under the Mozilla Public License 2.0 (previously it was LGPLv3 but that changed with this release).
Crack 1.0 was expected for release by now, but with support for compiled module caching -- which the developers deem a requirement for a 1.0 release -- not being ready, they decided to do a 0.7 release instead of 1.0. Crack developers hope, however, that Crack 1.0 with this caching support will be ready for release by year's end.
Changes with Crack 0.7 include:
- Switched licensing from LGPLv3 to MPL 2.0.
- Upgraded to LLVM 3.1
- Added 16-bit integer types.
- Added the "alias" statement (a more general replacement for "typedef").
- Implemented a version of cast that returns a default instead of throwing an exception when the cast fails.
- Added indented string constants.
- Added support for virtual methods in extension classes.
- Added an "assert" annotation.
- Added extensions for midi, alsa, SDL drawing, fluidsynth and Crossroads IO.
- Added support for XML parsing.
- Added an OrderedHashmap collection type.
- Added support for process multiplexing using Poller.
- Lots of bug-fixes and small enhancements.
- Various changes to support caching (which still doesn't work).
The Sunday release of Crack 0.7 is available from the Google Code's website