about summary refs log tree commit diff
path: root/src/tools/miri
AgeCommit message (Collapse)AuthorLines
2024-05-28Preparing for merge from rustcThe Miri Cronjob Bot-1/+1
2024-05-27miri: avoid making a full copy of all new allocationsRalf Jung-37/+19
2024-05-27Rollup merge of #125616 - RalfJung:mir-validate-downcast-projection, ↵Matthias Krüger-1/+1
r=compiler-errors MIR validation: ensure that downcast projection is followed by field projection Cc https://github.com/rust-lang/rust/issues/120369
2024-05-27also add type aliases for the pointer typesRalf Jung-148/+105
2024-05-27avoid repeating the Provenance parameter everywhereRalf Jung-709/+585
2024-05-27fmtRalf Jung-54/+16
2024-05-27Merge from rustcRalf Jung-505/+458
2024-05-27Preparing for merge from rustcRalf Jung-1/+1
2024-05-27MIR validation: ensure that downcast projection is followed by field projectionRalf Jung-1/+1
2024-05-27interpret: get rid of 'mir lifetime everywhereRalf Jung-493/+440
2024-05-27interpret: the MIR is actually at lifetime 'tcxRalf Jung-23/+29
2024-05-26Auto merge of #3634 - RalfJung:macro_use, r=RalfJungbors-11/+13
avoid using macro_use This is the Miri version of https://github.com/rust-lang/rust/pull/124914
2024-05-26avoid using macro_useRalf Jung-11/+13
2024-05-26Auto merge of #3629 - devnexen:illumos_num_cpus, r=RalfJungbors-2/+32
solarish platform: add support for available-parallelism.
2024-05-26reorder codeRalf Jung-1/+1
2024-05-26solarish platform add supports for available-parallelism.David Carlier-2/+32
2024-05-26Auto merge of #3631 - RalfJung:blocking-refactor, r=RalfJungbors-1043/+951
completely refactor how we manage blocking and unblocking threads This hides a lot of invariants from the implementation of the synchronization primitives, and makes sure we never have to release or acquire a vector clock on another thread but the active one.
2024-05-26add a macro to declare thread unblock callbacksRalf Jung-249/+256
2024-05-26Auto merge of #3632 - RalfJung:readdir, r=RalfJungbors-35/+33
unix/fs: a bit of cleanup in macos_fbsd_readdir_r
2024-05-26unix/fs: a bit of cleanup in macos_fbsd_readdir_rRalf Jung-35/+33
2024-05-26fix './miri run --dep --target _'Ralf Jung-1/+7
2024-05-26data_race: vector indices can be reused immediately when the thread is goneRalf Jung-82/+37
2024-05-26completely refactor how we manage blocking and unblocking threadsRalf Jung-895/+832
2024-05-26make release_clock always work on the current threadRalf Jung-106/+115
2024-05-25Merge from rustcThe Miri Cronjob Bot-1/+1
2024-05-25Preparing for merge from rustcThe Miri Cronjob Bot-1/+1
2024-05-24miri: receive the blessings of validate.rsJubilee Young-1/+1
2024-05-24Auto merge of #3626 - devnexen:pthread_name_illumos, r=oli-obkbors-5/+34
solaris add support for threadname. from std::unix::thread::set_name, pthread_setname_np is a weak symbol (not always had been available). Other than that, similar to linux only having twice of its buffer limit.
2024-05-24Auto merge of #3625 - Strophox:miri-allocation-fix, r=RalfJungbors-23/+24
Bugfix `MiriAllocBytes` to guarantee different addresses Fix in `alloc_bytes.rs` following https://github.com/rust-lang/miri/pull/3526 Currently when an allocation of `size == 0` is requested we return a `std::ptr::without_provenance_mut(align)`, but this means returned `ptr`s may overlap, which breaks things.
2024-05-24extend commentsRalf Jung-2/+3
2024-05-24Auto merge of #3628 - RalfJung:tokio, r=RalfJungbors-1/+13
add back some tokio features Turns out I went a bit too fer when I removed features, so `socketpair` was no longer used.
2024-05-24add back some tokio featuresRalf Jung-1/+13
2024-05-24fmtThe Miri Cronjob Bot-2/+7
2024-05-24Merge from rustcThe Miri Cronjob Bot-92/+90
2024-05-24Preparing for merge from rustcThe Miri Cronjob Bot-1/+1
2024-05-23solaris add suport for threadname.David Carlier-5/+34
from std::unix::thread::set_name, pthread_setname_np is a weak symbol (not always had been available). Other than that, similar to linux only having twice of its buffer limit.
2024-05-23differentiate between layout and alloc_layoutStrophox-10/+18
2024-05-23fix alloc_bytes (always allocate at least 1B)Strophox-23/+15
2024-05-23Rollup merge of #124976 - petrochenkov:usedcrates, r=oli-obkMatthias Krüger-2/+2
rustc: Use `tcx.used_crates(())` more And explain when it should be used. Addresses comments from https://github.com/rust-lang/rust/pull/121167.
2024-05-23fmtThe Miri Cronjob Bot-4/+1
2024-05-23Merge from rustcThe Miri Cronjob Bot-345/+82
2024-05-23Preparing for merge from rustcThe Miri Cronjob Bot-1/+1
2024-05-23Auto merge of #125359 - RalfJung:interpret-overflowing-ops, r=oli-obkbors-90/+88
interpret: make overflowing binops just normal binops Follow-up to https://github.com/rust-lang/rust/pull/125173 (Cc `@scottmcm)`
2024-05-22Rollup merge of #124896 - RalfJung:miri-intrinsic-fallback, r=oli-obkLeón Orell Valerian Liehr-18/+18
miri: rename intrinsic_fallback_checks_ub to intrinsic_fallback_is_spec Checking UB is not the only concern, we also have to make sure we are not losing out on non-determinism. r? ``@oli-obk`` (not urgent, take your time)
2024-05-22solaris/illumos localtime_r / clock_getime support enabled.David Carlier-29/+44
clock_gettime support CLOCK_REALTIME/CLOCK_MONOTONIC clockid_t. localtime_r is supported only tm struct is more limited than other supported platforms.
2024-05-22rustc: Use `tcx.used_crates(())` moreVadim Petrochenkov-2/+2
And explain when it should be used.
2024-05-22Auto merge of #117329 - RalfJung:offset-by-zero, r=oli-obk,scottmcmbors-327/+64
offset: allow zero-byte offset on arbitrary pointers As per prior `@rust-lang/opsem` [discussion](https://github.com/rust-lang/opsem-team/issues/10) and [FCP](https://github.com/rust-lang/unsafe-code-guidelines/issues/472#issuecomment-1793409130): - Zero-sized reads and writes are allowed on all sufficiently aligned pointers, including the null pointer - Inbounds-offset-by-zero is allowed on all pointers, including the null pointer - `offset_from` on two pointers derived from the same allocation is always allowed when they have the same address This removes surprising UB (in particular, even C++ allows "nullptr + 0", which we currently disallow), and it brings us one step closer to an important theoretical property for our semantics ("provenance monotonicity": if operations are valid on bytes without provenance, then adding provenance can't make them invalid). The minimum LLVM we require (v17) includes https://reviews.llvm.org/D154051, so we can finally implement this. The `offset_from` change is needed to maintain the equivalence with `offset`: if `let ptr2 = ptr1.offset(N)` is well-defined, then `ptr2.offset_from(ptr1)` should be well-defined and return N. Now consider the case where N is 0 and `ptr1` dangles: we want to still allow offset_from here. I think we should change offset_from further, but that's a separate discussion. Fixes https://github.com/rust-lang/rust/issues/65108 [Tracking issue](https://github.com/rust-lang/rust/issues/117945) | [T-lang summary](https://github.com/rust-lang/rust/pull/117329#issuecomment-1951981106) Cc `@nikic`
2024-05-22clippyRalf Jung-8/+10
2024-05-22Merge from rustcRalf Jung-20/+37
2024-05-22Preparing for merge from rustcRalf Jung-1/+1