Go to file
2016-06-17 13:09:20 +02:00
benches don't use #[miri_run] anymore, but execute the main function 2016-06-13 15:33:05 +02:00
src implement overflowing ops 2016-06-17 13:09:20 +02:00
tests implement overflowing ops 2016-06-17 13:09:20 +02:00
tex fix tuple example in slides 2016-05-14 15:13:06 +10:00
.editorconfig Add EditorConfig 2016-04-14 14:54:59 +02:00
.gitignore Move slides into new tex directory. 2016-04-08 13:25:36 -06:00
.travis.yml miri needs to be *built* with RUST_SYSROOT, not *run* 2016-06-16 11:00:46 +02:00
Cargo.lock create a miri-pass test that allows us to run miri for arbitrary targets 2016-06-15 16:01:00 +02:00
Cargo.toml create a miri-pass test that allows us to run miri for arbitrary targets 2016-06-15 16:01:00 +02:00
LICENSE-APACHE Add licenses and readme. 2016-02-02 04:47:28 -06:00
LICENSE-MIT Add licenses and readme. 2016-02-02 04:47:28 -06:00
README.md Update for my github username change. 2016-05-09 20:08:37 -06:00

Miri

[slides] [report]

An experimental interpreter for Rust's mid-level intermediate representation (MIR). This project began as part of my work for the undergraduate research course at the University of Saskatchewan.

Build Status

Download Rust nightly

I currently recommend that you install multirust and then use it to install the current rustc nightly version:

multirust update nightly

Build

multirust run nightly cargo build

If Miri fails to build, it's likely because a change in the latest nightly compiler broke it. You could try an older nightly with multirust update nightly-<date> where <date> is a few days or weeks ago, e.g. 2016-05-20 for May 20th. Otherwise, you could notify me in an issue or on IRC. Or, if you know how to fix it, you could send a PR. 😄

Run a test

multirust run nightly cargo run -- \
  --sysroot $HOME/.multirust/toolchains/nightly \
  test/filename.rs

If you are using rustup (the name of the multirust rewrite in Rust), the sysroot path will also include your build target (e.g. $HOME/.multirust/toolchains/nightly-x86_64-apple-darwin). You can see the current toolchain's directory by running rustup which cargo (ignoring the trailing /bin/cargo).

If you installed without using multirust or rustup, you'll need to adjust the command to run your cargo and set the sysroot to the directory where your Rust compiler is installed ($sysroot/bin/rustc should be a valid path).

License

Licensed under either of

Contribution

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.