Skip to content

Commit ba61c8f

Browse files
committed
clarify the status of Tree Borrows
1 parent 0f114ec commit ba61c8f

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/tools/miri/README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -425,8 +425,12 @@ to Miri failing to detect cases of undefined behavior in a program.
425425
value from a load. This can help diagnose problems that disappear under
426426
`-Zmiri-disable-weak-memory-emulation`.
427427
* `-Zmiri-tree-borrows` replaces [Stacked Borrows] with the [Tree Borrows] rules.
428-
The soundness rules are already experimental without this flag, but even more
429-
so with this flag.
428+
Tree Borrows is even more experimental than Stacked Borrows. While Tree Borrows
429+
is still sound in the sense of catching all aliasing violations that current versions
430+
of the compiler might exploit, it is likely that the eventual final aliasing model
431+
of Rust will be stricter than Tree Borrows. In other words, if you use Tree Borrows,
432+
even if your code is accepted today, it might be declared UB in the future.
433+
This is much less likely with Stacked Borrows.
430434
* `-Zmiri-force-page-size=<num>` overrides the default page size for an architecture, in multiples of 1k.
431435
`4` is default for most targets. This value should always be a power of 2 and nonzero.
432436
* `-Zmiri-unique-is-unique` performs additional aliasing checks for `core::ptr::Unique` to ensure

0 commit comments

Comments
 (0)