Rollup of 7 pull requests#155567
Conversation
Co-authored-by: Amit Singhmar <abhay.singhmar2@gmail.com>
The "ExecutionGraph" GenMC folder has been renamed to "Execution", and there is a GenMC class named ExecutionState. This commit adjust the include paths in some cpp files, and renames an enum in lib.rs (ExecutionState->ExecutionStatus).
The new parameter allows to step the event index by an arbitrary amount. The functions now return void. This is a preparatory commit that lays the ground before adjusting all API calls to match the new GenMC API. The code does not compile.
Another preparatory commit before API adjustment.
This commit adds a new result type for malloc (preparatory).
In the newer GenMC version, two RMWs might read from the same write during an exploration. In such a case, the exploration has to be dropped so that an alternative one can be explored. Miri did not provide a way to completely stop an execution without throwing an error. This commit adds a new TerminationInfo case in diagnostics that is used by GenMC to signal that an execution should be aborted. On the API side, a new result field is introduced.
…ocking Add support for non-blocking TCP sockets and operations
- Fixes API calls to existing GenMC functions, which now
return the number by which event_count should be increased
- Properly handles "Invalid" results (where applicable)
- Introduces handle_non_atomic_{store,load} in Miri and
ensures they call their GenMC counterparts.
- Adds NA handlers in Miri's GenmcCtx, and renames the previous
handle_{load,store} to handle_atomic_{load,store}.
- Removes handle_load_reset_if_none, the only purpose of which
was to decrease the event counter.
- Removes dec_pos(), which is now also unnecessary.
BUG_ON() no longer exists in GenMC.
GenMC no longer relies on interpreter callbacks. It collects all information it needs for both exploration and error-reporting dynamically.
Necessary for GenMC to build. Makes exploration much faster since NAs are not explicitly tracked.
The difference is caused by the different order in which GenMC explores executions, and the new error-detection mechanism.
GenMC: Fixes and improved non-atomic handling
Example
---
```rust
fn foo() {
let mut arr = [1i32];
$0arr[0] = 3;$0
let _ = arr;
}
```
**Before this PR**
```rust
fn foo() {
let mut arr = [1i32];
fun_name(&mut arr);
let _ = arr;
}
fn $0fun_name(arr: &mut [i32; 1]) {
*arr[0] = 3;
}
```
**After this PR**
```rust
fn foo() {
let mut arr = [1i32];
fun_name(&mut arr);
let _ = arr;
}
fn $0fun_name(arr: &mut [i32; 1]) {
arr[0] = 3;
}
```
…ent-index fix: no deref index-expr for extract_function
I chose the order of mut restrictions to be `unsafe mut(...)` for unsafe fields, but it's undecided yet.
`rust-analyzer` subtree update Subtree update of `rust-analyzer` to rust-lang/rust-analyzer@cc5bc48. Created using https://github.com/rust-lang/josh-sync. r? @ghost
…ed-closure-return, r=petrochenkov Suggest returning a reference for unsized place from a closure Fixes rust-lang#152064 There are 3 similar note: `the size for values of type str cannot be known at compilation time` for different spans, maybe need more work to remove some of them. This PR only adds a suggestion for using a reference.
Simplify macros for target-modifier and mitigation flags - Rebased and revised version of rust-lang#154501. --- The macros used for handling command-line flags that are “target modifiers” or “mitigations” are quite complicated, and can be significantly simplified by tweaking their syntax and by making use of `${ignore(..)}` metavars. It's possible that more code could be moved out of macros (e.g. declaring some of the enums by hand), but that can be investigated in a potential follow-up. There should be no change to compiler behaviour.
miri subtree update Subtree update of `miri` to rust-lang/miri@16dd940. Created using https://github.com/rust-lang/josh-sync. r? @ghost
…tern, r=ehuss tests/ui/extern: add annotations for reference rules
Make reparsed guard metavars collect tokens This should avoid missing tokens. Closes rust-lang#155333
…d, r=JonathanBrouwer Remove `AttributeLintKind` variants - part 4 Part of rust-lang#153099. r? @JonathanBrouwer
This comment has been minimized.
This comment has been minimized.
Rollup of 7 pull requests try-job: dist-various-1 try-job: test-various try-job: x86_64-gnu-aux try-job: x86_64-gnu-llvm-21-3 try-job: x86_64-msvc-1 try-job: aarch64-apple try-job: x86_64-mingw-1 try-job: i686-msvc-2
This comment has been minimized.
This comment has been minimized.
|
📌 Perf builds for each rolled up PR:
previous master: c28e303778 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing c28e303 (parent) -> 66da6ca (this PR) Test differencesShow 74 test diffsStage 0
Stage 1
Stage 2
Additionally, 14 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 66da6cae1a6f12e9585493ab8f8f19cf753091fd --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (66da6ca): comparison URL. Overall result: ❌ regressions - no action needed@rustbot label: -perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)This perf run didn't have relevant results for this metric. CyclesThis perf run didn't have relevant results for this metric. Binary sizeResults (secondary 0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 491.853s -> 496.86s (1.02%) |
Successful merges:
rust-analyzersubtree update #155556 (rust-analyzersubtree update)AttributeLintKindvariants - part 4 #155560 (RemoveAttributeLintKindvariants - part 4)r? @ghost
Create a similar rollup