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: 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.
Release Notes: Support for exceptions like those in C++, Java, or Python was added. Support for compiling scripts directly to native binaries was added. Sequence initialization syntax was added. String interpolation was improved. Byte and integer string constants were added. An encoding annotation was added.