]> git.lizzy.rs Git - rust.git/blobdiff - Readme.md
Rustup to rustc 1.54.0-nightly (3e99439f4 2021-05-17)
[rust.git] / Readme.md
index b0ea95692f3f7b793ba6c0675721adf2fe4b9d50..08f9373be6262ba35226ceb02fb0a3f5aba22be8 100644 (file)
--- a/Readme.md
+++ b/Readme.md
@@ -1,6 +1,4 @@
-# WIP Cranelift codegen backend for rust
-
-> ⚠⚠⚠ Certain kinds of FFI don't work yet. ⚠⚠⚠
+# Cranelift codegen backend for rust
 
 The goal of this project is to create an alternative codegen backend for the rust compiler based on [Cranelift](https://github.com/bytecodealliance/wasmtime/blob/main/cranelift).
 This has the potential to improve compilation times in debug mode.
@@ -36,68 +34,42 @@ rustc_codegen_cranelift can be used as a near-drop-in replacement for `cargo bui
 
 Assuming `$cg_clif_dir` is the directory you cloned this repo into and you followed the instructions (`prepare.sh` and `build.sh` or `test.sh`).
 
-### Cargo
-
 In the directory with your project (where you can do the usual `cargo build`), run:
 
 ```bash
-$ $cg_clif_dir/build/cargo.sh run
-```
-
-This should build and run your project with rustc_codegen_cranelift instead of the usual LLVM backend.
-
-### Rustc
-
-> You should prefer using the Cargo method.
-
-```bash
-$ $cg_clif_dir/build/bin/cg_clif my_crate.rs
+$ $cg_clif_dir/build/cargo.sh build
 ```
 
-### Jit mode
-
-In jit mode cg_clif will immediately execute your code without creating an executable file.
+This will build your project with rustc_codegen_cranelift instead of the usual LLVM backend.
 
-> This requires all dependencies to be available as dynamic library.
-> The jit mode will probably need cargo integration to make this possible.
+For additional ways to use rustc_codegen_cranelift like the JIT mode see [usage.md](docs/usage.md).
 
-```bash
-$ $cg_clif_dir/build/cargo.sh jit
-```
+## Configuration
 
-or
-
-```bash
-$ $cg_clif_dir/build/bin/cg_clif --jit my_crate.rs
-```
+See the documentation on the `BackendConfig` struct in [config.rs](src/config.rs) for all
+configuration options.
 
-### Shell
+## Not yet supported
 
-These are a few functions that allow you to easily run rust code from the shell using cg_clif as jit.
+* Inline assembly ([no cranelift support](https://github.com/bytecodealliance/wasmtime/issues/1041))
+    * On Linux there is support for invoking an external assembler for `global_asm!` and `asm!`.
+      `llvm_asm!` will remain unimplemented forever. `asm!` doesn't yet support reg classes. You
+      have to specify specific registers instead.
+* SIMD ([tracked here](https://github.com/bjorn3/rustc_codegen_cranelift/issues/171), some basic things work)
 
-```bash
-function jit_naked() {
-    echo "$@" | $cg_clif_dir/build/bin/cg_clif - --jit
-}
+## License
 
-function jit() {
-    jit_naked "fn main() { $@ }"
-}
+Licensed under either of
 
-function jit_calc() {
-    jit 'println!("0x{:x}", ' $@ ');';
-}
-```
+  * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
+    http://www.apache.org/licenses/LICENSE-2.0)
+  * MIT license ([LICENSE-MIT](LICENSE-MIT) or
+    http://opensource.org/licenses/MIT)
 
-## Env vars
+at your option.
 
-[see env_vars.md](docs/env_vars.md)
+### Contribution
 
-## Not yet supported
-
-* Good non-rust abi support ([several problems](https://github.com/bjorn3/rustc_codegen_cranelift/issues/10))
-* Inline assembly ([no cranelift support](https://github.com/bytecodealliance/wasmtime/issues/1041)
-    * On Linux there is support for invoking an external assembler for `global_asm!` and `asm!`.
-      `llvm_asm!` will remain unimplemented forever. `asm!` doesn't yet support reg classes. You
-      have to specify specific registers instead.
-* SIMD ([tracked here](https://github.com/bjorn3/rustc_codegen_cranelift/issues/171), some basic things work)
+Unless you explicitly state otherwise, any contribution intentionally submitted
+for inclusion in the work by you shall be dual licensed as above, without any
+additional terms or conditions.