Commit Graph

5069 Commits

Author SHA1 Message Date
bors
a2fa80d277 Auto merge of #1641 - JCTyblaidd:update_release_sequences, r=RalfJung
Weaken release sequences to match the C++20 memory model

See [Weaken Release Sequences](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0982r1.html), since the exception for relaxed writes on the same thread as a release write not blocking release sequences was removed in the C++20 memory model compared to the C11 memory model the paper was based on. The implementation can be updated and simplified to match this.  [Rust is currently specified to use the C++20 memory model](https://doc.rust-lang.org/std/sync/atomic/index.html).
2020-12-06 19:12:16 +00:00
JCTyblaidd
6db821537f
Fix caps
Co-authored-by: Ralf Jung <post@ralfj.de>
2020-12-06 17:59:49 +00:00
JCTyBlaidd
a6f377e48e Fix typo 2020-12-06 17:11:24 +00:00
JCTyBlaidd
4cf614ef33 Update release sequence handling to C++20 semantics. 2020-12-06 16:58:32 +00:00
bors
d6a2623b4e Auto merge of #1640 - RalfJung:readme, r=RalfJung
readme: mention data races

and mention cross-interpretation already in the intro
2020-12-05 11:16:41 +00:00
Ralf Jung
7fb012fdb2 readme: mention data races, and mention cross-interpretation already in the intro 2020-12-05 12:14:52 +01:00
bors
e54c5db4f0 Auto merge of #1639 - m-ou-se:allocator, r=RalfJung
Update to new core::alloc::Allocator interface

This fixes the allocator test for the changes made to the allocator trait in `core` in https://github.com/rust-lang/rust/pull/79286

See https://github.com/rust-lang/rust/issues/79709
2020-12-05 08:35:56 +00:00
Mara Bos
de5b26d7f0 Use new std::alloc::Allocator interface.
This was changed in core.
2020-12-05 00:13:33 +01:00
bors
47acece7aa Auto merge of #1636 - RalfJung:rustup, r=oli-obk
remove miri-rustc-tests

`@oli-obk` I am not sure if anyone used this program in the last few years. There are no instructions for how to use it. So I think keeping it working is just a waste of time. It now fails to build:
```
error[E0046]: not all trait items implemented, missing: `visit_foreign_item`
  --> src/bin/miri-rustc-tests.rs:36:17
   |
36 |                 impl<'tcx, 'hir> itemlikevisit::ItemLikeVisitor<'hir> for Visitor<'tcx> {
   |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `visit_foreign_item` in implementation
```
So I propose instead of me trying to figure out how to fix this, we just drop this ancient code.
2020-11-30 11:40:43 +00:00
bors
c53d4518a9 Auto merge of #1635 - RalfJung:readme, r=oli-obk
update README

Data races are detected now, but also the amount of non-determinism went way up so reword that point.
2020-11-30 11:15:38 +00:00
Ralf Jung
6145709bfc remove miri-rustc-tests 2020-11-29 21:00:50 +01:00
Ralf Jung
d697de7538 update README 2020-11-29 20:54:56 +01:00
bors
d473242ecd Auto merge of #1617 - JCTyblaidd:data_race_detector, r=RalfJung
Add simple data-race detector

Partially fixes data-race detection, see #1372, based on Dynamic Race Detection for C++11

- This does not explore weak memory behaviour, only exploring one sequentially consistent ordering.
- Data-race detection is only enabled after the first thread is created, so should have minimal overhead for non-concurrent execution.
- ~~Does not attempt to re-use thread id's so creating and joining threads lots of time in an execution will result in the vector clocks growing in size and slowing down program execution~~ It does now
2020-11-29 18:44:28 +00:00
Ralf Jung
cbb695f782
fix some typos 2020-11-29 19:43:44 +01:00
JCTyBlaidd
6c5722933e Fix typos - looked into the papers handling of timestamps, after looking into it again, it seems the paper only increments the timestamp after release operations, so changed to approximation of that implementation. 2020-11-28 17:17:07 +00:00
JCTyBlaidd
55fc552d99 Apply review changes, incrementing the clocks twice is an unnecessary hold-over from earlier versions so fixed. 2020-11-27 19:26:06 +00:00
JCTyBlaidd
3268f56a97 Fix review changes 2020-11-22 17:28:12 +00:00
bors
ce031b4e8e Auto merge of #1633 - RalfJung:rustup, r=RalfJung
rustup; test sorting for provenance-correctness
2020-11-22 17:10:05 +00:00
Ralf Jung
7a2c2f8dde rustup; test sorting for provenance-correctness 2020-11-22 18:08:57 +01:00
bors
746ea5b141 Auto merge of #1632 - RalfJung:rustup, r=RalfJung
rustup

fix statx
2020-11-20 13:08:30 +00:00
Ralf Jung
697f6e36bd rustup 2020-11-20 14:07:52 +01:00
bors
c8f51fc5a7 Auto merge of #1630 - RalfJung:rustup, r=RalfJung
Rustup

Includes https://github.com/rust-lang/miri/pull/1626 and https://github.com/rust-lang/miri/pull/1629.
2020-11-19 08:39:37 +00:00
Ralf Jung
517728bf97 avoid fallback logic (and we do not need the flag value currently anyway) 2020-11-19 09:36:33 +01:00
Mara Bos
cdb7adb4b3 Make weak syscalls in std work.
std now looks up `getrandom` and `statx` with `dlsym` before attempting
to use `syscall(SYS_.., ..)`.

It also now passes all arguments as a machine-sized word, instead of
their original types.
2020-11-19 09:34:46 +01:00
est31
4de113acba Normalize column numbers 2020-11-19 09:21:11 +01:00
Ralf Jung
a37cfed062 rustup 2020-11-19 09:21:03 +01:00
JCTyBlaidd
0b0264fc82 Run rustfmt on vector_clock.rs and data_race.rs 2020-11-15 20:19:34 +00:00
JCTyBlaidd
a3b7839bbd Add comment regarding seq-cst ordering & add test for disabling the data-race detector. 2020-11-15 20:12:58 +00:00
JCTyBlaidd
4a1f7ac1f1 Convert extra benchmark program into cfg option. 2020-11-15 19:50:38 +00:00
JCTyBlaidd
69fb6413dd Tidy up comments and function layout, should fix most of the review notes. 2020-11-15 18:30:26 +00:00
bors
1499c5a4d9 Auto merge of #1624 - RalfJung:rustup, r=RalfJung
rustup; less strict timing tests
2020-11-12 15:51:10 +00:00
Ralf Jung
915d091973 rustup; less strict timing tests 2020-11-12 16:50:24 +01:00
bors
df4109151b Auto merge of #1623 - RalfJung:rustup, r=RalfJung
rustup
2020-11-11 09:34:41 +00:00
Ralf Jung
43673d9a87 rustup 2020-11-11 10:29:10 +01:00
bors
0459f0be9e Auto merge of #1621 - RalfJung:rustup, r=RalfJung
Rustup; test btreemap with raw ptr tracking
2020-11-10 15:53:31 +00:00
Ralf Jung
df0de77fd1 test btreemap with raw ptr tracking 2020-11-10 16:51:55 +01:00
Ralf Jung
db718d72ae remove some unnecessary feature flags 2020-11-10 16:51:07 +01:00
Ralf Jung
737ecef376 rustup and update test 2020-11-10 16:47:56 +01:00
bors
66a58d43cc Auto merge of #1615 - jyn514:contributing-instructions, r=RalfJung
Improve contributing instructions

This builds on the changes from https://github.com/rust-lang/miri/pull/1612 and should not be merged before.

- Fix incorrect comment
- Recommend `x.py setup` over manually editing config.toml
- Link to rustc-dev-guide
2020-11-07 23:42:21 +00:00
Joshua Nelson
43ce2c2844 Improve contributing instructions
- Fix incorrect comment
- Recommend `x.py setup` over manually editing config.toml
- Link to rustc-dev-guide
2020-11-07 15:37:20 -05:00
bors
85a9a43bef Auto merge of #1612 - camelid:patch-1, r=RalfJung
CONTRIBUTING.md: Use `build --stage 1` instead of `build --stage 2`

It seems to work fine with `--stage 1` and it should be faster.

Cc #1610
Cc `@jyn514`
2020-11-07 20:12:16 +00:00
Camelid
6a475c3ddf
CONTRIBUTING.md: Update comment
Co-authored-by: Ralf Jung <post@ralfj.de>
2020-11-07 11:26:41 -08:00
bors
a5c2211ada Auto merge of #1620 - RalfJung:overflow, r=RalfJung
enable overflow checks in the standard library
2020-11-07 14:58:41 +00:00
Ralf Jung
330ec0acdb enable overflow checks in the standard library 2020-11-07 15:56:25 +01:00
JCTyBlaidd
2a40d9b7a0 More aggressive vector index re-use, and added some tests. 2020-11-06 17:29:54 +00:00
bors
30e0c303a0 Auto merge of #1619 - RalfJung:rustup, r=RalfJung
rustup
2020-11-05 16:10:13 +00:00
Ralf Jung
f31f00d5af rustup 2020-11-05 17:09:44 +01:00
JCTyBlaidd
c70bbea257 Move to use of thread termination hook for vector re-use,
convert validate atomic op to use shared reference and get_raw
 instead of get_raw_mut so it can be used for validate_atomic_load as well
2020-11-05 14:18:28 +00:00
JCTyBlaidd
9cb6b8da3f Split out vector_clock to separate file, general tidy up of some of the
code & add support for vector index re-use for multiple threads
 after termination.
2020-11-05 03:54:39 +00:00
JCTyBlaidd
95c99b2044 Detect races between atomic and non-atomic accesses of a variable,
previously only data races between two non-atomic accesses were
 detected.
2020-11-04 21:35:48 +00:00