Skip to content

Rollup of 12 pull requests #143287

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

Merged
merged 32 commits into from
Jul 1, 2025
Merged

Conversation

GuillaumeGomez
Copy link
Member

@GuillaumeGomez GuillaumeGomez commented Jul 1, 2025

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

sorairolake and others added 30 commits April 14, 2025 00:56
Implement `Random` for tuples of arity 12 or less. Each element is
expected to implement `Random`.
Ensure they are always created using constructors.
Reading that at first made me think the code block ensures that the said artefacts are created
Signed-off-by: Jonathan Brouwer <[email protected]>
Signed-off-by: Jonathan Brouwer <[email protected]>
…ange_start` and `rustc_layout_scalar_valid_range_end`
…r=joshtriplett

Implement `Random` for tuple

Implement `Random` for tuples of arity 12 or less. Each element is expected to implement `Random`.

I think it's OK to implement this trait for the following types:

- Primitive integer types and `bool`
- Arrays and tuples of the above values
- ~~`NonZero<T>`~~, `Saturating<T>` and `Wrapping<T>`

The necessity of this trait is debated (<rust-lang#130703 (comment)>), but if we decide to keep it in the future when the `random` module is stabilized, I think it would be useful to have this trait implemented for tuples.

Tracking issue: rust-lang#130703

r? `@joboet`
…tgross35

Describe Future invariants more precisely
docs(fs): Touch up grammar on lock api
…=oli-obk

Improve testing and error messages for malformed attributes

This PR has been split into 5 commits for reviewability, I recommend reviewing them one-by-one.
This first commit introduces more tests, the other 4 commits fix 4 bugs discovered by the test.

r? `@oli-obk`
cc `@jdonszelmann`

Fixes rust-lang#143136
`tests/ui`: A New Order [19/N]

> [!NOTE]
>
> Intermediate commits are intended to help review, but will be squashed prior to merge.

Some `tests/ui/` housekeeping, to trim down number of tests directly under `tests/ui/`. Part of rust-lang#133895.

r? `@tgross35`
`tests/ui`: A New Order [20/N]

> [!NOTE]
>
> Intermediate commits are intended to help review, but will be squashed prior to merge.

Some `tests/ui/` housekeeping, to trim down number of tests directly under `tests/ui/`. Part of rust-lang#133895.

r? `@tgross35`
…, r=Kobzol

[COMPILETEST-UNTANGLE 2/N] Make some compiletest errors/warnings/help more visually obvious

This PR makes some compiletest errors/warnings/help more visually obvious. Note that this is only intended to help visually -- the error handling in compiletest is still a mess.

![Screenshot 2025-06-30 170010](https://github.com/user-attachments/assets/a56b7857-1926-48f8-a309-9e7fcf84df7f)

r? ghost
…fault_parser, r=oli-obk

Port `#[rustc_object_lifetime_default]` to the new attribute parsing …

Ports rustc_object_lifetime_default to the new attribute parsing infrastructure for rust-lang#131229 (comment)

r? `@oli-obk`
cc `@jdonszelmann`
…ieyouxu

Do not enable LLD by default in the dist profile

History of us building & shipping LLD for `dist` builds:
1) We used to unconditionally build & ship LLD in bootstrap
2) This was causing problems for people doing custom `dist` builds (https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/MSVC.20Runtime.20mismatch.20when.20building.20LLD)
3) rust-lang#126701 made shipping of LLD optional, but to preserve previous behavior, it forcefully enabled `rust.lld = true` in the `dist` profile by default, and overwrote the default to `false` on our CI for external LLVM builds.
    - This also didn't match the documentation of `rust.lld` in `bootstrap.example.toml`, which I previously missed.
4) However, since the external LLVM opt-out was only implemented for our CI, and not for all `dist` users, this started causing issues for people `dist`ing with external LLVM (rust-lang#143076). The problem is that the default shouldn't be "true", but "LLD is enabled when LLVM isn't external", but this is not possible to do only in TOML.

So this PR reverses the behavior. LLD is not enabled by default in `dist` anymore. We switch our CI to *opt into* disting LLD, unless an external LLVM is used. External `dist` users can still opt into enabling LLD, but if they do so while also using external LLVM, they will now get a [hard error](rust-lang#143175).

r? `@jieyouxu`

try-job: `x86_64-mingw*`
try-job: dist-x86_64-linux
mir: Mark `Statement` and `BasicBlockData` as `#[non_exhaustive]`

Ensure they are always created using constructors.

r? oli-obk
bootstrap: make comment more clear

Reading that at first made me think the code block ensures that the said artefacts are created
…r=oli-obk

Remove `ItemKind::descr` method

Follow-up of rust-lang#143234.

After this PR is merged, it will remain two `descr` methods:

 * `hir::GenericArg::descr`
 * `hir::AssocItemConstraintKind::descr`

For both these enums, I don't think there is the right equivalent in `hir::DefKind` so unless I missed something, we can't remove these two methods because we can't convert these enums into `hir::DefKind`.

r? `@oli-obk`
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner 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-infra Relevant to the infrastructure 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 Jul 1, 2025
@GuillaumeGomez
Copy link
Member Author

@bors r+ p=5 rollup=never

@bors
Copy link
Collaborator

bors commented Jul 1, 2025

📌 Commit 189bfc1 has been approved by GuillaumeGomez

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 Jul 1, 2025
@bors
Copy link
Collaborator

bors commented Jul 1, 2025

⌛ Testing commit 189bfc1 with merge 71e4c00...

@bors
Copy link
Collaborator

bors commented Jul 1, 2025

☀️ Test successful - checks-actions
Approved by: GuillaumeGomez
Pushing 71e4c00 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jul 1, 2025
@bors bors merged commit 71e4c00 into rust-lang:master Jul 1, 2025
11 checks passed
@rustbot rustbot added this to the 1.90.0 milestone Jul 1, 2025
Copy link
Contributor

github-actions bot commented Jul 1, 2025

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 4e97337 (parent) -> 71e4c00 (this PR)

Test differences

Show 122 test diffs

Stage 1

  • [ui] tests/ui/attributes/malformed-attrs.rs: [missing] -> pass (J1)
  • [ui] tests/ui/cast/non-primitive-cast-suggestion.rs: [missing] -> pass (J1)
  • [ui] tests/ui/closures/basic-closure-syntax.rs: [missing] -> pass (J1)
  • [ui] tests/ui/closures/closure-clone-requires-captured-clone.rs: [missing] -> pass (J1)
  • [ui] tests/ui/consts/array-repeat-expr-not-const.rs: [missing] -> pass (J1)
  • [ui] tests/ui/cross-crate/unexported-type-error-message.rs: [missing] -> pass (J1)
  • [ui] tests/ui/drop/field-replace-in-struct-with-drop.rs: [missing] -> pass (J1)
  • [ui] tests/ui/generics/newtype-with-generics.rs: [missing] -> pass (J1)
  • [ui] tests/ui/impl-trait/basic-trait-impl.rs: [missing] -> pass (J1)
  • [ui] tests/ui/new-impl-syntax.rs: pass -> [missing] (J1)
  • [ui] tests/ui/new-import-syntax.rs: pass -> [missing] (J1)
  • [ui] tests/ui/new-style-constants.rs: pass -> [missing] (J1)
  • [ui] tests/ui/new-unicode-escapes.rs: pass -> [missing] (J1)
  • [ui] tests/ui/newlambdas.rs: pass -> [missing] (J1)
  • [ui] tests/ui/newtype-polymorphic.rs: pass -> [missing] (J1)
  • [ui] tests/ui/newtype.rs: pass -> [missing] (J1)
  • [ui] tests/ui/no-core-1.rs: pass -> [missing] (J1)
  • [ui] tests/ui/no-core-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/no-send-res-ports.rs: pass -> [missing] (J1)
  • [ui] tests/ui/no-warn-on-field-replace-issue-34101.rs: pass -> [missing] (J1)
  • [ui] tests/ui/no_send-enum.rs: pass -> [missing] (J1)
  • [ui] tests/ui/no_send-rc.rs: pass -> [missing] (J1)
  • [ui] tests/ui/no_share-enum.rs: pass -> [missing] (J1)
  • [ui] tests/ui/no_share-struct.rs: pass -> [missing] (J1)
  • [ui] tests/ui/no_std/no-core-edition2018-syntax.rs: [missing] -> pass (J1)
  • [ui] tests/ui/no_std/no-core-with-explicit-std-core.rs: [missing] -> pass (J1)
  • [ui] tests/ui/noexporttypeexe.rs: pass -> [missing] (J1)
  • [ui] tests/ui/non-constant-expr-for-arr-len.rs: pass -> [missing] (J1)
  • [ui] tests/ui/nonscalar-cast.rs: pass -> [missing] (J1)
  • [ui] tests/ui/not-clone-closure.rs: pass -> [missing] (J1)
  • [ui] tests/ui/parser/unicode-escape-sequences.rs: [missing] -> pass (J1)
  • [ui] tests/ui/structs/basic-newtype-pattern.rs: [missing] -> pass (J1)
  • [ui] tests/ui/threads-sendsync/rc-is-not-send.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/enum-negative-send-impl.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/enum-negative-sync-impl.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/rc-not-send.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/struct-negative-sync-impl.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/attributes/malformed-attrs.rs: [missing] -> pass (J0)
  • [ui] tests/ui/cast/non-primitive-cast-suggestion.rs: [missing] -> pass (J0)
  • [ui] tests/ui/closures/basic-closure-syntax.rs: [missing] -> pass (J0)
  • [ui] tests/ui/closures/closure-clone-requires-captured-clone.rs: [missing] -> pass (J0)
  • [ui] tests/ui/consts/array-repeat-expr-not-const.rs: [missing] -> pass (J0)
  • [ui] tests/ui/cross-crate/unexported-type-error-message.rs: [missing] -> pass (J0)
  • [ui] tests/ui/drop/field-replace-in-struct-with-drop.rs: [missing] -> pass (J0)
  • [ui] tests/ui/generics/newtype-with-generics.rs: [missing] -> pass (J0)
  • [ui] tests/ui/impl-trait/basic-trait-impl.rs: [missing] -> pass (J0)
  • [ui] tests/ui/new-impl-syntax.rs: pass -> [missing] (J0)
  • [ui] tests/ui/new-import-syntax.rs: pass -> [missing] (J0)
  • [ui] tests/ui/new-style-constants.rs: pass -> [missing] (J0)
  • [ui] tests/ui/new-unicode-escapes.rs: pass -> [missing] (J0)
  • [ui] tests/ui/newlambdas.rs: pass -> [missing] (J0)
  • [ui] tests/ui/newtype-polymorphic.rs: pass -> [missing] (J0)
  • [ui] tests/ui/newtype.rs: pass -> [missing] (J0)
  • [ui] tests/ui/no-core-1.rs: pass -> [missing] (J0)
  • [ui] tests/ui/no-core-2.rs: pass -> [missing] (J0)
  • [ui] tests/ui/no-send-res-ports.rs: pass -> [missing] (J0)
  • [ui] tests/ui/no-warn-on-field-replace-issue-34101.rs: pass -> [missing] (J0)
  • [ui] tests/ui/no_send-enum.rs: pass -> [missing] (J0)
  • [ui] tests/ui/no_send-rc.rs: pass -> [missing] (J0)
  • [ui] tests/ui/no_share-enum.rs: pass -> [missing] (J0)
  • [ui] tests/ui/no_share-struct.rs: pass -> [missing] (J0)
  • [ui] tests/ui/no_std/no-core-edition2018-syntax.rs: [missing] -> pass (J0)
  • [ui] tests/ui/no_std/no-core-with-explicit-std-core.rs: [missing] -> pass (J0)
  • [ui] tests/ui/noexporttypeexe.rs: pass -> [missing] (J0)
  • [ui] tests/ui/non-constant-expr-for-arr-len.rs: pass -> [missing] (J0)
  • [ui] tests/ui/nonscalar-cast.rs: pass -> [missing] (J0)
  • [ui] tests/ui/not-clone-closure.rs: pass -> [missing] (J0)
  • [ui] tests/ui/parser/unicode-escape-sequences.rs: [missing] -> pass (J0)
  • [ui] tests/ui/structs/basic-newtype-pattern.rs: [missing] -> pass (J0)
  • [ui] tests/ui/threads-sendsync/rc-is-not-send.rs: [missing] -> pass (J0)
  • [ui] tests/ui/traits/enum-negative-send-impl.rs: [missing] -> pass (J0)
  • [ui] tests/ui/traits/enum-negative-sync-impl.rs: [missing] -> pass (J0)
  • [ui] tests/ui/traits/rc-not-send.rs: [missing] -> pass (J0)
  • [ui] tests/ui/traits/struct-negative-sync-impl.rs: [missing] -> pass (J0)

Additionally, 48 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 71e4c005caa812a16fcb08d0bf1e6f1eda7c8381 --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-nopt: 7275.4s -> 9874.3s (35.7%)
  2. x86_64-apple-1: 7464.4s -> 8735.1s (17.0%)
  3. dist-apple-various: 7210.4s -> 8408.6s (16.6%)
  4. dist-x86_64-apple: 10653.6s -> 12321.5s (15.7%)
  5. mingw-check-1: 1902.3s -> 1628.5s (-14.4%)
  6. x86_64-apple-2: 4792.7s -> 5348.9s (11.6%)
  7. i686-gnu-2: 6277.5s -> 5562.0s (-11.4%)
  8. aarch64-apple: 4846.7s -> 5346.7s (10.3%)
  9. x86_64-gnu-llvm-19-2: 6124.7s -> 5520.0s (-9.9%)
  10. mingw-check-2: 2111.2s -> 1948.2s (-7.7%)
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
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#136801 Implement Random for tuple cada1d7c9c1732a5ffc868df67bc0596cead8c80 (link)
#141867 Describe Future invariants more precisely 5339159c4a0f98363cd62f8f42b241f7b895c5f2 (link)
#142760 docs(fs): Touch up grammar on lock api 2780e3f4eae3a5960200350f290c67d1aea774b4 (link)
#143181 Improve testing and error messages for malformed attributes f4b542a52721a072dfa615eea6bf9309cb80b892 (link)
#143210 tests/ui: A New Order [19/N] 036f7cb1eb0db9aef9988ab04f6d32dd60c84a24 (link)
#143212 tests/ui: A New Order [20/N] 2ae0a722d756c227db04a0513fe917c2caa58b2e (link)
#143230 [COMPILETEST-UNTANGLE 2/N] Make some compiletest errors/war… 5043a0ef17ae40b5aa108ae6a5766a7c11691330 (link)
#143240 Port #[rustc_object_lifetime_default] to the new attribut… 83ee990f10a7919dce001a62b6dcbc963a2b4fcc (link)
#143255 Do not enable LLD by default in the dist profile 5e9539d2eedb2bf40cfb40258777f0fa0cc41e14 (link)
#143262 mir: Mark Statement and BasicBlockData as `#[non_exhaus… 0d7ad5cd0127e1a1da8ac7f798e1b09ed1723bd3 (link)
#143269 bootstrap: make comment more clear 6ee44d9b1a97fa25f4c1a6b38ebab9b0d70cdaa9 (link)
#143279 Remove ItemKind::descr method 7599967990113a77678e98a02c65ecf8afb206fc (link)

previous master: 4e97337005

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner 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 S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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-infra Relevant to the infrastructure 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.