-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Rollup of 4 pull requests #123264
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 4 pull requests #123264
Conversation
…lfJung we have to ignore RUSTC_WORKSPACE_WRAPPER as well This matches what we do with RUSTC_WRAPPER.
cargo-miri, miri-script, tests/ui: misc simplifications and comments Parts of rust-lang/miri#3411 that can be landed now.
Rustup rust-lang#123081 landed so hopefully this works now.
There should never be an `Active` but not initialized node in the borrow tree. If such a node exists, and if it has a protector, then on a foreign read, it could become disabled. This leads to some problems when formally proving that read-reordering optimizations are sound. The root node is the only node for which this can happen, since all other nodes can only become `Active` when actually used. But special- casing the root node here is annoying to reason about, everything becomes much nicer if we can simply say that *all* `Active` nodes must be initialized. This requires making the root node default- initialized. This is also more intuitive, since the root arguably becomes ini- tialized during the allocation, which can be considered a write.
…d-root, r=RalfJung Tree Borrows: Make tree root always be initialized This PR fixes a slight annoyance we discovered while formally proving that certain optimizations are sound with Tree Borrows. In particular... (copied from the commit message): There should never be an `Active` but not initialized node in the borrow tree. If such a node exists, and if it has a protector, then on a foreign read, it could become disabled. This leads to some problems when formally proving that read moving optimizations are sound. The root node is the only node for which this can happen, since all other nodes can only become `Active` when actually used. But special-casing the root node here is annoying to reason about, everything becomes much nicer if we can simply say that *all* `Active` nodes must be initialized. This requires making the root node default-initialized. This is also more intuitive, since the root arguably becomes initialized during the allocation, which can be considered a write.
add eyre to test-cargo-miri Same as anyhow: custom build probe, widely used.
avoid mutating the global environment `remove_var` is just as bad as `set_var`, let's not do that.
and remove serde_derive, since the --extern .so file was really just a consequence of building a proc macro
test-cargo-miri: add proc-macro2 This is already in the dependency tree of `serde_derive`, but I guess there is is a host dependency, here it is a target dependency. The logic is presumably the same as in anyhow, so we don't need both; let's test the one that is more widely used.
Automatic Rustup
Automatic Rustup
make some doc comments not doc tests `./miri test --doc` will run doctests even if we have them disabled (that's a cargo quirk: rust-lang/cargo#13668). This fixes that command to not fail.
run GC stress test only for host tests I suspect these are a significant contributor to our Linux CI job being by far the slowest currently. Let's see. We have Linux, Windows, and macOS hosts so all major OSes are still covered.
…ency, r=RalfJung cotrol stacked borrows consistency check with its own feature flag Fixes rust-lang/miri#3431
Automatic Rustup
Log BOLT args in bootstrap `rustc` shim Before, the BOLT argument would not be logged, because it was only added after the logging has happened. Found by `@RalfJung` [here](rust-lang#116352 (comment)).
Stop calling visitors `V` Renames some visitors which currently have the unhelpful name of `V`. It's not self-documenting, and there is no situation where saving a few bytes in source code helps anyone. Stacked on top of rust-lang#123202 due to conflict.
…indices, r=compiler-errors pattern analysis: Require enum indices to be contiguous We had a cfg-hack to allow rust-analyzer to use non-contiguous indices for its enum variants. Unfortunately this no longer works if r-a uses the in-tree version of the crate. This PR removes the hack, and on the r-a side we'll have to use contiguous indices but that's not too hard. r? `@compiler-errors`
Miri subtree update r? `@ghost`
@bors r+ rollup=never p=4 |
☀️ Test successful - checks-actions |
📌 Perf builds for each rolled up PR:
previous master: 688c30dc9f In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Finished benchmarking commit (395f780): comparison URL. Overall result: ✅ improvements - no action needed@rustbot label: -perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 669.42s -> 668.134s (-0.19%) |
Successful merges:
rustc
shim #123189 (Log BOLT args in bootstraprustc
shim)V
#123211 (Stop calling visitorsV
)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup