Release Notes: This version is compatible with Ruby 1.8, 1.9, and 2.0, and was tested with MRI/YARV and Rubinius. Labels that start in underscores now work. Programs that use symbols and then try to export or import them are now rejected.
Release Notes: Fixes the allocation of space for nested lets, the computation of offsets for local variables on ARM, and the parsing of numbers after line continuations. Makes handling of undeclared symbols not depend on the assembler. Makes "make gem" use default values to configure the Voodoo Compiler instead of using the host system's configuration.
Release Notes: This release implements version 1.1 of the Voodoo language. It features stack memory allocation, non-local control flow, shared library support, substitute tokens, and at-expressions for sets.
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.
Release Notes: This release fixes bugs in the i386 and AMD64 implementations of set-word, and adds tests that cover the cases that previously did not work correctly.
Release Notes: In addition to i386 and AMD64, the compiler now supports MIPS. Two new target platforms have been added: mips (big-endian) and mipsel (little-endian). The compiler can now autodetect the platform it is running on and defaults to generating code for that platform if no target platform is explicitly specified. It is still possible to set a specific platform as the default using configure. A new method, output_file_suffix, has been added to the code generator API. It returns the canonical suffix for files generated by the code generator.