Skip to content

Rollup of 7 pull requests - #160601

Open
jhpratt wants to merge 19 commits into
rust-lang:mainfrom
jhpratt:rollup-c8grRaT
Open

Rollup of 7 pull requests#160601
jhpratt wants to merge 19 commits into
rust-lang:mainfrom
jhpratt:rollup-c8grRaT

Conversation

@jhpratt

@jhpratt jhpratt commented Aug 6, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

jieyouxu and others added 19 commits August 3, 2026 13:26
…` jobs

The aarch64 macos runners seem to be consistently among the slowest
jobs, sometimes pushing our overall CI time to 4 hours on a bad run.
Let's try to split the jobs to keep the overall Merge CI time
manageable:

* `aarch64-apple` => `aarch64-apple-{1,2}`
* `aarch64-apple-macos-26` => `aarch64-apple-macos-26-{1,2}`
This method currently does two things: it applies the effect, and also
computes the edges. However:
- Three of the four call sites don't use the edges.
- Most analyses just return `terminator.edges()` unconditionally.

This commit separates the edge computation into a new method,
`get_terminator_edges()`. It defaults to `terminator.edges()`, which
means that most analyses don't need to define it. And now edges are only
obtained when they are needed (in `Forward::apply_effects_in_block`).
these are slightly distinct subsets of a platonic ideal borrowck.
Mitigation for [RUST-159429].

The recurring problem is that built-in attributes are treated
differently compared to ordinary prelude attributes, built-in
attributes, even while unstable, can name-collide with stable macro
re-exports of the same name (and proc-macro helper attributes of the
same name), which can break stable code. See [RUST-134964].

[RUST-159429]: rust-lang#159429
[RUST-134963]: rust-lang#134963
To account for the renamed `#[rustc_unroll]` attribute.
This stderr diff is a funny side-effect of renaming `#[unroll]` =>
`#[rustc_unroll]`, where the `#[rustc_unknown]` attribute name is just
similar enough edit distance wise to `#[rustc_unroll]` that
`#[rustc_unroll]` shows up as a plausible suggestion candidate, lol.
…, r=Mark-Simulacrum

Split `aarch64-apple{,-macos-26}` => `aarch64-apple{,-macos-26}-{1,2}` jobs

## Summary

The aarch64 macos runners seem to be consistently among the slowest jobs, sometimes pushing our overall CI time to 4 hours on a bad run. Let's try to split the jobs to keep the overall Merge CI time manageable:

* `aarch64-apple` => `aarch64-apple-{1,2}`
* `aarch64-apple-macos-26` => `aarch64-apple-macos-26-{1,2}`

Discussed in [#t-infra > GHA macos-26 slowness @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/GHA.20macos-26.20slowness/near/613771526).

### Some imprecise stats

Looking at [CI dashboard](https://p.datadoghq.com/sb/3a172e20-e9e1-11ed-80e3-da7ad0900002-b5f7bb7e08b664a06b08527da85f7e30?fromUser=true&refresh_mode=sliding&tpl_var_branch_name%5B0%5D=automation%2Fbors%2Fauto&tpl_var_env%5B0%5D=%2A&tpl_var_is_default_branch%5B0%5D=%2A&tpl_var_pipeline_name%5B0%5D=CI&tpl_var_provider_instance%5B0%5D=%2A&tpl_var_provider_name%5B0%5D=github&from_ts=1783056725849&to_ts=1785735125849&live=true) over past month (as of 2026-08-03):

| Job                    |   Median |      P95 | Run counts |
|------------------------|---------:|---------:|-----------:|
| aarch64-apple          | 2.94 hr  |  3.59 hr |       156  |
| aarch64-apple-macos-26 | 3.12 hr  |  3.59 hr |       148  |

The median seems *okay*, the `macos-26` job is on par median wise with `i686-msvc-1` and `dist-x86_64-linux`. It's the P95 that's more concerning, since `i686-msvc-1` P95 is the second-worst at `3.25` hr.

r? infra-ci

---

try-job: `aarch64-apple*`
…, r=cjgillot

Split `apply_primary_terminator_effect`

It currently does two distinct things, and it's a bit nicer it they are separated. Details in individual commits.

r? @cjgillot
Rename `#[unroll]` => `#[rustc_unroll]` to mitigate nameres ambiguity

## Summary

Mitigate rust-lang#159429 by renaming `#[unroll]` => `#[rustc_unroll]`.

Did not bother with a regression test, because a regression test would be hedging against an unknown attribute if `#[unroll]` later proceeds to get a different name.

Tracking issue for `#![feature(loop_hints)]`: rust-lang#156874.

## Rationale

Even while the crater-observed fallout seems to be relatively small, we'd like such nameres ambiguity breakages to be *deliberate* (read: T-lang FCP'd) rather than accidental (discovered through beta crater runs).

See discussions around [last week's compiler triage meeting](https://rust-lang.zulipchat.com/#narrow/channel/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202026-07-23/near/612371735).

## Background context

The recurring problem is that built-in attributes are treated differently compared to ordinary prelude attributes, built-in attributes, even while unstable, can name-collide with stable macro re-exports of the same name (and proc-macro helper attributes of the same name), which can break stable code. See rust-lang#134964.

See also:

- rust-lang#133708
- rust-lang#53913 (comment)
- https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/Name.20Res.3A.20questions.20on.20intended.20behavior/near/562001319
- rust-lang#143834 (comment)

## Prior Art

- For `#[align]`, breakage was more wide-spread, so we posted this same mitigation here: rust-lang#144080.
- For `#[sanitize]`, T-lang explicitly FCP'd the breakage stemming from renaming `#[no_sanitize]` (old name) to `#[sanitize]` (new name) that regressed a couple of crates: rust-lang#142681 (comment).

## Alternatives to this PR

Generally:

- We let it slide.
- T-lang FCP on `#[unroll]` breakage (in which case this PR should be closed).
- FCP another name (and associated breakages).
- (Hard) Fix the built-in attribute name resolution behavior.

I have no particular preference on the approaches myself, any of this PR and the alternatives seem fine so as long as the breakage is *deliberate* not accidental.
Update error message in documentation comments

Fixes the `library/core/src/fmt/mod.rs` item in the rust-lang#159751 issue.
Add regression test for array type recovery in generic arguments

Closes rust-lang#81097 adds a regression test. existing covrage was let position only
add a test showing polonius alpha is not a subset of datalog polonius

This adds a test showing how the datalog and alpha algorithms are not subsets of one another, and are slightly distinct subsets of a platonic ideal borrowck.

r? @jackh726
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Aug 6, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI 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-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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Aug 6, 2026
@jhpratt

jhpratt commented Aug 6, 2026

Copy link
Copy Markdown
Member Author

@bors r+ p=5

@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple,x86_64-mingw-1,i686-msvc-*

@rust-bors

rust-bors Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 1b198cb has been approved by jhpratt

It is now in the queue for this repository.

@rust-bors rust-bors Bot 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 Aug 6, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 6, 2026
Rollup of 7 pull requests


try-job: dist-various-1
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
try-job: i686-msvc-*
@rust-bors rust-bors Bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 6, 2026
@rust-bors

rust-bors Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

💔 Test for ffecffb failed: CI. Failed job:

@jhpratt

jhpratt commented Aug 6, 2026

Copy link
Copy Markdown
Member Author

@bors try cancel

@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,x86_64-mingw-1,i686-msvc-*

@rust-bors

rust-bors Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

❗ There is currently no try build in progress on this PR.

@rust-bors

rust-bors Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

⌛ Trying commit 1b198cb with merge c596db2

To cancel the try build, run the command @bors try cancel.

Workflow: https://github.com/rust-lang/rust/actions/runs/31072214183

rust-bors Bot pushed a commit that referenced this pull request Aug 6, 2026
Rollup of 7 pull requests


try-job: dist-various-1
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: x86_64-mingw-1
try-job: i686-msvc-*
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling ureq v3.0.8
   Compiling citool v0.1.0 (/home/runner/work/rust/rust/src/ci/citool)
    Finished `dev` profile [unoptimized] target(s) in 23.84s
     Running `target/debug/citool calculate-job-matrix`
Run type: TryJob { job_patterns: Some(["dist-various-1", "test-various", "x86_64-gnu-aux", "x86_64-gnu-llvm-21-3", "x86_64-msvc-1", "aarch64-apple", "x86_64-mingw-1", "i686-msvc-*"]) }
Error: Failed to calculate job matrix

Caused by:
    Patterns `aarch64-apple` did not match any auto jobs
##[error]Process completed with exit code 1.

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc rollup A PR which is a rollup S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. 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-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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants