The Voodoo compiler is an implementation of the Voodoo programming language. The Voodoo programming language is a low-level programming language, abstracting over the platform's instruction set and calling conventions, but otherwise leaving the programmer free to do anything at all. The Voodoo compiler supports multiple target platforms and provides a stand-alone compiler, as well as a Ruby module for programmatic code generation.
| Tags | voodoo compiler Ruby Module |
|---|---|
| Licenses | LGPLv2 |
| Operating Systems | POSIX Linux OpenBSD NetBSD FreeBSD DragonflyBSD |
| Implementation | Ruby |
| Translations | English |
Recent releases


Release Notes: Compatibility with Ruby 1.9, in addition to Ruby 1.8; make test now reports the number of passed and failed tests; The many-vars test has been split into many-args, many-args-tail, and many-locals.


Release Notes: This release adds a number of improvements to the parser, which now reports source code locations for all errors and can report multiple errors inside blocks, functions, and conditionals. Several tests for the parser have been added. This release fixes a parse error on statements followed by comments and a problem which caused the parser to fail on empty input.


Release Notes: For the ARM code generator, the compiler can now generate assembly and ELF object code for the ARM architecture. More errors are now detected, and errors are reported in easier-to-understand error messages. The new Validator module can be used to validate generated Voodoo code and is used by the parser to validate parsed code. Features of the implementation can be queried both programmatically and from the commandline.


Release Notes: Newly added features include blocks, chained conditionals (else if), and shift and rotate operations. The return action may now occur without an expression to evaluate.


Release Notes: This release introduces at-expressions: By prefixing a label, local variable, or integer with an @, the value is treated as an address, and the word stored at that address is returned. Additionally, some bugs were uncovered in the way strings were encoded in generated assembly code. These bugs have been fixed, and version 0.6.3 now handles strings containing all 256 possible byte values correctly.