Update README.
This commit is contained in:
38
README.rst
38
README.rst
@@ -3,7 +3,39 @@ Cretonne Code Generator
|
||||
=======================
|
||||
|
||||
Cretonne is a low-level retargetable code generator. It translates a
|
||||
target-independent intermediate language into executable machine code. Cretonne
|
||||
aims to generate code that behaves identically on different target
|
||||
architectures, and that can be executed safely in a sandbox.
|
||||
target-independent intermediate language into executable machine code.
|
||||
|
||||
Cretonne is designed to be a code generator for WebAssembly with these design
|
||||
goals:
|
||||
|
||||
No undefined behavior
|
||||
Cretonne does not have a nasal demons clause, and it won't generate code
|
||||
with unexpected behavior if invariants are broken.
|
||||
Portable semantics
|
||||
As far as possible, Cretonne's input language has well-defined semantics
|
||||
that are the same on all target architectures. The semantics are usually
|
||||
the same as WebAssembly's.
|
||||
Fast sandbox verification
|
||||
Cretonne's input language has a safe subset for sandboxed code. No advanced
|
||||
analysis is required to verify memory safety as long as only the safe
|
||||
instructions are used. The safe instruction set is expressive enough to
|
||||
implement WebAssembly.
|
||||
Scalable performance
|
||||
Cretonne can be configured to generate code as quickly as possible, or it
|
||||
can generate very good code at the cost of slower compile times.
|
||||
Predictable performance
|
||||
When optimizing, Cretonne focuses on adapting the target-independent IL to
|
||||
the quirks of the target architecture. There are no advanced optimizations
|
||||
that sometimes work, somtimes fail.
|
||||
|
||||
Building the documentation
|
||||
--------------------------
|
||||
|
||||
To build the Cretonne documentation, you need the `Sphinx documentation
|
||||
generator <http://www.sphinx-doc.org/>`_::
|
||||
|
||||
$ pip install sphinx
|
||||
$ cd cretonne/docs
|
||||
$ make html
|
||||
$ open _build/html/index.html
|
||||
|
||||
|
||||
Reference in New Issue
Block a user