Projects / Crack

Crack

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.

Licenses
Operating Systems
Implementation

RSS Recent releases

  •  01 Dec 2011 21:32

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.

  •  18 Jul 2011 21:22

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.

  •  04 May 2011 09:09

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.

  •  18 Jan 2011 03:22

Release Notes: Support for extensions was added. The "for" statement was implemented. Several new modules were added, including support for floating point math functions and (undocumented) extensions for SDL and OpenGL. The annotation system was added, allowing creation of compiler extensions in the language itself. Annotations were used to implement macros, static members, final members, and current source filename and line-number access. Macro-based generic containers were added.

  •  02 Oct 2010 20:46

Release Notes: The codebase was significantly refactored. Numerous bugs have been fixed. The remaining C operators were implemented, including pre/post increment/decrement, bitwise operators, augmented assignment, and the ternary operator. The readability of dumped IR code has been improved with type names and debug information. The external dependency on the spug++ libraries has been removed. Forward declarations have been implemented. Support for hex, octal, and binary integer constants has been added. New functionality has been added to the libraries for datastructures, file I/O, and socket programming.

Screenshot

Project Spotlight

Cross-LFS

Cross-compiled Linux From Scratch.

Screenshot

Project Spotlight

GluCat

A generic library of universal Clifford algebra templates.