Rollup of 12 pull requests#154637
Conversation
stabilizes `core::range::Range` stabilizes `core::range::RangeIter` stabilizes `std::range` which was missed in prior PRs Updates docs to reflect stabilization (removed "experimental") `RangeIter::remainder` is excluded from stabilization
…ethercote Take first task group for further execution Continuing from rust-lang#153768 (comment). I thought that storing a first group of tasks for immediate execution instead of pushing and immediately poping it from rayon's local task queue in par_slice would avoid overwhelming work stealing potentially blocking the original thread. So I've implemented this change. 8 threads benchmarks: <table><tr><td rowspan="2">Benchmark</td><td colspan="1"><b>baseline~~9</b></th><td colspan="2"><b>new~take-first-group~1</b></th></tr><tr><td align="right">Time</td><td align="right">Time</td><td align="right">%</th></tr><tr><td>🟣 <b>hyper</b>:check</td><td align="right">0.1110s</td><td align="right">0.1086s</td><td align="right">💚 -2.13%</td></tr><tr><td>🟣 <b>hyper</b>:check:initial</td><td align="right">0.1314s</td><td align="right">0.1298s</td><td align="right">💚 -1.23%</td></tr><tr><td>🟣 <b>hyper</b>:check:unchanged</td><td align="right">0.0771s</td><td align="right">0.0755s</td><td align="right">💚 -2.14%</td></tr><tr><td>🟣 <b>clap</b>:check</td><td align="right">0.3787s</td><td align="right">0.3757s</td><td align="right"> -0.80%</td></tr><tr><td>🟣 <b>clap</b>:check:initial</td><td align="right">0.4680s</td><td align="right">0.4564s</td><td align="right">💚 -2.48%</td></tr><tr><td>🟣 <b>clap</b>:check:unchanged</td><td align="right">0.2337s</td><td align="right">0.2301s</td><td align="right">💚 -1.52%</td></tr><tr><td>🟣 <b>syn</b>:check</td><td align="right">0.4321s</td><td align="right">0.4265s</td><td align="right">💚 -1.31%</td></tr><tr><td>🟣 <b>syn</b>:check:initial</td><td align="right">0.5586s</td><td align="right">0.5401s</td><td align="right">💚 -3.31%</td></tr><tr><td>🟣 <b>syn</b>:check:unchanged</td><td align="right">0.3434s</td><td align="right">0.3429s</td><td align="right"> -0.14%</td></tr><tr><td>🟣 <b>regex</b>:check</td><td align="right">0.2755s</td><td align="right">0.2661s</td><td align="right">💚 -3.40%</td></tr><tr><td>🟣 <b>regex</b>:check:initial</td><td align="right">0.3350s</td><td align="right">0.3347s</td><td align="right"> -0.11%</td></tr><tr><td>🟣 <b>regex</b>:check:unchanged</td><td align="right">0.1851s</td><td align="right">0.1832s</td><td align="right">💚 -1.01%</td></tr><tr><td>Total</td><td align="right">3.5296s</td><td align="right">3.4695s</td><td align="right">💚 -1.70%</td></tr><tr><td>Summary</td><td align="right">1.0000s</td><td align="right">0.9837s</td><td align="right">💚 -1.63%</td></tr></table>
…-clause-space, r=jackh726 Fix type alias where clause suggestion spacing issue Fixes rust-lang#153567
…k-Simulacrum Update flate2 users to use zlib-rs flate2 is looking to make zlib-rs the default. Go ahead and make build-manifest and rust-installer use it, to make sure it doesn't introduce any issues.
…eight, r=joshtriplett Fix AtomicPtr::update's cfg gate I'm *pretty* sure this is supposed to be `#[cfg(target_has_atomic = "ptr")]` like `AtomicPtr::try_update` is. cc @GrigorenkoPV (author), @Noratrieb (r+ to rust-lang#133829)
…gross35 stabilize new Range type and iterator For rust-lang#125687 Stabilizes `core::range::Range` and `core::range::RangeIter`, newly stable API: ```rust // in core::range pub struct Range<Idx> { pub start: Idx, pub end: Idx, } impl<Idx: fmt::Debug> fmt::Debug for Range<Idx> { /* ... */ } impl<Idx: PartialOrd<Idx>> Range<Idx> { pub const fn contains<U>(&self, item: &U) -> bool where Idx: [const] PartialOrd<U>, U: ?Sized + [const] PartialOrd<Idx>; pub const fn is_empty(&self) -> bool where Idx: [const] PartialOrd; } impl<Idx: Step> Range<Idx> { pub fn iter(&self) -> RangeIter<Idx>; } impl<T> const RangeBounds<T> for Range<T> { /* ... */ } impl<T> const RangeBounds<T> for Range<&T> { /* ... */ } impl<T> const From<Range<T>> for legacy::Range<T> { /* ... */ } impl<T> const From<legacy::Range<T>> for Range<T> { /* ... */ } pub struct RangeIter<A>(/* ... */); // `RangeIter::remainder` not stabilized impl<A: Step> Iterator for RangeIter<A> { type Item = A; /* ... */ } impl<A: Step> DoubleEndedIterator for RangeIter<A> { /* ... */ } impl<A: Step> FusedIterator for RangeIter<A> { } impl<A: Step> IntoIterator for Range<A> { type Item = A; type IntoIter = RangeIter<A>; /* ... */ } impl ExactSizeIterator for RangeIter<u8> { } impl ExactSizeIterator for RangeIter<i8> { } unsafe impl<T> const SliceIndex<[T]> for range::Range<usize> { type Output = [T]; /* ... */ } unsafe impl const SliceIndex<str> for range::Range<usize> { type Output = str; /* ... */ } ``` Updates docs to reflect stabilization (removed "experimental")
…r=jackh726 refactor: remove `Adjust::ReborrowPin` Followed by rust-lang#149130, this PR removes `Adjust::ReborrowPin` and use an `Adjust::Deref(DerefAdjustKind::Pin)` followed by an `Adjust::Borrow(AutoBorrow::Pin)` instead.
…o, r=jdonszelmann refactor: move doc(rust_logo) check to parser Reducing `check_attr.rs` size by moving the `#[doc(rust_logo)]` feature gate into `DocParser`.
…mease fix: guard paren-sugar pretty-printing on short trait args Fix rust-lang#153855 by adding a guard on trait with only one argument.
…lcnr Create `Ty` type alias in `rustc_type_ir` r? lcnr Anywhere that required the use of the trait `Ty` I used `ty::Ty<I>` otherwise it should be `Ty<I>`
…szelmann Split AttributeParserError Diagnostic implementation into subfunctions
misc test cleanups These are some mixed cleanups to `tests/ui` that individually seemed too small for a PR of their own. Some duplicated tests are removed, `issues-*` tests are renamed and more FIXMEs are added to `ui/README.md`. Reasoning for the deleted tests: * `tests/ui/associated-types/issue-47814.rs`: duplicate of `tests/ui/associated-consts/issue-47814.rs` * rename `tests/ui/closures/2229_closure_analysis/migrations/issue-78720.rs` to `.../nested-copy-drops-83176.rs` since rust-lang#78720 was not the correct issue, rust-lang#83176 was. * `tests/ui/specialization/defaultimpl/specialization-feature-gate-default.rs`: duplicate of `tests/ui/specialization/specialization-feature-gate-default.rs` * `fn/issue-1900.rs`: duplicate of `error-codes/E0131.rs` r? @Kivooeo
Add a test for a now fixed ICE with `offset_of!()` Adds a test for rust-lang#125805, which was an ICE with `offset_of!()` on a field with the type of a trait object missing `dyn` and a required lifetime parameter. Closes rust-lang#125805.
|
Trying commonly failed jobs |
This comment has been minimized.
This comment has been minimized.
Rollup of 12 pull requests 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
|
@bors r+ rollup=never |
|
@bors p=5 |
This comment has been minimized.
This comment has been minimized.
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 ba11b1e (parent) -> 0e95a0f (this PR) Test differencesShow 124 test diffsStage 1
Stage 2
Additionally, 102 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 0e95a0f4c677002a5d4ac5bc59d97885e6f51f71 --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 |
|
📌 Perf builds for each rolled up PR:
previous master: ba11b1e3f0 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Successful merges:
Adjust::ReborrowPin#151932 (refactor: removeAdjust::ReborrowPin)Tytype alias inrustc_type_ir#154270 (CreateTytype alias inrustc_type_ir)offset_of!()#154612 (Add a test for a now fixed ICE withoffset_of!())r? @ghost
Create a similar rollup