Skip to content
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 9 pull requests #138523

Merged
merged 35 commits into from
Mar 15, 2025
Merged

Rollup of 9 pull requests #138523

merged 35 commits into from
Mar 15, 2025

Conversation

fmease
Copy link
Member

@fmease fmease commented Mar 14, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Kobzol and others added 30 commits March 13, 2025 13:14
To make it easier to experiment locally.
When they are moved around in code, their name changes, which produces too noisy diffs.
Note that multiple parts of the output are incorrect. The following
commits will fix this.
So that follow-up CI commands can proceed normally. It will also avoid overwriting `config.toml` when running opt-dist tests locally.
It has a single call site.
Currently (PatKind::Wild` (i.e. `_`) gets turned by
`lower_fn_params_to_names` into an empty identifier, which means it is
printed incorrectly by HIR pretty printing.

And likewise for `lower_fn_params_to_names`, which affects some error
messages.

This commit fixes them. This requires a slight tweak in a couple of
places to continue using parameter numbers in some error messages. And
it improves the output of `tests/ui/typeck/cyclic_type_ice.rs`:
`/* _ */` is a better suggestion than `/*  */`.
Anonymous params are currently represented with `kw::Empty`, so handle
that properly. (Subsequent commits will get rid of the `kw::Empty`.)
This allows usage in rustfmt and rustfmt forks.
…rochenkov

rustc_target: Add target features for LoongArch v1.1

This patch adds new target features for LoongArch v1.1:

* div32
* lam-bh
* lamcas
* ld-seq-sa
* scq
…meGomez

Build GCC on CI with GCC, not Clang

It seems that GCC built with Clang misbehaves. I have tested that cg_gcc tests [pass](https://github.com/rust-lang/rust/actions/runs/13842365913/job/38732750617?pr=138451) on CI with a downloaded GCC that was built in this way.

Prerequisite for rust-lang#138395.

r? ```@ghost```
…r=jieyouxu

Improve post-merge workflow

Contains various fixes for the post-merge workflow implemented in rust-lang#138013, which were suggested on Zulip. This PR changes the grouping of test diffs and ignores doctests, as they are too noisy.

I'll post an example output (before/after this PR) in comments below.

r? ```@jieyouxu```
Pass struct field HirId when check_expr_struct_fields

Fixes rust-lang#138319

r? compiler

cc ``@Mark-Simulacrum``
fmease added 4 commits March 15, 2025 00:18
…mpiler-errors

Fix HIR printing of parameters

HIR pretty printing does the wrong thing for anonymous parameters, and there is no test coverage for it. This PR remedies both of those things.

r? ``@lcnr``
…acrum

Mirror NetBSD sources

Should avoid issues with NetBSD servers.

r? ``@Mark-Simulacrum``

try-job: `*netbsd*`
…r-cond, r=oli-obk

Make `Parser::parse_expr_cond` public

This allows usage in rustfmt and rustfmt forks.

I'm using this for custom macro formatting, see https://github.com/tucant/rustfmt/blob/30c83df9e1db10007bdd16dafce8a86b404329b2/src/parse/macros/html.rs#L57

It would be great if this could be upstreamed so I don't need to rely on a fork.
…iler-errors

Fix typo in hir lowering lint diag
@rustbot rustbot added 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. rollup A PR which is a rollup labels Mar 14, 2025
@fmease
Copy link
Member Author

fmease commented Mar 14, 2025

@bors r+ rollup=never p=5

@bors
Copy link
Contributor

bors commented Mar 14, 2025

📌 Commit 9838591 has been approved by fmease

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 Mar 14, 2025
@bors
Copy link
Contributor

bors commented Mar 15, 2025

⌛ Testing commit 9838591 with merge 2828650...

@bors
Copy link
Contributor

bors commented Mar 15, 2025

☀️ Test successful - checks-actions
Approved by: fmease
Pushing 2828650 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Mar 15, 2025
@bors bors merged commit 2828650 into rust-lang:master Mar 15, 2025
7 checks passed
@rustbot rustbot added this to the 1.87.0 milestone Mar 15, 2025
Copy link

This is an experimental post-merge analysis report. You can ignore it.

Post-merge report

Comparing d9e5539 (base) -> 2828650 (this PR)

Test differences

  • [ui] tests/ui/pattern/check-struct-pat-fields-stability-issue-138319.rs: [missing] -> pass (J0)
  • [ui] tests/ui/stability-attribute/check-stability-issue-138319.rs: [missing] -> pass (J0)
  • [ui] tests/ui/abi/compatibility.rs#loongarch64: pass -> ignore (ignored when the LLVM version 18.1.3 is older than 20.0.0) (J1)
  • [ui] tests/ui/asm/loongarch/bad-reg.rs#loongarch64_lp64d: pass -> ignore (ignored when the LLVM version 18.1.3 is older than 20.0.0) (J1)
  • [ui] tests/ui/asm/loongarch/bad-reg.rs#loongarch64_lp64s: pass -> ignore (ignored when the LLVM version 18.1.3 is older than 20.0.0) (J1)
  • [ui] tests/ui/abi/compatibility.rs#loongarch64: pass -> ignore (ignored when the LLVM version 19.1.1 is older than 20.0.0) (J2)
  • [ui] tests/ui/asm/loongarch/bad-reg.rs#loongarch64_lp64d: pass -> ignore (ignored when the LLVM version 19.1.1 is older than 20.0.0) (J2)
  • [ui] tests/ui/asm/loongarch/bad-reg.rs#loongarch64_lp64s: pass -> ignore (ignored when the LLVM version 19.1.1 is older than 20.0.0) (J2)
  • [pretty] tests/pretty/hir-fn-params.rs: [missing] -> pass (J3)

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

Job group index

  • J0: aarch64-apple, aarch64-gnu, arm-android, armhf-gnu, dist-i586-gnu-i586-i686-musl, i686-gnu-1, i686-gnu-nopt-1, i686-msvc-1, test-various, x86_64-apple-2, x86_64-gnu, x86_64-gnu-llvm-18-1, x86_64-gnu-llvm-18-2, x86_64-gnu-llvm-18-3, x86_64-gnu-llvm-19-1, x86_64-gnu-llvm-19-2, x86_64-gnu-llvm-19-3, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-mingw-1, x86_64-msvc-1
  • J1: x86_64-gnu-llvm-18-1, x86_64-gnu-llvm-18-2, x86_64-gnu-llvm-18-3
  • J2: x86_64-gnu-llvm-19-1, x86_64-gnu-llvm-19-2, x86_64-gnu-llvm-19-3
  • J3: aarch64-apple, aarch64-gnu, i686-gnu-1, i686-gnu-nopt-1, i686-msvc-1, x86_64-apple-1, x86_64-gnu, x86_64-gnu-llvm-18-1, x86_64-gnu-llvm-18-2, x86_64-gnu-llvm-18-3, x86_64-gnu-llvm-19-1, x86_64-gnu-llvm-19-2, x86_64-gnu-llvm-19-3, x86_64-gnu-nopt, x86_64-gnu-stable, x86_64-mingw-1, x86_64-msvc-1

@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#138056 rustc_target: Add target features for LoongArch v1.1 412b696b209855bff966a4144a0a57129e97c4f7 (link)
#138451 Build GCC on CI with GCC, not Clang 358d8eca0a63980ced5d7829bc86cf7a0abb2659 (link)
#138454 Improve post-merge workflow 32ffad4b8e596141aa2cfcab45ea9b8be757acb0 (link)
#138460 Pass struct field HirId when check_expr_struct_fields 314d4ed04aba192d607070c2ca9b1ae0886ab75c (link)
#138474 Refactor is_snake_case. 1742415cd2f3c59c18c573e192a398d03c09a201 (link)
#138482 Fix HIR printing of parameters ee5cac1e2a3a158a615c96c6622f2440ebafa2ea (link)
#138507 Mirror NetBSD sources 7bfde3754ae5aeaed7f29cf80c86c32f27b3b5b6 (link)
#138511 Make Parser::parse_expr_cond public 380001f249870cece553e16e11113cf0c5aa3628 (link)
#138518 Fix typo in hir lowering lint diag 67c9c907894479b1f17c24bfb335aba0b1f782f6 (link)

previous master: d9e5539a39

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

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (2828650): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 1.2%, secondary 2.8%)

This 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.

mean range count
Regressions ❌
(primary)
1.2% [1.2%, 1.2%] 1
Regressions ❌
(secondary)
2.8% [1.0%, 5.9%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.2% [1.2%, 1.2%] 1

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 774.866s -> 772.05s (-0.36%)
Artifact size: 365.06 MiB -> 365.07 MiB (0.00%)

bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 15, 2025
Store test diffs in job summaries and improve analysis formatting

This PR stores the test diffs that we already have in the post-merge workflow also into individual job summaries. This makes it easier to compare test (and later also other) diffs per job, which will be especially useful for try jobs, so that we can actually see the test diffs *before* we merge a given PR.

As a drive-by, I also made a bunch of cleanups in `citool` and in the formatting of the summary and post-merge analyses. These changes are split into self-contained commits.

The analysis can be tested locally with the following command (you can replace :
```bash
$ curl https://ci-artifacts.rust-lang.org/rustc-builds/<current-sha>/metrics-<job-name>.json > metrics.json
$ cargo run --manifest-path src/ci/citool/Cargo.toml postprocess-metrics metrics.json --job-name <job-name> --parent <parent-sha> > out.md
```
For example, for [this PR](rust-lang#138523):
```bash
$ curl https://ci-artifacts.rust-lang.org/rustc-builds/282865097d138c7f0f7a7566db5b761312dd145c/metrics-aarch64-gnu.json > metrics.json
$ cargo run --manifest-path src/ci/citool/Cargo.toml postprocess-metrics metrics.json --job-name aarch64-gnu --parent d9e5539 > out.md
```

Best reviewed commit by commit.

r? `@marcoieni`

try-job: aarch64-gnu
try-job: dist-x86_64-linux
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 15, 2025
Store test diffs in job summaries and improve analysis formatting

This PR stores the test diffs that we already have in the post-merge workflow also into individual job summaries. This makes it easier to compare test (and later also other) diffs per job, which will be especially useful for try jobs, so that we can actually see the test diffs *before* we merge a given PR.

As a drive-by, I also made a bunch of cleanups in `citool` and in the formatting of the summary and post-merge analyses. These changes are split into self-contained commits.

The analysis can be tested locally with the following command (you can replace :
```bash
$ curl https://ci-artifacts.rust-lang.org/rustc-builds/<current-sha>/metrics-<job-name>.json > metrics.json
$ cargo run --manifest-path src/ci/citool/Cargo.toml postprocess-metrics metrics.json --job-name <job-name> --parent <parent-sha> > out.md
```
For example, for [this PR](rust-lang#138523):
```bash
$ curl https://ci-artifacts.rust-lang.org/rustc-builds/282865097d138c7f0f7a7566db5b761312dd145c/metrics-aarch64-gnu.json > metrics.json
$ cargo run --manifest-path src/ci/citool/Cargo.toml postprocess-metrics metrics.json --job-name aarch64-gnu --parent d9e5539 > out.md
```

Best reviewed commit by commit.

r? `@marcoieni`

try-job: aarch64-gnu
try-job: dist-x86_64-linux
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.