Skip to content

c27kwan/cranelift

 
 

Repository files navigation

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.

Documentation Status Build Status Gitter chat

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.

Packages

No packages published

Languages

  • Rust 74.1%
  • Python 25.4%
  • Other 0.5%