Skip to content

Rollup of 8 pull requests#158663

Merged
rust-bors[bot] merged 29 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-vypSRyC
Jul 1, 2026
Merged

Rollup of 8 pull requests#158663
rust-bors[bot] merged 29 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-vypSRyC

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

bjorn3 and others added 29 commits June 29, 2026 11:34
While it would be reasonable to expect the Windows linker to handle
linker args in the .drectve section identical to cli arguments, as it
turns out exporting weak symbols only works when the /EXPORT is in the
.drectve section, not when it is a linker argument or when a .DEF file
is used.
in `tests/ui/consts/const-eval/raw-bytes.rs` as we now handle this in
our modified regex in `runtest`
Specifically, all `//@ ignore-parallel-frontend different alloc ids`
across other tests because they fail with our
normalization strategy: `ALLOC0` -> `ALLOC$ID`
Fixes test failures on {aarch64*-none, armv7r-eabihf, thumbv7em-eabi*} targets which
have panic=abort by default
…nstantiate_identity().skip_norm_wip().def_id
The starting point of this commit is that `ModuleData`, `ImportData`,
and `DeclData` are all interned, and don't need to be `Clone`.

Then there are various types nestled within these types that also don't
need to be `Clone`.
Three of the four public allocation functions in `DroplessArena` check
that the allocated type doesn't implement `Drop`: `alloc`,
`alloc_slice`, `alloc_from_iter`. This commit adds the missing check to
`try_alloc_from_iter`.

It also moves and reorders some lines in `alloc_from_iter` for
consistency with the other methods.
…, r=oli-obk

Use .drectve for MSVC DLL exports

This is a continuation of rust-lang#142568.

This fixes the i686 MSVC issue mentioned there: `.def` files accept undecorated names, but `.drectve` `/EXPORT` needs decorated symbol names. The public export name is preserved with `EXPORTAS`.

It's worth noting that EII with defaults now also works on MSVC.
…llel-frontend, r=petrochenkov

tests: fix: parallel frontend test failures: different alloc ids

Removed the `//@ ignore-parallel-frontend different alloc ids` directive from all the ui tests applicable and replaced it with `//@ normalize-stderr` so that all alloc ids mentions are converted into a single placeholder. Thus the tests are passed

Part of [rust-lang#154314](rust-lang#154314)

r? @petrochenkov
…ping, r=petrochenkov

delegation: support simplest output `Self` mapping

This PR supports simplest output `Self` mapping for callee path if the following conditions are met (see `should_wrap_return_value`).

Example:
```rust
trait Trait {
    fn method(&self) -> Self;
    fn r#static() -> Self;
    fn raw_S(&self) -> S { S }
}

struct S;
impl Trait for S {
    fn method(&self) -> S { S }
    fn r#static() -> S { S }
}

struct W(S);
impl Trait for W {
    #[attr = Inline(Hint)]
    fn method(self: _) -> _ { Self { 0: Trait::method(self.0) } }
    #[attr = Inline(Hint)]
    fn r#static() -> _ { Trait::r#static() }
    //~^ WARN: function cannot return without recursing [unconditional_recursion]
    #[attr = Inline(Hint)]
    fn raw_S(self: _) -> _ { Trait::raw_S(self.0) }
}

impl W {
    #[attr = Inline(Hint)]
    fn method(self: _) -> _ { Self { 0: Trait::method(self.0) } }
    #[attr = Inline(Hint)]
    fn r#static() -> _ { Trait::r#static() }
    #[attr = Inline(Hint)]
    fn raw_S(self: _) -> _ { Trait::raw_S(self.0) }
}

```

~If the above conditions are met, there is no need to propagate generics of a newtype, as unused generics is an error, thus they should be used in a single field and it can be inferred from the return type of callee path.~

~Accessing signatures through queries produced query cycles in one test, so `with_no_trimmed_paths` was used to prevent it, though it can cause other cycles in other situations maybe.~

Part of rust-lang#118212.
r? @petrochenkov
…est, r=joboet

Fix getrandom fallback test on platforms with `panic=abort`

The recently-added linux-getrandom-fallback test fails on targets matching {aarch64*-none, armv7r-eabihf, thumbv7em-eabi*}. This is because those platforms set `panic=abort` by default, and the test relies on being able to catch a panic.

Mark the test as `needs-unwind` so that it won't be run in `panic=abort` configurations.

Also add extra debug information to the panic when getrandom() fails with an unexpected error code on Linux
…nder-def-id, r=lcnr

Remove skip_norm_w/i/p().def_id with a helper

part of rust-lang#155345

r? @lcnr
…rochenkov

Remove unnecessary `Clone` derives on resolver types

The starting point of this commit is that `ModuleData`, `ImportData`, and `DeclData` are all interned, and don't need to be `Clone`.

Then there are various types nestled within these types that also don't need to be `Clone`.

r? @petrochenkov
…, r=Nadrieril

Add missing `needs_drop` check to `DroplessArena`.

Three of the four public allocation functions in `DroplessArena` check that the allocated type doesn't implement `Drop`: `alloc`, `alloc_slice`, `alloc_from_iter`. This commit adds the missing check to `try_alloc_from_iter`.

It also moves and reorders some lines in `alloc_from_iter` for consistency with the other methods.

r? @Nadrieril
…arfonthey

Document `strip_circumfix` behavior on overlapping prefix and suffix.

Fixes rust-lang#158388, as per T-libs-api decision there.
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Jul 1, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never p=5

@rust-bors

rust-bors Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

📌 Commit ddf0d0f has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors Bot added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jul 1, 2026
@rustbot rustbot added A-compiletest Area: The compiletest test runner A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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. labels Jul 1, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jul 1, 2026
@rust-bors

rust-bors Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 30m 5s
Pushing 4c9d2bf to main...

@rust-bors rust-bors Bot merged commit 4c9d2bf into rust-lang:main Jul 1, 2026
14 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 1, 2026
@rustbot rustbot added this to the 1.98.0 milestone Jul 1, 2026
@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#158294 Use .drectve for MSVC DLL exports a457d22b61c110fc573cb55a43c2152801c7baf9 (link)
#156716 tests: fix: parallel frontend test failures: different allo… f525cca8550d52c2fe6677ef0b879bea6dad66cc (link)
#158397 delegation: support simplest output Self mapping 61811e1ed92ecff0113871e231861d076ff3be6a (link)
#158613 Fix getrandom fallback test on platforms with panic=abort 0fbc86c4652af3df24b7290acabdf144f3a73135 (link)
#158620 Remove skip_norm_w/i/p().def_id with a helper 1d8b1f51f30b9d0ba3ec5938aa767fba6e60f4ba (link)
#158633 Remove unnecessary Clone derives on resolver types 26f99636862301e94c70e67dd5acb338ad4f78e2 (link)
#158634 Add missing needs_drop check to DroplessArena. 1de2fc168dabe5a50d329e3b8e782584b68ce5e4 (link)
#158647 Document strip_circumfix behavior on overlapping prefix a… d994ee12ec0a1c186a5667d1e9af35f897564f20 (link)

previous master: e2b71ade2d

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

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor
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 e2b71ad (parent) -> 4c9d2bf (this PR)

Test differences

Show 440 test diffs

Stage 1

  • [ui] tests/ui/delegation/self-mapping-output-privacy.rs: [missing] -> pass (J0)
  • [ui] tests/ui/delegation/self-mapping-output.rs: [missing] -> pass (J0)
  • [pretty] tests/pretty/delegation/self-mapping-output.rs: [missing] -> pass (J3)
  • [run-make] tests/run-make/dll-weak-definition: [missing] -> ignore (ignored on targets without Rust's LLD) (J3)
  • [ui (polonius)] tests/ui/delegation/self-mapping-output-privacy.rs: [missing] -> pass (J5)
  • [ui (polonius)] tests/ui/delegation/self-mapping-output.rs: [missing] -> pass (J5)

Stage 2

  • [pretty] tests/pretty/delegation/self-mapping-output.rs: [missing] -> pass (J1)
  • [run-make] tests/run-make/dll-weak-definition: [missing] -> ignore (only executed when the target environment is msvc) (J2)
  • [run-make] tests/run-make/dll-weak-definition: [missing] -> pass (J4)
  • [run-make] tests/run-make/dll-weak-definition: [missing] -> ignore (ignored on targets without Rust's LLD) (J6)
  • [ui] tests/ui/delegation/self-mapping-output-privacy.rs: [missing] -> pass (J7)
  • [ui] tests/ui/delegation/self-mapping-output.rs: [missing] -> pass (J7)

Additionally, 428 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 4c9d2bfe4ad7a65669098754964aaebe0ec1ced2 --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. x86_64-gnu-tools: 50m 39s -> 1h 7m (+34.0%)
  2. x86_64-gnu-llvm-21-3: 1h 52m -> 1h 26m (-23.1%)
  3. pr-check-2: 34m 19s -> 42m 5s (+22.6%)
  4. x86_64-gnu-llvm-22-2: 1h 42m -> 1h 19m (-22.5%)
  5. dist-x86_64-musl: 1h 54m -> 2h 18m (+21.4%)
  6. dist-x86_64-illumos: 1h 26m -> 1h 42m (+18.0%)
  7. dist-x86_64-apple: 2h 17m -> 1h 56m (-15.4%)
  8. aarch64-apple: 2h 48m -> 3h 11m (+13.7%)
  9. x86_64-mingw-2: 2h 27m -> 2h 45m (+11.9%)
  10. dist-aarch64-apple: 2h 12m -> 1h 57m (-10.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.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (4c9d2bf): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

Results (primary 3.3%, 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)
3.3% [3.3%, 3.3%] 1
Regressions ❌
(secondary)
5.7% [5.7%, 5.7%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-5.8% [-8.4%, -3.3%] 2
All ❌✅ (primary) 3.3% [3.3%, 3.3%] 1

Cycles

Results (primary -3.0%, secondary -3.8%)

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

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-3.0% [-3.8%, -2.5%] 6
Improvements ✅
(secondary)
-3.8% [-5.2%, -2.8%] 3
All ❌✅ (primary) -3.0% [-3.8%, -2.5%] 6

Binary size

Results (primary 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%] 4
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [0.0%, 0.0%] 4

Bootstrap: 490.049s -> 488.059s (-0.41%)
Artifact size: 393.28 MiB -> 393.71 MiB (0.11%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-compiletest Area: The compiletest test runner A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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.