miri
miri copied to clipboard
An interpreter for Rust's mid-level intermediate representation
Our errors currently print the same message twice: ``` error: Undefined Behavior: pointer arithmetic failed: alloc1655 has size 4, so pointer to 1 byte starting at offset -1 is out-of-bounds...
IIUC in tree borrows protectors generate implicit reads when they are released. However, the data race detector doesn't seem to be aware of them. Does it make sense for these...
Currently, we abort program execution when we try to access the external environment in isolation mode. However, `libstd` currently calls `getcwd` when printing out a panic backtrace. To ensure that...
I run Miri on the most-downloaded crates, with the flags `-Zmiri-panic-on-unsupported` and `--no-fail-fast` which basically asks Miri to try to run as many tests as it can. Searching all my...
[MiniRust](https://github.com/RalfJung/minirust) is basically an idealized Miri. There are many differences between the two that stem from the fact that Miri is a tool you can actually use, but some differences...
The following assertion is currently guaranteed to pass in Miri, no matter the seed: ```rust fn main() { let ptr1 = Box::into_raw(Box::new(0)) as usize; let ptr2 = Box::into_raw(Box::new(0)) as usize;...
It would seem nice if Miri could detect an error in the following code: ```rust #![feature(allocator_api, slice_ptr_get)] use std::alloc::{Allocator, Global, Layout, System}; #[global_allocator] static A: System = System; fn main()...
When a Box allocator creates an allocation and returns only a part of that to Box, there will be Stacked Borrows errors when the Box is deallocated. This is because...
We could have tests that are 100% safe code, with two revisions: * one of them is a compile-fail revision, with a borrowck error * the other checks that miri...
Our weak memory emulation does not respect the [C++20 SCfix](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0668r5.html), so we could sometimes produce values that are not actually possible on the real machine. This can lead to false...