Skip to content

Rollup of 17 pull requests #145210

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 45 commits into from
Aug 10, 2025
Merged

Rollup of 17 pull requests #145210

merged 45 commits into from
Aug 10, 2025

Conversation

Zalathar
Copy link
Contributor

@Zalathar Zalathar commented Aug 10, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

jyn514 and others added 30 commits May 26, 2025 20:22
This uses a very hacky regex that will probably miss some variables. But
having some docs seems better than none at all.

This uses a very hacky regex that will probably miss some variables. But having some docs seems better than none at all.

In particular, this generates stubs for the following env vars:

- COLORTERM
- QNX_TARGET
- RUST_BACKTRACE
- RUSTC_BLESS
- RUSTC_BOOTSTRAP
- RUSTC_BREAK_ON_ICE
- RUSTC_CTFE_BACKTRACE
- RUSTC_FORCE_RUSTC_VERSION
- RUSTC_GRAPHVIZ_FONT
- RUSTC_ICE
- RUSTC_LOG
- RUSTC_OVERRIDE_VERSION_STRING
- RUSTC_RETRY_LINKER_ON_SEGFAULT
- RUSTC_TRANSLATION_NO_DEBUG_ASSERT
- RUST_DEP_GRAPH_FILTER
- RUST_DEP_GRAPH
- RUST_FORBID_DEP_GRAPH_EDGE
- RUST_MIN_STACK
- RUST_TARGET_PATH
- SDKROOT
- TERM
- UNSTABLE_RUSTDOC_TEST_LINE
- UNSTABLE_RUSTDOC_TEST_PATH

[rendered](![screenshot of unstable-book running locally, with 14 environment variables shown in the sidebar](https://github.com/user-attachments/assets/8238d094-fb7a-456f-ad43-7c07aa2c44dd))
The suboptimal error only appears with NLLs due to liveness differences
where polonius cannot have as many boring locals. Sometimes this causes
NLLs to emit a duplicate error as well.
Remove incomplete handling of kills during traversal for loan liveness
to get to a simpler and actionable prototype.

This handles the cases, on sufficiently simple examples, that were
deferred from NLLs (NLL problem case 3, lending iterators), and is still
a good step to put in people's hands without needing to wait for another
full implementation. This is a practical cut in scope, but it also
shows where are the areas of improvement, that we will explore in the
future.
These are just some sanity checks to ensure NLLs, the polonius alpha
analysis, and the datalog implementation behave the same on these common
examples.
This test showcases the same imprecision as NLLs, unlike the datalog
implementation, when using reachability as a liveness approximation.
This is an example similar to the linked-list cursor examples
where the alpha shows the same imprecision as NLLs, but that can work due to
the loans not being live after the loop, or the constraint graph being
simple enough that the cfg/subset relationships are the same for
reachability and liveness.
- linked-list cursor-like patterns
- issue-46589

These are known-bugs for the polonius alpha, where they show the same
imprecision as NLLs, but are supported by the old datalog
implementation.
also add a note to `GenericArgs::truncate_to`
some clauses can be merged together without requiring an attribute for
each trait derived.

also manually impl `Eq` because the `derive_where` generated code is too
much for my comfort
Co-authored-by: Florian Bartels <[email protected]>
Co-authored-by: Mads Marquart <[email protected]>
rustdoc has its own issue template now, mention that.

swap the order of the last two sentances so it reads more like
a typical if/else chain (base case listed last).

adjust some labels and descriptions
Every other feature in the list uses a doc comment; fix one that used a
regular comment to use a doc comment.
unstable-book: Add stubs for environment variables; document some of the important ones

This uses a very hacky regex that will probably miss some variables. But having some docs seems better than none at all.

In particular, this documents the following env vars explicitly (cc ````````@madsmtm```````` ````````@flba-eb```````` - do the docs for SDKROOT and QNX_TARGET look right?):

- COLORTERM
- QNX_TARGET
- SDKROOT
- TERM

and generates stubs for the following env vars:

- RUST_BACKTRACE
- RUSTC_BLESS
- RUSTC_BREAK_ON_ICE
- RUSTC_CTFE_BACKTRACE
- RUSTC_FORCE_RUSTC_VERSION
- RUSTC_GRAPHVIZ_FONT
- RUSTC_ICE
- RUSTC_LOG
- RUSTC_RETRY_LINKER_ON_SEGFAULT
- RUSTC_TRANSLATION_NO_DEBUG_ASSERT
- RUST_DEP_GRAPH_FILTER
- RUST_DEP_GRAPH
- RUST_FORBID_DEP_GRAPH_EDGE
- RUST_MIN_STACK
- RUST_TARGET_PATH
- UNSTABLE_RUSTDOC_TEST_LINE
- UNSTABLE_RUSTDOC_TEST_PATH

rendered: ![screenshot of unstable-book running locally, with 14 environment variables shown in the sidebar](https://github.com/user-attachments/assets/8238d094-fb7a-456f-ad43-7c07aa2c44dd)
Simplify polonius location-sensitive analysis

This PR reworks the location-sensitive analysis into what we think is a worthwhile subset of the datalog analysis. A sort of polonius alpha analysis that handles NLL problem case 3 and more, but is still using the faster "reachability as an approximation of liveness", as well as the same loans-in-scope computation as NLLs -- and thus doesn't handle full flow-sensitivity like the datalog implementation.

In the last few months, we've identified this subset as being actionable:
- we believe we can make a stabilizable version of this analysis
- it is an improvement over the status quo
- it can also be modeled in a-mir-formality, or some other formalism, for assurances about soundness, and I believe ````````@nikomatsakis```````` is interested in looking into this during H2.
- and we've identified the areas of work we wish to explore later to gradually expand the supported cases: the differences between reachability and liveness, support of kills, and considerations of time-traveling, for example.

The approach in this PR is to try less to have the graph only represent live paths, by checking whether we reach a live region during traversal and recording the loan as live there, instead of equating traversal with liveness like today because it has subtleties with the typeck edges in statements (that could forward loans to the successor point without ensuring their liveness). We can then also simplify these typeck stmt edges. And we also can simplify traversal by removing looking at kills, because that's enough to handle a bunch of NLL problem 3 cases -- and we can gradually support them more and more in traversal in the future, to reduce the approximation of liveness.

There's still some in-progress pieces of work w/r/t opaque types that I'm expecting [lcnr's opaque types rework](rust-lang#139587), and [amanda's SCCs rework](rust-lang#130227) to handle. That didn't seem to show up in tests until I rebased today (and shows lack of test coverage once again) when rust-lang#142255 introduced a couple of test failures with the new captures rules from edition 2024. It's not unexpected since we know more work is needed with member constraints (and we're not even using SCCs in this prototype yet)

I'll look into these anyways, both for future work, and checking how these other 2 PRs would change things.

---

I'm not sure the following means a lot until we have some formalism in-place, but:
- I've changed the polonius compare-mode to use this analysis: the tests pass with it, except 2 cases with minor diagnostics differences, and the 2 edition 2024 opaque types one I mentioned above and need to investigate
- things that are expected to work still do work: it bootstraps, can run our rustc-perf benchmarks (and the results are not even that bad), and a crater run didn't find any regressions (forgetting that crater currently fails to test around a quarter of all crates 👼)
- I've added tests with improvements, like the NLL problem case 3 and others, as well as some that behave the same as NLLs today and are thus worse than the datalog implementation

r? ````````@jackh726````````

(no rush I know you're deep in phd work and "implmentating" the new trait solver for r-a :p <3)

This also fixes rust-lang#135646, a diagnostics ICE from the previous implementation.
@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 Aug 10, 2025
@Zalathar
Copy link
Contributor Author

@bors try jobs=test-various,dist-sparcv9-solaris

@rust-bors
Copy link

rust-bors bot commented Aug 10, 2025

⌛ Trying commit 934cb10 with merge da07bc5

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

rust-bors bot added a commit that referenced this pull request Aug 10, 2025
Rollup of 17 pull requests

try-job: test-various
try-job: dist-sparcv9-solaris
@rust-bors
Copy link

rust-bors bot commented Aug 10, 2025

☀️ Try build successful (CI)
Build commit: da07bc5 (da07bc5ea7366e7687ef0a56edc47b60f9d80e16, parent: 8712e4567551a2714efa66dac204ec7137bc5605)

@bors
Copy link
Collaborator

bors commented Aug 10, 2025

⌛ Testing commit 934cb10 with merge 80ff75f...

bors added a commit that referenced this pull request Aug 10, 2025
Rollup of 17 pull requests

Successful merges:

 - #141624 (unstable-book: Add stubs for environment variables; document some of the important ones)
 - #143093 (Simplify polonius location-sensitive analysis)
 - #144402 (Stabilize loongarch32 inline asm)
 - #144403 (`tests/ui/issues/`: The Issues Strike Back [4/N])
 - #144739 (Use new public libtest `ERROR_EXIT_CODE` constant in rustdoc)
 - #145089 (Improve error output when a command fails in bootstrap)
 - #145112 ([win][arm64ec] Partial fix for raw-dylib-link-ordinal on Arm64EC)
 - #145129 ([win][arm64ec] Add `/machine:arm64ec` when linking LLVM as Arm64EC)
 - #145130 (improve "Documentation problem" issue template.)
 - #145135 (Stabilize `duration_constructors_lite` feature)
 - #145145 (some `derive_more` refactors)
 - #145147 (rename `TraitRef::from_method` to `from_assoc`)
 - #145156 (Override custom Cargo `build-dir` in bootstrap)
 - #145160 (Change days-threshold to 28 in [behind-upstream])
 - #145162 (`{BTree,Hash}Map`: add "`Entry` API" section heading)
 - #145187 (Fix an unstable feature comment that wasn't a doc comment)
 - #145191 (`suggest_borrow_generic_arg`: use the correct generic args)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors
Copy link
Collaborator

bors commented Aug 10, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 10, 2025
@rust-log-analyzer
Copy link
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)
/dev/sda1        74G  4.1G   66G   6% /mnt
tmpfs           1.6G   12K  1.6G   1% /run/user/1001
================================================================================

E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 2221 (apt)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
##[error]Process completed with exit code 100.
Post job cleanup.

@Zalathar
Copy link
Contributor Author

Looks mega spurious.

@bors retry

@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 Aug 10, 2025
@bors
Copy link
Collaborator

bors commented Aug 10, 2025

⌛ Testing commit 934cb10 with merge 18eeac0...

@bors
Copy link
Collaborator

bors commented Aug 10, 2025

☀️ Test successful - checks-actions
Approved by: Zalathar
Pushing 18eeac0 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Aug 10, 2025
@bors bors merged commit 18eeac0 into rust-lang:master Aug 10, 2025
12 checks passed
@rustbot rustbot added this to the 1.91.0 milestone Aug 10, 2025
Copy link
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 7f7b8ef (parent) -> 18eeac0 (this PR)

Test differences

Show 460 test diffs

Stage 1

  • [assembly] tests/assembly-llvm/asm/loongarch-type.rs: pass -> [missing] (J2)
  • [assembly] tests/assembly-llvm/asm/loongarch-type.rs#loongarch64: [missing] -> pass (J2)
  • [crashes] tests/crashes/135646.rs: pass -> [missing] (J2)
  • [ui] tests/ui/borrowck/array-slice-coercion-mismatch-15783.rs: [missing] -> pass (J2)
  • [ui] tests/ui/derives/derive-partial-ord-discriminant.rs: [missing] -> pass (J2)
  • [ui] tests/ui/drop/dropck-normalize-errors.rs: pass -> [missing] (J2)
  • [ui] tests/ui/drop/dropck-normalize-errors.rs#polonius: [missing] -> pass (J2)
  • [ui] tests/ui/drop/enum-drop-impl-15063.rs: [missing] -> pass (J2)
  • [ui] tests/ui/drop/generic-drop-trait-bound-15858.rs: [missing] -> pass (J2)
  • [ui] tests/ui/drop/nested-return-drop-order.rs: [missing] -> pass (J2)
  • [ui] tests/ui/drop/same-alloca-reassigned-match-binding-16151.rs: [missing] -> pass (J2)
  • [ui] tests/ui/drop/struct-field-drop-order.rs: [missing] -> pass (J2)
  • [ui] tests/ui/extern/empty-struct-extern-fn-16441.rs: [missing] -> pass (J2)
  • [ui] tests/ui/imports/enum-variant-import-path-15774.rs: [missing] -> pass (J2)
  • [ui] tests/ui/issues/issue-15063.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-15167.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-15189.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-15207.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-15260.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-15444.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-15734.rs#next: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-15774.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-15793.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-15858.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-16048.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-16149.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-16256.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-16401.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-16441.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-16492.rs: pass -> [missing] (J2)
  • [ui] tests/ui/lifetimes/struct-lifetime-inference-15735.rs: [missing] -> pass (J2)
  • [ui] tests/ui/macros/for-loop-macro-rules-hygiene.rs: [missing] -> pass (J2)
  • [ui] tests/ui/moves/match-move-same-binding-15571.rs: [missing] -> pass (J2)
  • [ui] tests/ui/nll/issue-46589.rs#polonius_next: pass -> [missing] (J2)
  • [ui] tests/ui/nll/polonius/flow-sensitive-invariance.rs#legacy: [missing] -> pass (J2)
  • [ui] tests/ui/nll/polonius/iterating-updating-mutref.rs#nll: [missing] -> pass (J2)
  • [ui] tests/ui/nll/polonius/iterating-updating-mutref.rs#polonius: [missing] -> pass (J2)
  • [ui] tests/ui/nll/polonius/lending-iterator-sanity-checks.rs#polonius: [missing] -> pass (J2)
  • [ui] tests/ui/parser/generics-rangle-eq-15043.rs: [missing] -> pass (J2)
  • [ui] tests/ui/pattern/enum-struct-pattern-mismatch-15896.rs: [missing] -> pass (J2)
  • [ui] tests/ui/pattern/refutable-pattern-for-loop-15381.rs: [missing] -> pass (J2)
  • [ui] tests/ui/pattern/slice-pattern-recursion-15104.rs: [missing] -> pass (J2)
  • [ui] tests/ui/pattern/static-binding-shadow-16149.rs: [missing] -> pass (J2)
  • [ui] tests/ui/pattern/struct-field-duplicate-binding-15260.rs: [missing] -> pass (J2)
  • [ui] tests/ui/pattern/tuple-enum-match-15129.rs: [missing] -> pass (J2)
  • [ui] tests/ui/pattern/unit-type-struct-pattern-mismatch-16401.rs: [missing] -> pass (J2)
  • [ui] tests/ui/traits/index-trait-multiple-impls-15734.rs#current: [missing] -> pass (J2)
  • [ui] tests/ui/wf/hir-wf-check-erase-regions.rs: pass -> [missing] (J2)
  • [ui] tests/ui/wf/hir-wf-check-erase-regions.rs#nll: [missing] -> pass (J2)
  • [ui] tests/ui/wf/hir-wf-check-erase-regions.rs#polonius: [missing] -> pass (J2)
  • [ui] tests/ui/asm/loongarch/bad-reg.rs#loongarch32_ilp32d: [missing] -> ignore (ignored when the LLVM version 19.1.1 is older than 20.0.0) (J3)
  • [ui] tests/ui/asm/loongarch/bad-reg.rs#loongarch32_ilp32s: [missing] -> ignore (ignored when the LLVM version 19.1.1 is older than 20.0.0) (J3)
  • [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) (J3)
  • [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) (J3)

Stage 2

  • [assembly] tests/assembly-llvm/asm/loongarch-type.rs: pass -> [missing] (J0)
  • [assembly] tests/assembly-llvm/asm/loongarch-type.rs#loongarch64: [missing] -> pass (J0)
  • [crashes] tests/crashes/135646.rs: pass -> [missing] (J0)
  • [ui] tests/ui/borrowck/array-slice-coercion-mismatch-15783.rs: [missing] -> pass (J1)
  • [ui] tests/ui/closures/unused-closure-ice-16256.rs: [missing] -> pass (J1)
  • [ui] tests/ui/codegen/nested-enum-match-optimization-15793.rs: [missing] -> pass (J1)
  • [ui] tests/ui/drop/dropck-normalize-errors.rs: pass -> [missing] (J1)
  • [ui] tests/ui/drop/dropck-normalize-errors.rs#nll: [missing] -> pass (J1)
  • [ui] tests/ui/drop/dropck-normalize-errors.rs#polonius: [missing] -> pass (J1)
  • [ui] tests/ui/drop/enum-drop-impl-15063.rs: [missing] -> pass (J1)
  • [ui] tests/ui/drop/same-alloca-reassigned-match-binding-16151.rs: [missing] -> pass (J1)
  • [ui] tests/ui/imports/enum-variant-import-path-15774.rs: [missing] -> pass (J1)
  • [ui] tests/ui/issues/issue-15034.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-15104.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-15129-rpass.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-15189.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-15207.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-15260.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-15381.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-15523-big.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-15734.rs#next: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-15763.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-15783.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-15858.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-15896.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-16048.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-16256.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-16401.rs: pass -> [missing] (J1)
  • [ui] tests/ui/lifetimes/nondeterministic-lifetime-errors-15034.rs: [missing] -> pass (J1)
  • [ui] tests/ui/lifetimes/struct-lifetime-inference-15735.rs: [missing] -> pass (J1)
  • [ui] tests/ui/nll/issue-46589.rs#legacy: [missing] -> pass (J1)
  • [ui] tests/ui/nll/issue-46589.rs#polonius_next: pass -> [missing] (J1)
  • [ui] tests/ui/nll/polonius/array-literal-index-oob-2024.rs: [missing] -> pass (J1)
  • [ui] tests/ui/nll/polonius/flow-sensitive-invariance.rs#polonius: [missing] -> pass (J1)
  • [ui] tests/ui/nll/polonius/iterating-updating-mutref.rs#legacy: [missing] -> pass (J1)
  • [ui] tests/ui/nll/polonius/lending-iterator-sanity-checks.rs#polonius: [missing] -> pass (J1)
  • [ui] tests/ui/pattern/enum-struct-pattern-mismatch-15896.rs: [missing] -> pass (J1)
  • [ui] tests/ui/pattern/refutable-pattern-for-loop-15381.rs: [missing] -> pass (J1)
  • [ui] tests/ui/pattern/static-binding-shadow-16149.rs: [missing] -> pass (J1)
  • [ui] tests/ui/statics/conditional-static-declaration-16010.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/index-trait-multiple-impls-15734.rs#next: [missing] -> pass (J1)
  • [ui] tests/ui/traits/lifetime-mismatch-trait-impl-16048.rs: [missing] -> pass (J1)
  • [ui] tests/ui/wf/hir-wf-check-erase-regions.rs: pass -> [missing] (J1)
  • [ui] tests/ui/wf/hir-wf-check-erase-regions.rs#polonius: [missing] -> pass (J1)
  • [ui] tests/ui/asm/loongarch/bad-reg.rs#loongarch32_ilp32d: [missing] -> ignore (ignored when the LLVM version 19.1.1 is older than 20.0.0) (J4)
  • [ui] tests/ui/asm/loongarch/bad-reg.rs#loongarch32_ilp32d: [missing] -> pass (J5)

(and 92 additional test diffs)

Additionally, 268 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 18eeac04fc5c2a4c4a8020dbdf1c652077ad0e4e --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-apple-1: 6329.5s -> 11621.6s (83.6%)
  2. pr-check-2: 2195.6s -> 2733.6s (24.5%)
  3. x86_64-apple-2: 4286.1s -> 5165.4s (20.5%)
  4. aarch64-gnu-llvm-19-1: 3402.5s -> 4089.2s (20.2%)
  5. aarch64-apple: 4598.6s -> 5492.7s (19.4%)
  6. aarch64-gnu-debug: 4122.3s -> 4831.8s (17.2%)
  7. x86_64-rust-for-linux: 2613.9s -> 3005.5s (15.0%)
  8. x86_64-gnu-tools: 3363.3s -> 3857.1s (14.7%)
  9. dist-aarch64-apple: 5159.8s -> 5909.6s (14.5%)
  10. x86_64-gnu-llvm-19: 2540.2s -> 2859.1s (12.6%)
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
#141624 unstable-book: Add stubs for environment variables; documen… 7a7f599d230072be88b24df4b15ca893d95a8a7e (link)
#143093 Simplify polonius location-sensitive analysis 2f6568073a6300221648af94e4860b60efb3d009 (link)
#144402 Stabilize loongarch32 inline asm 458e4ec8df5c33edfaaa24314abb8ad9c221b33c (link)
#144403 tests/ui/issues/: The Issues Strike Back [4/N] 2f3ea23588c55eff7917def1285142df6537e9d1 (link)
#144739 Use new public libtest ERROR_EXIT_CODE constant in rustdoc 077bc8efefd9052462523f2cc7ef352cbb48b591 (link)
#145089 Improve error output when a command fails in bootstrap db40082d029045424ceb73f9d0d513ee2db2642f (link)
#145112 [win][arm64ec] Partial fix for raw-dylib-link-ordinal on Ar… bc681ea5a6d198e3d0f852bb713c9337886438d9 (link)
#145129 [win][arm64ec] Add /machine:arm64ec when linking LLVM as … 8c826a122da0b1969f8403a7a6d663e501b3f8a5 (link)
#145130 improve "Documentation problem" issue template. 7368b4d6a3f0dd7d38d265d490998a6fa1068d17 (link)
#145135 Stabilize duration_constructors_lite feature 2226b2a7dc1ce7dd3a34aebfadeb4455b876bc62 (link)
#145145 some derive_more refactors 3b9c21bc744c080b37c54b5640276965996137c9 (link)
#145147 rename TraitRef::from_method to from_assoc afdee7a38c9520bb03d7f3c13a630d40af4de1e9 (link)
#145156 Override custom Cargo build-dir in bootstrap 1b45ba5b88682110639295852c826370dc3620d4 (link)
#145160 Change days-threshold to 28 in [behind-upstream] b30fc29456c35935986109937954660947b7ff57 (link)
#145162 {BTree,Hash}Map: add "Entry API" section heading 790c63e6bb58e727d779f2a4117f2303cc555b2a (link)
#145187 Fix an unstable feature comment that wasn't a doc comment 3c7c605fb6bca430057e908dfeb1d23399fb5d8c (link)
#145191 suggest_borrow_generic_arg: use the correct generic args 7efe5cbc3593cfe9046aacdbc810964a33b18ed2 (link)

previous master: 7f7b8ef27d

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 (18eeac0): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.1% [0.0%, 0.1%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.6% [-0.9%, -0.1%] 5
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (secondary -4.6%)

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)
- - 0
Improvements ✅
(secondary)
-4.6% [-4.7%, -4.6%] 3
All ❌✅ (primary) - - 0

Cycles

Results (secondary 4.7%)

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)
7.1% [6.5%, 8.3%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.7% [-2.7%, -2.7%] 1
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 463.378s -> 462.481s (-0.19%)
Artifact size: 377.34 MiB -> 377.60 MiB (0.07%)

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-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool merged-by-bors This PR was explicitly merged by bors. PG-exploit-mitigations Project group: Exploit mitigations 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-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc 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.