]> git.lizzy.rs Git - rust.git/blobdiff - README.md
Document file sorting
[rust.git] / README.md
index 938a64cd045b1e16e49480ebd3b75e5f94029d71..50a43436dc219687bfd2537cbb6d49043e64933d 100644 (file)
--- a/README.md
+++ b/README.md
@@ -288,14 +288,16 @@ environment variable. We first document the most relevant and most commonly used
   `-Zmiri-disable-isolation` is set.
 * `-Zmiri-ignore-leaks` disables the memory leak checker, and also allows some
   remaining threads to exist when the main thread exits.
-* `-Zmiri-seed=<hex>` configures the seed of the RNG that Miri uses to resolve
-  non-determinism. This RNG is used to pick base addresses for allocations. When
-  isolation is enabled (the default), this is also used to emulate system
-  entropy. The default seed is 0. You can increase test coverage by running Miri
-  multiple times with different seeds.
-  **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-preemption-rate` configures the probability that at the end of a basic block, the active
+  thread will be preempted. The default is `0.01` (i.e., 1%). Setting this to `0` disables
+  preemption.
+* `-Zmiri-seed=<hex>` configures the seed of the RNG that Miri uses to resolve non-determinism. This
+  RNG is used to pick base addresses for allocations, to determine preemption and failure of
+  `compare_exchange_weak`, and to control store buffering for weak memory emulation. When isolation
+  is enabled (the default), this is also used to emulate system entropy. The default seed is 0. You
+  can increase test coverage by running Miri multiple times with different seeds. **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-strict-provenance` enables [strict
   provenance](https://github.com/rust-lang/rust/issues/95228) checking in Miri. This means that
   casting an integer to a pointer yields a result with 'invalid' provenance, i.e., with provenance
@@ -307,13 +309,15 @@ to Miri failing to detect cases of undefined behavior in a program.
 
 * `-Zmiri-allow-uninit-numbers` disables the check to ensure that number types (integer and float
   types) always hold initialized data. (They must still be initialized when any actual operation,
-  such as arithmetic, is performed.) Using this flag is **unsound**. This has no effect when
+  such as arithmetic, is performed.) Using this flag is **unsound** and
+  [deprecated](https://github.com/rust-lang/miri/issues/2187). This has no effect when
   `-Zmiri-disable-validation` is present.
 * `-Zmiri-allow-ptr-int-transmute` makes Miri more accepting of transmutation between pointers and
   integers via `mem::transmute` or union/pointer type punning. This has two effects: it disables the
   check against integers storing a pointer (i.e., data with provenance), thus allowing
   pointer-to-integer transmutation, and it treats integer-to-pointer transmutation as equivalent to
-  a cast. Using this flag is **unsound**.
+  a cast. Using this flag is **unsound** and
+  [deprecated](https://github.com/rust-lang/miri/issues/2188).
 * `-Zmiri-disable-abi-check` disables checking [function ABI]. Using this flag
   is **unsound**.
 * `-Zmiri-disable-alignment-check` disables checking pointer alignment, so you