]> git.lizzy.rs Git - rust.git/blob - README.md
Handle promoted rvalues by recursing with call_nested.
[rust.git] / README.md
1 # Miri
2
3 [[slides](https://solson.me/miri-slides.pdf)]
4 [[report](https://solson.me/miri-report.pdf)]
5
6 An experimental interpreter for [Rust][rust]'s [mid-level intermediate
7 representation][mir] (MIR). This project began as part of my work for the
8 undergraduate research course at the [University of Saskatchewan][usask].
9
10 [![Build Status](https://travis-ci.org/tsion/miri.svg?branch=master)](https://travis-ci.org/tsion/miri)
11
12 ## Download Rust nightly
13
14 I currently recommend that you install [multirust][multirust] and then use it to
15 install the current rustc nightly version that works with Miri:
16
17 ```sh
18 multirust update nightly-2016-05-08
19 ```
20
21 ## Build
22
23 ```sh
24 multirust run nightly-2016-05-08 cargo build
25 ```
26
27 ## Run a test
28
29 ```sh
30 multirust run nightly-2016-05-08 cargo run -- \
31   --sysroot $HOME/.multirust/toolchains/nightly-2016-05-08 \
32   test/filename.rs
33 ```
34
35 If you are using [rustup][rustup] (the name of the multirust rewrite in Rust),
36 the `sysroot` path will also include your build target (e.g.
37 `$HOME/.multirust/toolchains/nightly-2016-05-08-x86_64-apple-darwin`). You can
38 see the current toolchain's directory by running `rustup which cargo` (ignoring
39 the trailing `/bin/cargo`).
40
41 If you installed without using multirust or rustup, you'll need to adjust the
42 command to run your cargo and set the `sysroot` to the directory where your
43 Rust compiler is installed (`$sysroot/bin/rustc` should be a valid path).
44
45 ## License
46
47 Licensed under either of
48   * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
49     http://www.apache.org/licenses/LICENSE-2.0)
50   * MIT license ([LICENSE-MIT](LICENSE-MIT) or
51     http://opensource.org/licenses/MIT) at your option.
52
53 ### Contribution
54
55 Unless you explicitly state otherwise, any contribution intentionally submitted
56 for inclusion in the work by you shall be dual licensed as above, without any
57 additional terms or conditions.
58
59 [rust]: https://www.rust-lang.org/
60 [mir]: https://github.com/rust-lang/rfcs/blob/master/text/1211-mir.md
61 [usask]: https://www.usask.ca/
62 [multirust]: https://github.com/brson/multirust
63 [rustup]: https://www.rustup.rs