Skip to content

Rollup of 11 pull requests - #161093

Merged
rust-bors[bot] merged 35 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-ZAPw9dB
Aug 14, 2026
Merged

Rollup of 11 pull requests#161093
rust-bors[bot] merged 35 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-ZAPw9dB

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

Amanieu and others added 30 commits August 2, 2026 03:57
The goal here is to *reduce the amount of slop PRs*, not as a blanket endorsement of using agents to work on `rust-lang/rust`.
To that end, I have [done extensive testing][ETOOMANYLUNAS] to make sure the new file actually helps that goal.

[ETOOMANYLUNAS]: https://github.com/jyn514/ETOOMANYLUNAS

The results are promising.
They show agents consistently asking their users to confirm they're read their own work;
requiring users to write their own PR descriptions;
and pointing people to other repos if they try to modify a submodule or subtrees,
as well as various other tests.

---

Summary of the AGENTS.md (taken from the test repo:

This is a rather long operationalization of the [dev-guide] as algorithmic instructions.
Most of it was itself generated with an agent.

Differences between this and the [dev-guide] / [policy]:

[dev-guide]: https://rustc-dev-guide.rust-lang.org/llm-guidance.html
[policy]: https://forge.rust-lang.org/policies/llm-usage.html

- "strong suggestions" in the docs are turned into absolute requirements here; LLMs have trouble with discretion and judgement.
- lang/edition/etc are not exempted; determining what falls under their scope was too hard to operationalize. members of those teams can still write their own AGENTS.md if this one interferes with their work (i wouldn’t expect it to, though, it’s mostly focused on code.)
- the LLM requires a reviewer before making edits, not before posting the PR. experimental PRs are not exempted (how could the LLM know it was experimental?).
- soundness changes are always rejected, even if allowed by the policy (how could the LLM know you’re in the org?)
This adds one vendor-specific file, for the benefit of getting Claude to
actually follow the instructions.

I've put this in a separate commit so that I can drop it if people feel
strongly. I *highly recommend* that we add a CLAUDE.md, it really makes
a difference. You can see examples of what Claude does without a file in
the [testing repo][ETOOMANYLUNAS].

[ETOOMANYLUNAS]: https://github.com/jyn514/ETOOMANYLUNAS
…r pr descriptions

Co-authored-by: Josh Triplett <josh@joshtriplett.org>
`rerunning_stalled_goal_may_make_progress` is split into always-inline
and never-inline variants, because it's biggish and has multiple call
sites but only one is hot. The other are easy, being either very small
or having a single call site.
When encountering a resolve error on a type parameter associated item constraint (which can be caused by a typo when trying to write a path), do not *also* complain about associated items not being able to be constrained there.
…at didn't resolve, silence error

When typoing `Vec<foo::Bar>` to `Vec<foo:Bar>`, do not emit error complaining about the wrong number of type parameters for `Vec`.
Enable `static_position_independent_executables` on all gnu targets

Glibc has supported static PIE for a while, so there's no reason to ever build a non-PIE executable with a modern toolchain.
…e, r=Amanieu

PowerPC inline ASM: Fix scalar floats being in the wrong vector lane on little endian

64-bit PowerPC supports both big and little endian, however registers are always big endian. As a consequence of this, the order of vector lanes is reversed on little endian; however scalar `f32` and `f64` are always stored in the actual (big-endian) lane 0. This PR fixes the LLVM ASM fixup to take that into account.

Ping target maintainers: @daltenty @gilamn5tr @amy-kwan @Gelbpunkt @famfo @neuschaefer
Miri: give the incremental session a chance to finish

This helps with rust-lang/miri#5013. Reruns still aren't as fast as I'd like, but using nextest to run libcore tests shows a big difference:
```
before:
 Nextest run ID 56b7b355-6225-4083-96e3-aeeabbe80523 with nextest profile: default-miri
    Starting 10 tests across 2 binaries (2760 tests skipped)
        PASS [  31.264s] coretests::coretests any::any_downcast_mut
        PASS [  31.287s] coretests::coretests any::distinct_type_names
        PASS [  32.747s] coretests::coretests iter::traits::iterator::test_any
        PASS [  32.758s] coretests::coretests any::any_owning
        PASS [  32.864s] coretests::coretests any::dyn_type_name
        PASS [  32.973s] coretests::coretests any::any_downcast_ref
        PASS [  33.139s] coretests::coretests any::any_unsized
        PASS [  33.719s] coretests::coretests any::any_referenced
        PASS [  35.786s] coretests::coretests any::any_fixed_vec
        PASS [  38.951s] coretests::coretests num::dec2flt::parse::many_digits
────────────
     Summary [  38.955s] 10 tests run: 10 passed, 2760 skipped

after:
 Nextest run ID af603971-e41e-466d-8469-0425057fa325 with nextest profile: default-miri
    Starting 10 tests across 2 binaries (2761 tests skipped)
        PASS [  15.063s] coretests::coretests any::any_unsized
        PASS [  15.176s] coretests::coretests any::distinct_type_names
        PASS [  15.200s] coretests::coretests any::any_referenced
        PASS [  15.550s] coretests::coretests iter::traits::iterator::test_any
        PASS [  15.993s] coretests::coretests any::any_fixed_vec
        PASS [  17.506s] coretests::coretests num::dec2flt::parse::many_digits
        PASS [  17.902s] coretests::coretests any::any_downcast_ref
        PASS [  18.188s] coretests::coretests any::any_owning
        PASS [  19.270s] coretests::coretests any::dyn_type_name
        PASS [  19.702s] coretests::coretests any::any_downcast_mut
────────────
     Summary [  19.705s] 10 tests run: 10 passed, 2761 skipped
```
It still seems to spend at least 10s building the crate before Miri even begins running, no idea what it is doing in that time. But it's 15s less than before so that's good. :)
…=jdonszelmann

Inline some hot new-solver functions

`rerunning_stalled_goal_may_make_progress` is split into always-inline and never-inline variants, because it's biggish and has multiple call sites but only one is hot. The other are easy, being either very small or having a single call site.

r? @jdonszelmann
Updates the expect messages in library/std/src/net/udp.rs to follow the style guide

- [x] I did not use an LLM to create a change in this PR.
- [ ] I used an LLM to create a change in this PR, and I have explained below how it was used.
Add an AGENTS.md that enforces the LLM policy

The goal here is to *reduce the amount of slop PRs*, not as a blanket endorsement of using agents to work on `rust-lang/rust`.
For more info about motivation, see [the blog post](https://blog.rust-lang.org/inside-rust/2026/08/05/rust-langrust-is-adopting-an-llm-policy/).

To that end, I have [done extensive testing][ETOOMANYLUNAS] to make sure the new file actually helps that goal.
The results are promising.
They show agents consistently asking their users to confirm they're read their own work;
requiring users to write their own PR descriptions;
and pointing people to other repos if they try to modify a submodule or subtrees,
as well as various other tests.

[ETOOMANYLUNAS]: https://github.com/jyn514/ETOOMANYLUNAS

Almost all of the AGENTS.md was itself generated with an LLM.
See the [linked testing repo][ETOOMANYLUNAS] for more information about testing and methodology.
I wrote this PR description and both commit descriptions myself.

---

Summary of the AGENTS.md (taken from the test repo):

This is a rather long operationalization of the [dev-guide] as algorithmic instructions.
Most of it was itself generated with an agent.

Differences between this and the [dev-guide] / [policy]:

[dev-guide]: https://rustc-dev-guide.rust-lang.org/llm-guidance.html
[policy]: https://forge.rust-lang.org/policies/llm-usage.html

- "strong suggestions" in the docs are turned into absolute requirements here; LLMs have trouble with discretion and judgement.
- lang/edition/etc are not exempted; determining what falls under their scope was too hard to operationalize. members of those teams can still write their own AGENTS.md if this one interferes with their work (i wouldn’t expect it to, though, it’s mostly focused on code.)
- the LLM requires a reviewer before making edits, not before posting the PR. experimental PRs are not exempted (how could the LLM know it was experimental?).
- soundness changes are always rejected, even if allowed by the policy (how could the LLM know you’re in the org?)

This is not exhaustive; if you want a more detailed human-facing summary, see the [dev-guide].

---

The second commit adds a CLAUDE.md that links directly to AGENTS.md.
This adds one vendor-specific file, for the benefit of getting Claude to
actually follow the instructions.

I've put this in a separate commit so that I can drop it if people feel
strongly. I *highly recommend* that we add a CLAUDE.md, it really makes
a difference. You can see examples of what Claude does without a file in
the [testing repo][ETOOMANYLUNAS].

[ETOOMANYLUNAS]: https://github.com/jyn514/ETOOMANYLUNAS

r? @jieyouxu cc @jackh726 @camelid

@rustbot label +llm-assisted
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Aug 14, 2026
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-meta Area: Issues & PRs about the rust-lang/rust repository itself 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Aug 14, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors r+ p=5

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

@rust-bors

rust-bors Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

📌 Commit f62b1ea has been approved by JonathanBrouwer

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 14, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 14, 2026
Rollup of 11 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-1
try-job: aarch64-apple-2
try-job: x86_64-mingw-1
try-job: i686-msvc-1
try-job: i686-msvc-2
@rust-bors

This comment has been minimized.

@rust-bors

rust-bors Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 5dfe123 (5dfe123cc6d65c0a8a9866c15071341a674b56a2)
Base parent: 059bf4a (059bf4a660ddea5bd8302ecdd4f7e40dd7a04313)

@rust-timer

Copy link
Copy Markdown
Collaborator

Commit was not enqueued, since no previous benchmark request was found

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

rust-bors Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 11m 56s
Pushing 2fb4ed8 to main...

@rust-bors
rust-bors Bot merged commit 2fb4ed8 into rust-lang:main Aug 14, 2026
15 checks passed
@rustbot rustbot added this to the 1.99.0 milestone Aug 14, 2026
@github-actions

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 a9066b3 (parent) -> 2fb4ed8 (this PR)

Test differences

Show 51 test diffs

Stage 1

  • [ui] tests/ui/traits/next-solver/object-projection-const-bound-rerun.rs: [missing] -> pass (J2)
  • [assembly] tests/assembly-llvm/asm/powerpc-types.rs#powerpc64_power8: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/asm/powerpc-types.rs#powerpc64le: [missing] -> pass (J3)
  • [assembly] tests/assembly-llvm/asm/powerpc-types.rs#powerpc_power8: [missing] -> pass (J3)
  • [crashes] tests/crashes/137129.rs: [missing] -> pass (J3)
  • [crashes] tests/crashes/141293.rs: [missing] -> pass (J3)
  • [crashes] tests/crashes/147917.rs: [missing] -> pass (J3)
  • [crashes] tests/crashes/148614.rs: [missing] -> pass (J3)
  • [crashes] tests/crashes/148621.rs: [missing] -> pass (J3)
  • [crashes] tests/crashes/148628.rs: [missing] -> pass (J3)
  • [crashes] tests/crashes/148888.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/traits/next-solver/object-projection-const-bound-rerun.rs: [missing] -> pass (J5)

Stage 2

  • [assembly] tests/assembly-llvm/asm/powerpc-types.rs#powerpc64_power8: [missing] -> pass (J0)
  • [assembly] tests/assembly-llvm/asm/powerpc-types.rs#powerpc64le: [missing] -> pass (J0)
  • [assembly] tests/assembly-llvm/asm/powerpc-types.rs#powerpc_power8: [missing] -> pass (J0)
  • [crashes] tests/crashes/137129.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/141293.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/147917.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/148614.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/148621.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/148628.rs: [missing] -> pass (J1)
  • [crashes] tests/crashes/148888.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/next-solver/object-projection-const-bound-rerun.rs: [missing] -> pass (J4)

Additionally, 28 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 2fb4ed81d6a3131a5ba6d75fa1aeb15bc998a5f6 --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-stdlib-semver-check: 9m 21s -> 13m 28s (+44.0%)
  2. dist-riscv64-linux-musl: 1h 1m -> 1h 27m (+43.1%)
  3. dist-armv7-linux: 1h 6m -> 1h 30m (+34.9%)
  4. i686-msvc-1: 2h 15m -> 3h 1m (+33.6%)
  5. x86_64-gnu-llvm-21: 38m 47s -> 51m 20s (+32.3%)
  6. dist-x86_64-netbsd: 1h 26m -> 59m 37s (-31.2%)
  7. x86_64-gnu-parallel-frontend: 1h 35m -> 2h 4m (+30.1%)
  8. x86_64-gnu-debug: 1h 55m -> 1h 21m (-29.7%)
  9. dist-apple-various: 1h 38m -> 2h 7m (+29.6%)
  10. i686-gnu-nopt-1: 1h 44m -> 2h 12m (+27.2%)
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

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#158510 Enable static_position_independent_executables on all gnu… 648c0ae7b65bd9b3be258146cae6b2cd8900dbfb (link)
#160441 PowerPC inline ASM: Fix scalar floats being in the wrong ve… cf68342d3f45831da2b99504bcda9480999b4a5a (link)
#160760 Miri: give the incremental session a chance to finish fd3c1d8c6b528ad0aad9c8ef60abfc2236bf0ab9 (link)
#160892 Inline some hot new-solver functions 8f09c07d7499c3cbda8092e08add7d1419648459 (link)
#160821 Updates the expect messages in library/std/src/net/udp.rs t… e0789b40f251ec98b5ffb14f48d692b7c30bf77f (link)
#160997 Add an AGENTS.md that enforces the LLM policy f2c7a488c9924d707843ee5a99d8050f9ce4eb80 (link)
#161057 Silence unecessary errors on Vec<foo::Bar> to `Vec<foo:Ba… 912b6f71bd1dadd1f4cbe84fd438722e6c941df8 (link)
#161079 bootstrap: Clean up imports related to define_config! and… b38a993a20e6202fcc6c6ef68f3280fe95afe772 (link)
#161080 propagate RerunNonErased in projection_may_match 5074e73d3d478158c150e4f4f2c6992d1414fcbe (link)
#161085 bootstrap: Restrict the normalization of relative paths b0b9d147c88889fee73942aa5720bf775e69278e (link)
#161086 add crashtests [3/N] 2b7b8ec9abf595474356f3e814b566be943063cf (link)

previous master: a9066b3a6e

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-bors

rust-bors Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#158510 Enable static_position_independent_executables on all gnu… ❌ build failed
#160441 PowerPC inline ASM: Fix scalar floats being in the wrong ve… ❌ build failed
#160760 Miri: give the incremental session a chance to finish ❌ build failed
#160892 Inline some hot new-solver functions ❌ build failed
#160821 Updates the expect messages in library/std/src/net/udp.rs t… ❌ build failed
#160997 Add an AGENTS.md that enforces the LLM policy ❌ build failed
#161057 Silence unecessary errors on Vec<foo::Bar> to `Vec<foo:Ba… ❌ build failed
#161079 bootstrap: Clean up imports related to define_config! and… ❌ build failed
#161080 propagate RerunNonErased in projection_may_match ❌ build failed
#161085 bootstrap: Restrict the normalization of relative paths ❌ build failed
#161086 add crashtests [3/N] ❌ build failed

parent commit: a9066b3a6e

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-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-meta Area: Issues & PRs about the rust-lang/rust repository itself 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. 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.