X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=README.md;h=03b995aa56d3fd76e9561099ccb6096b9d9b48ea;hb=a458cf3fe619764abd938eb6d5b27dd261bd8127;hp=3d7003af72e4e40f0f487924a9df3610e14f107e;hpb=e9a25459e53c73b18126c2404929245256f1a58e;p=rust.git diff --git a/README.md b/README.md index 3d7003af72e..03b995aa56d 100644 --- a/README.md +++ b/README.md @@ -29,8 +29,8 @@ program, and cannot run all programs: positives here, so if you program runs fine in Miri right now that is by no means a guarantee that it is UB-free when these questions get answered. - In particular, Miri does currently not check that integers are initialized - or that references point to valid data. + In particular, Miri does currently not check that integers/floats are + initialized or that references point to valid data. * If the program relies on unspecified details of how data is laid out, it will still run fine in Miri -- but might break (including causing UB) on different compiler versions or different platforms. @@ -76,6 +76,11 @@ Now you can run your project in Miri: The first time you run Miri, it will perform some extra setup and install some dependencies. It will ask you for confirmation before installing anything. +Miri supports cross-execution: if you want to run the program as if it was a +Linux program, you can do `cargo miri run --target x86_64-unknown-linux-gnu`. +This is particularly useful if you are using Windows, as the Linux target is +much better supported than Windows targets. + You can pass arguments to Miri after the first `--`, and pass arguments to the interpreted program or test suite after the second `--`. For example, `cargo miri run -- -Zmiri-disable-validation` runs the program without validation of @@ -161,7 +166,7 @@ Several `-Z` flags are relevant for Miri: * `-Zmiri-disable-stacked-borrows` disables checking the experimental [Stacked Borrows] aliasing rules. This can make Miri run faster, but it also means no aliasing violations will be detected. -* `-Zmiri-disable-isolation` disables host host isolation. As a consequence, +* `-Zmiri-disable-isolation` disables host isolation. As a consequence, the program has access to host resources such as environment variables, file systems, and randomness. * `-Zmiri-ignore-leaks` disables the memory leak checker. @@ -193,6 +198,8 @@ Moreover, Miri recognizes some environment variables: * `MIRI_TEST_TARGET` (recognized by the test suite) indicates which target architecture to test against. `miri` and `cargo miri` accept the `--target` flag for the same purpose. +* `MIRI_TEST_FLAGS` (recognized by the test suite) defines extra flags to be + passed to Miri. ## Contributing and getting help @@ -241,6 +248,7 @@ Definite bugs found: * [The Unix allocator calling `posix_memalign` in an invalid way](https://github.com/rust-lang/rust/issues/62251) * [`getrandom` calling the `getrandom` syscall in an invalid way](https://github.com/rust-random/getrandom/pull/73) * [`Vec`](https://github.com/rust-lang/rust/issues/69770) and [`BTreeMap`](https://github.com/rust-lang/rust/issues/69769) leaking memory under some (panicky) conditions +* [Memory leak in `beef`](https://github.com/maciejhirsz/beef/issues/12) Violations of [Stacked Borrows] found that are likely bugs (but Stacked Borrows is currently just an experiment): @@ -249,6 +257,7 @@ Violations of [Stacked Borrows] found that are likely bugs (but Stacked Borrows * [`LinkedList` creating overlapping mutable references](https://github.com/rust-lang/rust/pull/60072) * [`Vec::push` invalidating existing references into the vector](https://github.com/rust-lang/rust/issues/60847) * [`align_to_mut` violating uniqueness of mutable references](https://github.com/rust-lang/rust/issues/68549) +* [Aliasing mutable references in `sized-chunks`](https://github.com/bodil/sized-chunks/issues/8) ## License