======================= Cretonne Code Generator ======================= Cretonne is a low-level retargetable code generator. It translates a `target-independent intermediate language `_ into executable machine code. *This is a work in progress that is not yet functional.* .. image:: https://readthedocs.org/projects/cretonne/badge/?version=latest :target: https://cretonne.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status .. image:: https://travis-ci.org/Cretonne/cretonne.svg?branch=master :target: https://travis-ci.org/Cretonne/cretonne :alt: Build Status For more information, see `the documentation `_. Planned uses ------------ Cretonne is designed to be a code generator for WebAssembly, but it is general enough to be useful elsewhere too. The initial planned uses that affected its design are: 1. `WebAssembly compiler for the SpiderMonkey engine in Firefox `_. 2. `Backend for the IonMonkey JavaScript JIT compiler in Firefox `_. 3. `Debug build backend for the Rust compiler `_. Building Cretonne ----------------- Cretonne is using the Cargo package manager format. First, ensure you have installed a current stable rust (stable, beta, and nightly should all work, but only stable and beta are tested consistently). Then, change the working directory to your clone of cretonne and run:: cargo build This will create a *target/debug* directory where you can find the generated binary. To build the optimized binary for release:: cargo build --release You can then run tests with:: ./test-all.sh You may need to install the *wat2wasm* tool from the `wabt `_ project in order to run all of the WebAssembly tests. Tests requiring wat2wasm are ignored if the tool is not installed. Building the documentation -------------------------- To build the Cretonne documentation, you need the `Sphinx documentation generator `_:: $ pip install sphinx sphinx-autobuild sphinx_rtd_theme $ cd cretonne/docs $ make html $ open _build/html/index.html We don't support Sphinx versions before 1.4 since the format of index tuples has changed.