Skip to content

Conversation

@jhpratt
Copy link
Member

@jhpratt jhpratt commented Jan 2, 2026

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

daxpedda and others added 7 commits December 16, 2025 22:39
It allows to get rid of `AmbiguityErrorMisc` and `Flags`.
Added a `# Panics` section to `Iterator::last` to match `Iterator::count`, after the change made in Rust 1.92.0 where now `std::iter::Repeat` panics in these methods instead of doing an infinite `loop`.

Cites rust-lang#149707
…erimental-arch, r=nnethercote

Make `asm_experimental_arch` work in `allow_internal_unstable` macros

This change makes it possible to use unstable `asm!`, usually requiring `feature(asm_experimental_arch)`, in proc-macros with the `allow_internal_unstable` attribute.

The test was added on a target where `asm!` is unstable: Wasm. However, this affects *any* target with an unstable `asm!` implementation.
resolve: Preserve binding scopes in ambiguity errors

It allows to get rid of `AmbiguityErrorMisc`, `Flags` and `extern_prelude_flag_binding`.

Also keep all encountered bindings in `resolve_ident_in_scope_set`, it allows to get rid of `extern_prelude_item_binding`.

This also unblocks rust-lang#149681 because the newly preserved data will help to fix the regressions in rust-lang#149681 (comment) in a reasonable way.
Document `panic!` in `Iterator::last` for rust-lang#149707

This PR adds a section `# Panics` to the method `Iterator::last` equal to the section `# Panics` of the method `Iterator::count`, because now, after the changes made in Rust 1.92.0, both methods in `std::iter::Repeat` panics instead of doing an infinite loop.

`Iterator::count` already has documentation for this behavior ("This function might panic if the iterator has more than `usize::MAX` elements."), but `Iterator::last` does not. This PR adds documentation for this panic in the same way as `Iterator::count` does.

Issue: rust-lang#149707
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Jan 2, 2026
@jhpratt
Copy link
Member Author

jhpratt commented Jan 2, 2026

@bors r+ rollup=never p=3

@bors
Copy link
Collaborator

bors commented Jan 2, 2026

📌 Commit 9c5bdbd has been approved by jhpratt

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 2, 2026
@bors
Copy link
Collaborator

bors commented Jan 2, 2026

⌛ Testing commit 9c5bdbd with merge 1b43252...

@bors
Copy link
Collaborator

bors commented Jan 2, 2026

☀️ Test successful - checks-actions
Approved by: jhpratt
Pushing 1b43252 to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jan 2, 2026
@bors bors merged commit 1b43252 into rust-lang:main Jan 2, 2026
12 checks passed
@rustbot rustbot added this to the 1.94.0 milestone Jan 2, 2026
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#150073 Make asm_experimental_arch work in `allow_internal_unstab… 02340827895864c97a9028531946cbec54cc60a6 (link)
#150445 resolve: Preserve binding scopes in ambiguity errors 85f8996116ce925a3b58392fb9eac9f82d4ec869 (link)
#150580 Document panic! in Iterator::last for #149707 b32c51490e1aab436a16d7a8938f3e6b96e36412 (link)

previous master: a47f4dfd7f

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@github-actions
Copy link
Contributor

github-actions bot commented Jan 2, 2026

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 a47f4df (parent) -> 1b43252 (this PR)

Test differences

Show 588 test diffs

Stage 1

  • [ui] tests/ui/internal/internal-unstable-asm-experimental-arch.rs: [missing] -> ignore (only executed when the target is wasm32-wasip1) (J0)

Stage 2

  • [ui] tests/ui/internal/internal-unstable-asm-experimental-arch.rs: [missing] -> ignore (only executed when the target is wasm32-wasip1) (J1)

Additionally, 586 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 1b4325211c3228dd10eea12e9b3f749f87363d95 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-x86_64-apple: 6896.7s -> 8694.5s (+26.1%)
  2. x86_64-gnu-gcc: 3416.3s -> 2770.4s (-18.9%)
  3. aarch64-gnu-llvm-20-2: 3196.4s -> 2775.3s (-13.2%)
  4. pr-check-1: 1934.7s -> 1691.7s (-12.6%)
  5. i686-gnu-nopt-1: 8069.4s -> 7122.5s (-11.7%)
  6. i686-gnu-2: 5946.0s -> 5302.3s (-10.8%)
  7. i686-gnu-1: 8162.1s -> 7394.5s (-9.4%)
  8. aarch64-gnu: 7243.4s -> 7875.4s (+8.7%)
  9. x86_64-gnu-miri: 4954.8s -> 4556.7s (-8.0%)
  10. aarch64-gnu-debug: 4293.2s -> 3955.5s (-7.9%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@jhpratt jhpratt deleted the rollup-3mal3wc branch January 2, 2026 09:03
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (1b43252): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.2% [0.2%, 0.2%] 1
Regressions ❌
(secondary)
0.1% [0.1%, 0.2%] 2
Improvements ✅
(primary)
-0.1% [-0.2%, -0.1%] 4
Improvements ✅
(secondary)
-0.7% [-1.8%, -0.1%] 3
All ❌✅ (primary) -0.1% [-0.2%, 0.2%] 5

Max RSS (memory usage)

Results (primary 0.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
1.5% [1.1%, 1.9%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.2% [-2.2%, -2.2%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.3% [-2.2%, 1.9%] 3

Cycles

Results (primary 0.5%, secondary -2.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.6% [2.6%, 2.6%] 1
Regressions ❌
(secondary)
2.6% [2.6%, 2.6%] 1
Improvements ✅
(primary)
-1.7% [-1.7%, -1.7%] 1
Improvements ✅
(secondary)
-6.5% [-6.5%, -6.5%] 1
All ❌✅ (primary) 0.5% [-1.7%, 2.6%] 2

Binary size

Results (primary 0.0%, secondary 0.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.0%] 7
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [0.0%, 0.0%] 7

Bootstrap: 473.624s -> 472.736s (-0.19%)
Artifact size: 390.78 MiB -> 390.80 MiB (0.01%)

@Kobzol
Copy link
Member

Kobzol commented Jan 6, 2026

Tiny changes, overall it's a wash.

@rustbot label: +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Jan 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants