Crack is a programming language that aims to provide the ease of development of a scripting language with the performance of a compiled language. The "crack" program is a "script executor" that compiles source to machine code on the fly, though it will cache the code to intermediate formats as appropriate. The crack language itself derives concepts from C++, Java, and Python, incorporating object-oriented programming, operator overloading, and strong typing.
|Implementation||LLVM C++ STL|
Release Notes: Many bugs were fixed, small features were added, and much of the code has been generally refactored and cleaned up. Much of the ground-work for module caching has been done, although this feature is still buggy. Support for flag-driven tracing has been added. Numerous extension modules have been added. A Mersenne PRNG module has been added. The test framework has been enhanced to support composite tests. The Wurld OpenGL example program was added. The codebase has been ported to use LLVM 3.3. Annotation semantics in generics has changed.
Release Notes: The manual was updated for version 0.7. The crack.process module was fixed to actually use the pipe flags being passed in. File handle cleanup on directory iterators was fixed. Several internal naming and ownership bugs were fixed.
Release Notes: The license was changed from the LGPLv3 to the MPL 2.0. The codebase was ported to LLVM 3.1. 16-bit integer types, the "alias" statement, indented string constants, and an assert annotation were added. A version of cast was created that returns a default instead of throwing an exception when the cast fails. Support was added for virtual methods in extension classes. Many new extensions and modules were added. Subprocess multiplexing was implemented. Many bugfixes and small enhancements were implemented.
Release Notes: Const folding for integer and float operations was implemented. Support for injecting crack function body code from an extension was added. The foundations of support for module caching were added. "Functors" were implemented. An 'ascii' module supporting functionality specific to ASCII data was added. A module for dealing with numeric arrays was added. Stable modules were migrated out of crack.exp and obsolete modules were removed. "const" variables were implemented. Access protection was implemented. Abstract methods were implemented. The unit test framework was upgraded.
Release Notes: Support for Generics was added, and the container library was converted to generics. Support for first class functions and limited functors was added. The numeric typing system was reworked to improve the handling of platform dependent numeric types. Libraries for hashtables and command line option processing were added. The "typeof()" operator was added. Full support for "oper to" conversion was implemented. The extension generator was expanded to allow for the generation of class methods, constructors, and explicit specification of C function names.