bors
c4dd3f4ef9
Auto merge of #2228 - cbeuw:futex-fix, r=RalfJung
...
Prevent futex_wait from actually waiting if a concurrent waker was executed before us
Fixes #2223
Two SC fences were placed in `futex_wake` (after the caller has changed `addr`), and in `futex_wait` (before we read `addr`). This guarantees that `futex_wait` sees the value written to `addr` before the last `futex_wake` call, should one exists, and avoid going into sleep with no one else to wake us up.
https://github.com/rust-lang/miri/blob/ada7b72a879d79aaa06f0a2a95edd520615da1a2/src/concurrency/weak_memory.rs#L324-L326
Earlier I proposed to use `fetch_add(0)` to read the latest value in MO, though this isn't the proper way to do it and breaks aliasing: syscall caller may pass in a `*const` from a `&` and Miri complains about write to a `SharedReadOnly` location, causing this test to fail.
https://github.com/rust-lang/miri/blob/ada7b72a879d79aaa06f0a2a95edd520615da1a2/tests/pass/concurrency/linux-futex.rs#L56-L68
2022-06-18 15:10:56 +00:00
Ralf Jung
737a5b3b98
tweak correctness comment
2022-06-18 07:59:46 -07:00
bors
c3a58f1a2d
Auto merge of #2239 - RalfJung:rustup, r=RalfJung
...
rustup
Cc https://github.com/rust-lang/rust/issues/98107
2022-06-18 14:50:15 +00:00
Ralf Jung
735e953853
rustup
2022-06-18 07:49:40 -07:00
bors
fa4e77c9fd
Auto merge of #2237 - RalfJung:ice, r=oli-obk
...
add ICE error level
Fixes https://github.com/rust-lang/miri/issues/2235
But I am not sure if anything else should be adjusted when adding a new error level...
2022-06-16 20:26:12 +00:00
bors
ab6f509ba7
Auto merge of #2236 - RalfJung:rustup, r=RalfJung
...
rustup
I feel like tests became a *lot* slower. I am not sure what is going on and don't have time to debug right now.
2022-06-16 18:18:39 +00:00
Ralf Jung
d194e9823c
rustup
2022-06-16 11:18:09 -07:00
Ralf Jung
e70c631a3b
add ICE error level
2022-06-16 11:03:39 -07:00
Andy Wang
807a19a50a
Elaborate correctness comments
2022-06-15 01:44:32 +01:00
Andy Wang
56a4c132b6
Reduce the number of iterations
2022-06-13 18:24:19 +01:00
bors
e7507d6720
Auto merge of #2207 - RalfJung:ui_test_parallelism, r=oli-obk
...
ui_test: ensure all worker threads stay around
Also organize files such that the by far slowest test (weak_memory/consistency) always starts first. It still finishes last on my system... even after I halved the iteration count.
Fixes https://github.com/rust-lang/miri/issues/2204
2022-06-13 16:08:54 +00:00
Oli Scherer
c16c45362c
Document file sorting
2022-06-13 09:08:14 -07:00
Ralf Jung
8ebdad0615
organize more files into folders, and run the weak-mem consistency test as the very first since it is so slow
2022-06-13 09:08:14 -07:00
Ralf Jung
a2cc014231
test files in a deterministic order
2022-06-13 09:07:02 -07:00
Ralf Jung
0648f03133
ensure all worker threads stay around
2022-06-13 09:07:02 -07:00
bors
4c1f50bf2b
Auto merge of #2232 - rust-lang:gesundheit, r=oli-obk
...
Always show stderr on test failure.
fixes #2224
I overengineered the original thing to the point where it became fragile. Let's just always print stderr, unless it was already printed
2022-06-13 13:44:16 +00:00
bors
9642534a33
Auto merge of #2179 - RalfJung:rustc, r=oli-obk
...
test ui output also in rustc test suite
`@oli-obk` when I just tried this locally (`./x.py test src/tools/miri --stage 0`), it worked fine. What differences had you seen before?
2022-06-13 13:13:29 +00:00
bors
2bbb70f584
Auto merge of #2203 - RalfJung:deprecate, r=oli-obk
...
deprecate -Zmiri-allow-uninit-numbers and -Zmiri-allow-ptr-int-transmute
Cc https://github.com/rust-lang/miri/issues/2187 https://github.com/rust-lang/miri/issues/2188
2022-06-13 10:23:42 +00:00
Oli Scherer
0689f36a55
Always show stderr on test failure.
2022-06-13 08:55:34 +00:00
bors
0a2a4b3742
Auto merge of #2230 - scottmcm:master, r=RalfJung
...
Add `#![feature(yeet_expr)]`
Hopefully enough for https://github.com/rust-lang/rust/issues/98036
2022-06-13 04:43:28 +00:00
Scott McMurray
238bbd63ab
Add #![feature(yeet_expr)]
2022-06-12 18:39:44 -07:00
bors
21399ff065
Auto merge of #2229 - DrMeepster:patch-1, r=RalfJung
...
Add cache location on windows to documentation
2022-06-13 01:06:22 +00:00
DrMeepster
286a30fb1d
correct the path
2022-06-12 12:10:13 -07:00
bors
03a05ae211
Auto merge of #2195 - RalfJung:vtable-validation, r=RalfJung
...
test for Stacked Borrows error during vtable validation
Fixes https://github.com/rust-lang/miri/issues/2123
Needs https://github.com/rust-lang/rust/pull/97761
2022-06-12 05:34:22 +00:00
Ralf Jung
6ed05d976e
bless
2022-06-11 22:34:01 -07:00
Ralf Jung
4ccd3f860a
tweak punctuation
2022-06-11 17:45:33 -07:00
Ralf Jung
d9f8312d9a
rustup
2022-06-11 17:42:53 -07:00
Ralf Jung
c3b8509654
rename ExperimentalUb → StackedBorrowsUb
2022-06-11 17:42:23 -07:00
Ralf Jung
069d8fdb71
test for Stacked Borrows error during vtable validation
2022-06-11 17:42:23 -07:00
bors
96ee9a0f52
Auto merge of #2226 - InfRandomness:unix-helpers, r=RalfJung
...
Add unix helpers
This creates unix helper(s)
2022-06-12 00:08:38 +00:00
DrMeepster
681cb88804
Add cache location on windows to documentation
2022-06-11 16:41:32 -07:00
Andy Wang
b6bcbf76fd
Prevent futex_wait from reading outdated value
2022-06-11 20:45:45 +01:00
infrandomness
bc27fbb2f7
Add assert_target_os_is_unix function
2022-06-11 18:50:36 +02:00
infrandomness
58d00aa642
Add target_os_is_unix helper
2022-06-11 18:45:53 +02:00
bors
ada7b72a87
Auto merge of #2227 - RalfJung:doc, r=RalfJung
...
make some rustdoc comments more readable
2022-06-11 15:50:11 +00:00
bors
c5f7a7d27a
Auto merge of #2215 - InfRandomness:getpid_shim, r=RalfJung
...
Getpid shim
2022-06-11 15:25:26 +00:00
Ralf Jung
5f1ba4432b
make some rustdoc comments more readable
2022-06-11 08:03:54 -07:00
bors
7656fc45cf
Auto merge of #2222 - InfRandomness:cargo-docs, r=RalfJung
...
Add mandatory cargo_doc
2022-06-11 15:02:55 +00:00
InfRandomness
3e03054ef0
Add getpid shim
2022-06-11 11:28:50 +02:00
infrandomness
eaa1e444eb
Add mandatory cargo_doc
...
Co-authored-by: Joshua Nelson <github@jyn.dev >
2022-06-11 10:59:57 +02:00
bors
31da2d9f61
Auto merge of #2225 - RalfJung:frame-in-std-inlined, r=RalfJung
...
make frame_in_std check work with inlining
`@InfRandomness` this should help with your trouble in https://github.com/rust-lang/miri/pull/2215
2022-06-11 03:27:13 +00:00
Ralf Jung
4da48e06c7
make frame_in_std check work with inlining
2022-06-10 20:25:58 -07:00
bors
32a7580b05
Auto merge of #2219 - saethlin:more-benchmarks, r=RalfJung
...
Add more bench-cargo-miri programs
These example programs are derived from long-running (>15 minutes) tests in the test suites of highly-downloaded crates (if I have my way, that runtime will not be correct for long). They should serve as realistic but also somewhat pathological workloads for the interpreter.
The unicode program stresses the code which looks for adjacent and equal stacks to merge them.
The backtraces program has an uncommonly large working set of borrow tags per borrow stack.
This also updates the .gitignore to ignore files commonly emitted in the course of using these benchmark programs.
---
The benchmark programs are so-named to avoid confusingly duplicating the names of the crates they are benchmarking. Is that a good idea? I started doing this so that I could use `cargo add` but now I'm not entirely sold on the names.
2022-06-09 14:20:42 +00:00
Ben Kimock
8a40e2e9e3
Add more bench-cargo-miri programs
...
These example programs are derived from long-running (>15 minutes) tests
in the test suites of highly-downloaded crates. They should serve as
realistic but also somewhat pathological workloads for the interpreter.
The unicode program stresses the code which looks for adjacent and equal
stacks to merge them.
The backtrace program has an uncommonly large working set of borrow tags
per borrow stack.
This also updates the .gitignore to ignore files commonly emitted in the
course of using these benchmark programs.
2022-06-08 21:35:02 -04:00
bors
4d6eca1c08
Auto merge of #2218 - Nilstrieb:faster-tag-partial-eq, r=RalfJung
...
Optimize `SbTag::eq`
The code before generated really bad code with a branch.
This nudges LLVM towards being smarter and simply comparing
the integers.
See https://github.com/rust-lang/miri/pull/2214#issuecomment-1150124617
2022-06-08 17:34:16 +00:00
Nilstrieb
93db9a6d71
Add comment to explain manual optimization
2022-06-08 19:29:54 +02:00
Nilstrieb
c01bf62ee4
Allow clippy::derive_hash_xor_eq
2022-06-08 18:43:12 +02:00
Nilstrieb
956a84bfe0
Optimize SbTag::eq
...
The code before generated really bad code with a branch.
This nudges LLVM towards being smarter and simply comparing
the integers.
2022-06-08 18:22:48 +02:00
bors
5a76e9f6de
Auto merge of #2217 - RalfJung:rustup, r=RalfJung
...
rustup
2022-06-08 16:12:50 +00:00
Ralf Jung
657386cc91
rustup
2022-06-08 12:10:54 -04:00