Commit Graph

6195 Commits

Author SHA1 Message Date
Andy Wang
a7c832b04a
Wording improvements
Co-authored-by: Ralf Jung <post@ralfj.de>
2022-06-06 19:15:59 +01:00
Andy Wang
6a73dedb36
Update experimental threading warning 2022-06-06 19:15:59 +01:00
Andy Wang
bfa56454e9
Split extra_cpp tests into sound and unsafe 2022-06-06 19:15:58 +01:00
Andy Wang
613d60db0b
Allow non-racy mixed size accesses 2022-06-06 19:15:58 +01:00
Andy Wang
226ed41cca
Destroy store buffers on non-racy non-atomic accesses 2022-06-06 19:15:58 +01:00
Andy Wang
2321b15342
Differentiate between not multithreading and temp disabling race detection 2022-06-06 19:15:57 +01:00
Andy Wang
7dcb19ead4
Add rust-only operation tests 2022-06-06 19:15:57 +01:00
Andy Wang
dafd813c16
Move transmute into a separate function 2022-06-06 19:15:57 +01:00
Andy Wang
6d27f188c2
Update src/concurrency/weak_memory.rs
Co-authored-by: Ralf Jung <post@ralfj.de>
2022-06-06 19:15:56 +01:00
Andy Wang
5ddd4eff03
Spelling, punctuation and grammar
Co-authored-by: Ralf Jung <post@ralfj.de>
2022-06-06 19:15:56 +01:00
Andy Wang
31c01415cb
Replace yield_now() with spin loop hint 2022-06-06 19:15:55 +01:00
Andy Wang
e2002b4c65
Amend experimental thread support warnings 2022-06-06 19:15:55 +01:00
Andy Wang
92145373c3
Put the initialisation value into the store buffer 2022-06-06 19:15:55 +01:00
Andy Wang
577054c6de
Rename variables in AllocationMap 2022-06-06 19:15:54 +01:00
Andy Wang
6b54c92377
Throw UB on imperfectly overlapping access 2022-06-06 19:15:54 +01:00
Andy Wang
5a4a1bfccc
Remove incorrect comment 2022-06-06 19:15:54 +01:00
Andy Wang
335667c774
Move buffered functions into their own ext trait 2022-06-06 19:15:53 +01:00
Andy Wang
8739e45bef
Move data_race and weak_memory into a submodule 2022-06-06 19:15:53 +01:00
Andy Wang
13e3465346
Reduce the number of runs in consistency tests 2022-06-06 19:15:25 +01:00
Andy Wang
6040c9f50a
Refactor store buffer search conditions 2022-06-06 19:15:25 +01:00
Andy Wang
7d874db213
Add tests showing weak memory behaviours 2022-06-06 19:15:25 +01:00
Andy Wang
773131bb26
Improve privacy and comments 2022-06-06 19:15:24 +01:00
Andy Wang
62b514e235
Update README 2022-06-06 19:15:24 +01:00
Andy Wang
89138a67dc
Add more top-level comments 2022-06-06 19:15:23 +01:00
Andy Wang
f729f28925
Move cpp20_rwc_syncs into compile-fail 2022-06-06 19:15:23 +01:00
Andy Wang
32627d5abb
Disable weak memory emulation on scheduler-dependent data race tests 2022-06-06 19:15:23 +01:00
Andy Wang
11ca975cd8
Move type definitions together and clarify fetch_store on empty buffer 2022-06-06 19:15:22 +01:00
Andy Wang
bf7fe68fba
Add -Zmiri-disable-weak-memory-emulation to README 2022-06-06 19:15:22 +01:00
Andy Wang
a71b10381e
Add imperfectly overlapping test 2022-06-06 19:15:22 +01:00
Andy Wang
53f4887659
Use a new AllocationMap to store store buffers in the same allocation 2022-06-06 19:15:21 +01:00
Andy Wang
ecdab5ff35
Clearer boundries between alloc metadata with multiple buffers and an individual store buffer 2022-06-06 19:15:21 +01:00
Andy Wang
cf266584b7
Comment out and provide context to C++20 test 2022-06-06 19:15:21 +01:00
Andy Wang
aca3b3a645
set_at_index sets the default value (0) if index doesn't exist in the other vector 2022-06-06 19:15:20 +01:00
Andy Wang
e7698f4f07
Implement weak memory emulation 2022-06-06 19:15:20 +01:00
Andy Wang
16315b1540
Add test cases 2022-06-06 19:15:20 +01:00
Andy Wang
8d36e8b32c
Add weak memory config option 2022-06-06 19:15:19 +01:00
bors
3361eabf38 Auto merge of #2183 - RalfJung:better-provenance-control, r=RalfJung
adjust for better provenance control

This is the Miri side of https://github.com/rust-lang/rust/pull/97684.
2022-06-06 16:57:34 +00:00
Ralf Jung
84edb76e26 make output bitwidth-independent 2022-06-06 12:35:48 -04:00
bors
cd73c861c4 Auto merge of #2202 - InfRandomness:infrandomness/rustdoc-fixes, r=RalfJung
Fix rustdoc warnings

This fixes the rustdoc warnings presented by the tool
2022-06-06 16:32:05 +00:00
infrandomness
3ba6456181 Fix rustdoc warnings 2022-06-06 18:30:15 +02:00
Ralf Jung
b39e4c729a rustup 2022-06-06 12:10:40 -04:00
Ralf Jung
7f5cfa54d9 port some tests away from flags we want to remove 2022-06-06 11:44:36 -04:00
Ralf Jung
b1b3836172 fix rustup-toolchain without arguments 2022-06-06 11:44:27 -04:00
Ralf Jung
34d4928dce addr no longer exposes :) 2022-06-06 11:43:25 -04:00
Ralf Jung
63625b0397 adjust for better provenance control 2022-06-06 11:43:25 -04:00
bors
1c711a10a9 Auto merge of #2201 - RalfJung:arg-parsing, r=RalfJung
argument parsing: make better use of strip_prefix

This gets rid of lots of `unwrap`. :)
2022-06-06 15:09:47 +00:00
Ralf Jung
f31a8e0951 argument parsing: make better use of strip_prefix 2022-06-06 11:07:25 -04:00
bors
fc8631a737 Auto merge of #2198 - InfRandomness:UNIX-refactor, r=RalfJung
Refactor POSIX to UNIX

This renames the directories containing posix to unix; where applicable,
it also rename functions with the word "posix" to "unix"

Fixes https://github.com/rust-lang/miri/issues/2012
2022-06-06 12:45:32 +00:00
infrandomness
d0a0369a24 Refactor POSIX to UNIX
This renames the directory containing posix to unix; where applicable,
it also rename functions with the word "posix" to "unix"
2022-06-05 22:46:34 +02:00
bors
2eae474673 Auto merge of #2197 - RalfJung:round-robin, r=RalfJung
make Miri's scheduler proper round-robin

When thread N blocks or yields, we activate thread N+1 next, rather than always activating thread 0. This should guarantee that as long as all threads regularly yield, each thread eventually takes a step again.

Fixes the "multiple loops that yield playing ping-pong" part of https://github.com/rust-lang/miri/issues/1388.
`@cbeuw` I hope this doesn't screw up the scheduler-dependent tests you are adding in your PR.
2022-06-05 18:37:07 +00:00