]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #1104 - RalfJung:readme, r=oli-obk
authorbors <bors@rust-lang.org>
Fri, 6 Dec 2019 08:57:18 +0000 (08:57 +0000)
committerbors <bors@rust-lang.org>
Fri, 6 Dec 2019 08:57:18 +0000 (08:57 +0000)
update README

r? @oli-obk

README.md

index 5a85b6d4785571e72e89a652b9df05982e9704c2..92423c73c9ca58d05d1429904bcc56bc2e838c9c 100644 (file)
--- a/README.md
+++ b/README.md
@@ -39,10 +39,9 @@ program, and cannot run all programs:
   addresses or other non-deterministic data, try running Miri with different
   values for `-Zmiri-seed` to test different executions.
 * Miri runs the program as a platform-independent interpreter, so the program
-  has no access to any platform-specific APIs or FFI. A few APIs have been
+  has no access to most platform-specific APIs or FFI. A few APIs have been
   implemented (such as printing to stdout) but most have not: for example, Miri
-  currently does not support concurrency, or SIMD, or networking, or file system
-  access.
+  currently does not support concurrency, or SIMD, or networking.
 
 [rust]: https://www.rust-lang.org/
 [mir]: https://github.com/rust-lang/rfcs/blob/master/text/1211-mir.md
@@ -78,9 +77,7 @@ dependencies.  It will ask you for confirmation before installing anything.
 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
-basic type invariants and references.  `cargo miri test -- -- -Zunstable-options
---exclude-should-panic` skips `#[should_panic]` tests, which is a good idea
-because Miri does not support unwinding or catching panics.
+basic type invariants and without checking the aliasing of references.
 
 When running code via `cargo miri`, the `miri` config flag is set.  You can
 use this to exclude test cases that will fail under Miri because they do things
@@ -90,8 +87,9 @@ Miri does not support:
 #[cfg(not(miri))]
 #[test]
 fn does_not_work_on_miri() {
-    let x = 0u8;
-    assert!(&x as *const _ as usize % 4 < 4);
+    std::thread::spawn(|| println!("Hello Thread!"))
+        .join()
+        .unwrap();
 }
 ```
 
@@ -111,7 +109,7 @@ rustup default "$MIRI_NIGHTLY"
 rustup component add miri
 cargo miri setup
 
-cargo miri test -- -- -Zunstable-options --exclude-should-panic
+cargo miri test
 ```
 
 We use `cargo miri setup` to avoid getting interactive questions about the extra
@@ -154,10 +152,10 @@ Several `-Z` flags are relevant for Miri:
   **NOTE**: This entropy is not good enough for cryptographic use!  Do not
   generate secret keys in Miri or perform other kinds of cryptographic
   operations that rely on proper random numbers.
-* `-Zmiri-disable-validation` disables enforcing the validity invariant, which
-  is enforced by default.  This is mostly useful for debugging; it means Miri
-  will miss bugs in your program.  However, this can also help to make Miri run
-  faster.
+* `-Zmiri-disable-validation` disables enforcing validity invariants and
+  reference aliasing rules, which are enforced by default.  This is mostly
+  useful for debugging.  It means Miri will miss bugs in your program.  However,
+  this can also help to make Miri run faster.
 * `-Zmiri-disable-isolation` disables host host isolation.  As a consequence,
   the program has access to host resources such as environment variables and
   randomness (and, eventually, file systems and more).