diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-03-07.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-03-07.md new file mode 100644 index 00000000..e0087f0c --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-03-07.md @@ -0,0 +1,339 @@ +--- +tags: weekly, rustc +type: docs +note_id: pr4gaVUvQv2UNLSVHbptzQ +--- + +# T-compiler Meeting Agenda 2024-03-07 + +## Announcements + +- Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @_**davidtwco** or @_**Wesley Wiser** so we can pass it along). + +### Other WG meetings +- Types Team: ITE (Impl Trait Everywhere) Triage + +## MCPs/FCPs + +- New MCPs (take a look, see if you like them!) + - "Promote riscv64gc-unknown-linux-musl to tier 2" [compiler-team#728](https://github.com/rust-lang/compiler-team/issues/728) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20riscv64gc-unknown-linux-gnu.20to.20ti.E2.80.A6.20compiler-team.23728)) +- MCPs (not seconded, take a look) + - "Support patchable-function-entry" [compiler-team#704](https://github.com/rust-lang/compiler-team/issues/704) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Support.20patchable-function-entry.20compiler-team.23704)) (last review activity: 2 months ago) + - "Target families for executable format" [compiler-team#716](https://github.com/rust-lang/compiler-team/issues/716) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Target.20families.20for.20executable.20format.20compiler-team.23716)) (last review activity: about 34 days ago) + - "Add `--emit=` to emit nothing" [compiler-team#718](https://github.com/rust-lang/compiler-team/issues/718) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20.60--emit.3D.60.20to.20emit.20nothing.20compiler-team.23718)) (last review activity: about 34 days ago) + - "Dist rustc with overflow checks" [compiler-team#724](https://github.com/rust-lang/compiler-team/issues/724) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Dist.20rustc.20with.20overflow.20checks.20compiler-team.23724)) (last review activity: about 13 days ago) +- Pending FCP requests (check your boxes!) + - "Tracking Issue for RFC 3013: Checking conditional compilation at compile time" [rust#82450](https://github.com/rust-lang/rust/issues/82450) + - "Stabilize Wasm target features that are in phase 4 and 5" [rust#117457](https://github.com/rust-lang/rust/pull/117457) + - "Stabilize `--env-set` option" [rust#119926](https://github.com/rust-lang/rust/pull/119926) + - "Make casts of pointers to trait objects stricter" [rust#120248](https://github.com/rust-lang/rust/pull/120248) + - "debuginfo: Stabilize `-Z debug-macros`, `-Z collapse-macro-debuginfo` and `#[collapse_debuginfo]`" [rust#120845](https://github.com/rust-lang/rust/pull/120845) + - "Add encoding for `f16` and `f128`" [rust#122106](https://github.com/rust-lang/rust/pull/122106) +- Things in FCP (make sure you're good with it) + - "Introduce perma-unstable `wasm-c-abi` flag" [compiler-team#703](https://github.com/rust-lang/compiler-team/issues/703) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Introduce.20perma-unstable.20.60wasm-c-abi.60.20flag.20compiler-team.23703)) + - "Support debug fission using -Csplit-debuginfo=post-link" [compiler-team#721](https://github.com/rust-lang/compiler-team/issues/721) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Use.20debug.20fission.20instead.20of.20dwarf.20split.20.E2.80.A6.20compiler-team.23721)) + - "Put "checks that detect UB" under their own flag below `debug_assertions`" [compiler-team#725](https://github.com/rust-lang/compiler-team/issues/725) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Put.20.22checks.20that.20detect.20UB.22.20under.20their.20o.E2.80.A6.20compiler-team.23725)) + - "Separate incremental crate identity" [compiler-team#726](https://github.com/rust-lang/compiler-team/issues/726) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Separate.20incremental.20crate.20identity.20compiler-team.23726)) + - "MCP: Low level components for async drop" [compiler-team#727](https://github.com/rust-lang/compiler-team/issues/727) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/MCP.3A.20Low.20level.20components.20for.20async.20drop.20compiler-team.23727)) + - "Update Windows platform support" [rust#115141](https://github.com/rust-lang/rust/pull/115141) + - "Add `wasm_c_abi` `future-incompat` lint" [rust#117918](https://github.com/rust-lang/rust/pull/117918) +- MCPs blocked on unresolved concerns + - "Add hygiene attributes to compile expanded source code" [compiler-team#692](https://github.com/rust-lang/compiler-team/issues/692) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20option.20to.20compile.20expanded.20ASTs.20for.20h.E2.80.A6.20compiler-team.23692)) (last review activity: about 50 days ago) + - concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318) + - "Add a new `--build-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20a.20new.20.60--build-id.60.20flag.20to.20rustc.20compiler-team.23635)) + - concern: [other-existing-options](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1779597156) + - concern: [option-name](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1785349936) + - "Retire the mailing list and make all decisions on zulip" [compiler-team#649](https://github.com/rust-lang/compiler-team/issues/649) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Retire.20the.20mailing.20list.20and.20make.20all.20deci.E2.80.A6.20compiler-team.23649)) + - concern: [automatic-sync](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1618902660) + - concern: [single-point-of-failure-via-stream-archival](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1664056989) +- Accepted MCPs + - No new accepted proposals this time. +- Finalized FCPs (disposition merge) + - No new finished FCP (disposition merge) this time. + +### WG checkins + +Skipping this week + +## Backport nominations + +[T-compiler beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler) / [T-compiler stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-compiler) +- :beta: [1.77] "AST validation: Improve handling of inherent impls nested within functions and anon consts" [rust#122004](https://github.com/rust-lang/rust/pull/122004) + - Fixes #121607, #89342 and partially #119924 + - Still WIP (maybe wait until r+'ed?) + +- No stable nominations for `T-compiler` this time. + +[T-types stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-types) / [T-types beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-types) +- No beta nominations for `T-types` this time. +- No stable nominations for `T-types` this time. + +## PRs S-waiting-on-team + +[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler) +- Other issues [in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ) + +## Issues of Note + +### Short Summary + +- [1 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical) + - [0 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee) +- [64 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) + - [36 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee) +- [0 P-critical, 3 P-high, 2 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) +- [0 P-critical, 1 P-high, 5 P-medium, 2 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) +- [0 P-critical, 36 P-high, 100 P-medium, 15 P-low regression-from-stable-to-stable](https://github.com/rust-lang/rust/labels/regression-from-stable-to-stable) + +### P-critical + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-compiler) +- "Accessing large static global behaves incorrectly" [rust#121868](https://github.com/rust-lang/rust/issues/121868) + - Unsoundness on nightly when accessing global static variables + - Cause is in LLLVM ([comment](https://github.com/rust-lang/rust/issues/121868#issuecomment-1975815578)) + - Fix being worked in #122000 (author will probably upstream the fix, [comment](https://github.com/rust-lang/rust/pull/122000#issuecomment-1979658792)) + +[T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types) +- No `P-critical` issues for `T-types` this time. + +### P-high regressions + +[P-high beta regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-beta+label%3AP-high+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core) +- "rust-1.75.0 fails to compile with ICE on aarch64 and various ppc arches with LTO enabled - error: could not compile memchr" [rust#121124](https://github.com/rust-lang/rust/issues/121124) + - Waiting on feedback from Gentoo folks if this reproduces also with LLVM 18 ([comment](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202024-02-22/near/422842465)) ([gentoo issue](https://bugs.gentoo.org/show_bug.cgi?id=924301#c13)) +- "regression: visibility qualifiers are not permitted" [rust#121607](https://github.com/rust-lang/rust/issues/121607) + - should be fixed by #122004 (nominated for beta backport) +- "regression: encountered mutable pointer in final value" [rust#121610](https://github.com/rust-lang/rust/issues/121610) + - #119044 accidentally caused a breaking change ([comment](https://github.com/rust-lang/rust/issues/121610#issuecomment-1972874015)) + - Will be discussed by T-lang whether to revert that or accept it + +[Unassigned P-high nightly regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-nightly+label%3AP-high+no%3Aassignee+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core+) +- None + +## Performance logs + +> [triage logs for 2023-03-05](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-03-05.md) + +A bunch of noise this week which has been dropped from the report (but may be +present in the summary figures). As a result, the week is pretty busy in amount +of changes, but the net effect is nearly neutral to a slight regression for +most workloads. + +Triage done by **@simulacrum**. +Revision range: [71ffdf7ff7ac6df5f9f64de7e780b8345797e8a0..41d97c8a5dea2731b0e56fe97cd7cb79e21cff79](https://perf.rust-lang.org/?start=71ffdf7ff7ac6df5f9f64de7e780b8345797e8a0&end=41d97c8a5dea2731b0e56fe97cd7cb79e21cff79&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.6% | [0.1%, 2.0%] | 136 | +| Regressions (secondary) | 0.8% | [0.2%, 2.6%] | 78 | +| Improvements (primary) | -0.6% | [-1.2%, -0.3%] | 9 | +| Improvements (secondary) | -0.6% | [-1.0%, -0.2%] | 14 | +| All (primary) | 0.6% | [-1.2%, 2.0%] | 145 | + + +2 Regressions, 0 Improvements, 10 Mixed; 4 of them in rollups +51 artifact comparisons made in total + +#### Regressions + +Weekly `cargo update` [#112865](https://github.com/rust-lang/rust/pull/112865) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0decdac390cfeedcd7f2f44c45f72c59c70d8143&end=da02fff3b6e4e27156054dcdda6675fe2a2591a6&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 1.1% | [0.2%, 2.9%] | 3 | +| Regressions (secondary) | 1.1% | [0.2%, 1.9%] | 7 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 1.1% | [0.2%, 2.9%] | 3 | + +Doesn't appear to be entirely noise (though some of the delta is likely due to +bimodality). However marking this regression as triaged since investigating is +likely to be painful and the regressions are predominantly in secondary +benchmarks. + +Add a scheme for moving away from `extern "rust-intrinsic"` entirely [#120675](https://github.com/rust-lang/rust/pull/120675) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=50e77f133f8eb1f745e05681163a0143d6c4dd7d&end=2eeff462b762ed00f9d557d8c6ad7a3d562f692a&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.6% | [0.2%, 1.0%] | 93 | +| Regressions (secondary) | 0.8% | [0.2%, 2.4%] | 28 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.6% | [0.2%, 1.0%] | 93 | + +This regression is being addressed in a followup PR: +https://github.com/rust-lang/rust/pull/122010 + +#### Mixed + +syms for legacy numeric constants diag items [#121667](https://github.com/rust-lang/rust/pull/121667) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=91cae1dcdcf1a31bd8a92e4a63793d65cfe289bb&end=1c28a2c1b0b82b525262e6ccc7675cab61ed040c&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 0.5% | [0.3%, 1.1%] | 3 | +| Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 2 | +| Improvements (secondary) | -0.8% | [-1.5%, -0.2%] | 3 | +| All (primary) | -0.3% | [-0.3%, -0.2%] | 2 | + +Regression seems likely to be noise (bimodality) or not significant enough to +investigate further. Marking as triaged. Some of the improvements seem genuine. + +Diagnostic renaming [#121489](https://github.com/rust-lang/rust/pull/121489) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bf9c7a64ad222b85397573668b39e6d1ab9f4a72&end=c475e2303b551d726307c646181e0677af1e0069&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 1.2% | [1.2%, 1.2%] | 1 | +| Improvements (primary) | -0.9% | [-0.9%, -0.8%] | 4 | +| Improvements (secondary) | -0.5% | [-0.8%, -0.4%] | 9 | +| All (primary) | -0.9% | [-0.9%, -0.8%] | 4 | + +Regression is essentially guaranteed to be bimodality, not a real change. Marking as triaged. + +Rollup of 10 pull requests [#121790](https://github.com/rust-lang/rust/pull/121790) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d3d145ea1cae47ad392173f890577788117da3d9&end=71a7b66f20c551f640f2f382bc7e7923ba0a5dab&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.6% | [0.6%, 0.6%] | 1 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.6%, -0.3%] | 2 | +| Improvements (secondary) | -1.9% | [-2.4%, -1.5%] | 2 | +| All (primary) | -0.1% | [-0.6%, 0.6%] | 3 | + +The single primary benchmark regression (Cargo) change looks to be both above +any noise floor and does not show signs of reverting. However, it's not +significant enough (given limit to just Cargo) to investigate further. + +Rollup of 7 pull requests [#121804](https://github.com/rust-lang/rust/pull/121804) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=384d26fc7e3bdd7687cc17b2662b091f6017ec2a&end=1a1876c9790f168fb51afa335a7ba3e6fc267d75&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.3% | [0.2%, 0.6%] | 7 | +| Regressions (secondary) | 1.8% | [1.7%, 1.9%] | 6 | +| Improvements (primary) | -0.8% | [-0.9%, -0.8%] | 4 | +| Improvements (secondary) | -0.5% | [-0.8%, -0.2%] | 8 | +| All (primary) | -0.1% | [-0.9%, 0.6%] | 11 | + +Trying to track down the cause of the regression. Suspecting #121000 based on +the regressed benchmarks. + +Combine `Sub` and `Equate` [#121462](https://github.com/rust-lang/rust/pull/121462) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6cbf0926d54c80ea6d15df333be9281f65bbeb36&end=b0696a5160711c068cb1f01b7437db7990d15750&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.5% | [0.2%, 0.9%] | 13 | +| Regressions (secondary) | 0.5% | [0.3%, 0.8%] | 17 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -0.5% | [-0.9%, -0.4%] | 7 | +| All (primary) | 0.5% | [0.2%, 0.9%] | 13 | + +Future PRs may improve perf here, but this is targeting clean up and preparing for other refactoring first: + +> Some ideas how to reduce the perf impact. Even if they don't completely +> remove it, this will allow significant improvements and cleanups going +> forward and generally simplifies the core type system. I would merge this +> even with these regressions. + +(https://github.com/rust-lang/rust/pull/121462#issuecomment-1973282815) + +Rollup of 12 pull requests [#121859](https://github.com/rust-lang/rust/pull/121859) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=17edacef07e8afc3b580ed8feead6c5e90d24a56&end=2dceda4f32b97f60b122f2b32491e0267ef5cc0c&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 1.9% | [0.5%, 3.3%] | 2 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.8% | [-1.1%, -0.5%] | 2 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.6% | [-1.1%, 3.3%] | 4 | + +Cargo regression looks real but otherwise this looks like noise to me. I'm +going to mark as triaged, I don't think it merits digging through individual +PRs to try and isolate it. + +Don't grab variances in `TypeRelating` relation if we're invariant [#121864](https://github.com/rust-lang/rust/pull/121864) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4cdd20584ccb75890d7d9bfae266054abfae5d46&end=2e3581bca93fdcce474e17cd43430b594a7955a0&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 | +| Improvements (primary) | -0.6% | [-0.8%, -0.2%] | 11 | +| Improvements (secondary) | -0.5% | [-0.6%, -0.4%] | 8 | +| All (primary) | -0.6% | [-0.8%, -0.2%] | 11 | + +Regression is likely real, but is in a secondary benchmark and incr-unchanged +scenario. Not worth further investigation, particularly given the improvements. + +Always generate GEP i8 / ptradd for struct offsets [#121665](https://github.com/rust-lang/rust/pull/121665) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=516b6162a2ea8e66678c09e8243ebd83e4b8eeea&end=70aa0b86c066e721012852a9851fdf8586117823&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 3 | +| Regressions (secondary) | 0.5% | [0.2%, 1.0%] | 12 | +| Improvements (primary) | -0.7% | [-1.6%, -0.3%] | 14 | +| Improvements (secondary) | -0.5% | [-1.0%, -0.3%] | 12 | +| All (primary) | -0.5% | [-1.6%, 0.4%] | 17 | + +Changes are expected since this changed a lot of our codegen. In practice +though mostly not meaningful (i.e., some improvements, some regressions). + +Rollup of 5 pull requests [#121955](https://github.com/rust-lang/rust/pull/121955) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=70aa0b86c066e721012852a9851fdf8586117823&end=89b78304e82dc5114e3b2faa0fbec747a28a2b37&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.7% | [0.2%, 3.7%] | 17 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.8%, -0.2%] | 10 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.3% | [-0.8%, 3.7%] | 27 | + +Likely to be caused by a correctness fix: https://github.com/rust-lang/rust/pull/121955#issuecomment-1975993842 + +perf: improve write_fmt to handle simple strings [#121001](https://github.com/rust-lang/rust/pull/121001) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1547c076bfec8abb819d6a81e1e4095d267bd5b4&end=5a1e5449c8f4cb6b12b4f64238e3c058767ebf02&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 1.7% | [0.5%, 3.6%] | 4 | +| Regressions (secondary) | 0.3% | [0.3%, 0.3%] | 1 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -1.3% | [-1.3%, -1.3%] | 1 | +| All (primary) | 1.7% | [0.5%, 3.6%] | 4 | + +Improvements to runtime (or at least assembly quality), at the cost of a bit +more time in LLVM. + +## Nominated Issues + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- "Stabilize `extended_varargs_abi_support`" [rust#116161](https://github.com/rust-lang/rust/pull/116161) + - Tracking issue #100189 + - T-lang or T-compiler should have a say for stabilization - which one? +- "`#![crate_name = EXPR]` semantically allows `EXPR` to be a macro call but otherwise mostly ignores it" [rust#122001](https://github.com/rust-lang/rust/issues/122001) + - nominated by @**León Orell Liehr (fmease)** ([comment](https://github.com/rust-lang/rust/issues/122001#issuecomment-1978925024)) + - The question is if supporting macro was ever intentional + +[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- No I-compiler-nominated RFCs this time. + +### Oldest PRs waiting for review + +[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc+label%3AS-waiting-on-review+draft%3Afalse+label%3AT-compiler) +- "Allow codegen backends to opt-out of parallel codegen" [rust#116791](https://github.com/rust-lang/rust/pull/116791) (last review activity: 4 months ago) + - cc: @**Wesley Wiser** +- "[AIX] Remove AixLinker's debuginfo() implementation" [rust#117118](https://github.com/rust-lang/rust/pull/117118) (last review activity: 4 months ago) + - Do we need an AIX expert or just anyone is fine? Seems quite straightforwarded? +- "tidy watcher" [rust#114209](https://github.com/rust-lang/rust/pull/114209) + - cc: @**Wesley Wiser** (or re-roll?) + +## Next week's WG checkins +- @_*WG-async-foundations* by @**nikomatsakis** and @**tmandry** +- @_*WG-diagnostics* by @**Esteban Küber** and @**oli** + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/HcDfU1v8SAiAWtLQPIJkJw) diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-03-14.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-03-14.md new file mode 100644 index 00000000..b67bc082 --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-03-14.md @@ -0,0 +1,407 @@ +--- +tags: weekly, rustc +type: docs +note_id: HcDfU1v8SAiAWtLQPIJkJw +--- + +# T-compiler Meeting Agenda 2024-03-14 + +## Announcements + +- :loudspeaker: Next week release of stable 1.77 `rustc` :loudspeaker: +- Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @_**davidtwco** or @_**Wesley Wiser** so we can pass it along). + +### Other WG meetings +- Types Team: ITE (Impl Trait Everywhere) Triage + +## MCPs/FCPs + +- New MCPs (take a look, see if you like them!) + - No new proposals this time. +- Old MCPs (stale MCP might be closed as per [MCP procedure](https://forge.rust-lang.org/compiler/mcp.html#when-should-major-change-proposals-be-closed)) + - "Support patchable-function-entry" [compiler-team#704](https://github.com/rust-lang/compiler-team/issues/704) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Support.20patchable-function-entry.20compiler-team.23704)) (last review activity: 3 months ago) +- Old MCPs (not seconded, take a look) + - "Target families for executable format" [compiler-team#716](https://github.com/rust-lang/compiler-team/issues/716) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Target.20families.20for.20executable.20format.20compiler-team.23716)) (last review activity: about 41 days ago) + - "Add `--emit=` to emit nothing" [compiler-team#718](https://github.com/rust-lang/compiler-team/issues/718) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20.60--emit.3D.60.20to.20emit.20nothing.20compiler-team.23718)) (last review activity: about 41 days ago) + - "Dist rustc with overflow checks" [compiler-team#724](https://github.com/rust-lang/compiler-team/issues/724) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Dist.20rustc.20with.20overflow.20checks.20compiler-team.23724)) (last review activity: about 20 days ago) + - "Promote riscv64gc-unknown-linux-musl to tier 2" [compiler-team#728](https://github.com/rust-lang/compiler-team/issues/728) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20riscv64gc-unknown-linux-gnu.20to.20ti.E2.80.A6.20compiler-team.23728)) (last review activity: about 6 days ago) +- Pending FCP requests (check your boxes!) + - "Tracking Issue for RFC 3013: Checking conditional compilation at compile time" [rust#82450](https://github.com/rust-lang/rust/issues/82450#issuecomment-1965328542) + - "Stabilize Wasm target features that are in phase 4 and 5" [rust#117457](https://github.com/rust-lang/rust/pull/117457#issuecomment-1789204219) + - "Stabilize `--env-set` option" [rust#119926](https://github.com/rust-lang/rust/pull/119926#issuecomment-1898766442) + - "Make casts of pointers to trait objects stricter" [rust#120248](https://github.com/rust-lang/rust/pull/120248#issuecomment-1981506568) + - "sess: stabilize `-Zrelro-level` as `-Crelro-level`" [rust#121694](https://github.com/rust-lang/rust/pull/121694#issuecomment-1988156080) + - "Add encoding for `f16` and `f128`" [rust#122106](https://github.com/rust-lang/rust/pull/122106#issuecomment-1983030121) +- Things in FCP (make sure you're good with it) + - "Add `wasm_c_abi` `future-incompat` lint" [rust#117918](https://github.com/rust-lang/rust/pull/117918) + - "debuginfo: Stabilize `-Z debug-macros`, `-Z collapse-macro-debuginfo` and `#[collapse_debuginfo]`" [rust#120845](https://github.com/rust-lang/rust/pull/120845) +- Accepted MCPs + - "MCP: Low level components for async drop" [compiler-team#727](https://github.com/rust-lang/compiler-team/issues/727) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/MCP.3A.20Low.20level.20components.20for.20async.20drop.20compiler-team.23727)) + - "Support debug fission using -Csplit-debuginfo=post-link" [compiler-team#721](https://github.com/rust-lang/compiler-team/issues/721) + - "Introduce perma-unstable `wasm-c-abi` flag" [compiler-team#703](https://github.com/rust-lang/compiler-team/issues/703#) + - "Put "checks that detect UB" under their own flag below `debug_assertions`" [compiler-team#725](https://github.com/rust-lang/compiler-team/issues/725) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Put.20.22checks.20that.20detect.20UB.22.20under.20their.20o.E2.80.A6.20compiler-team.23725)) + - "Separate incremental crate identity" [compiler-team#726](https://github.com/rust-lang/compiler-team/issues/726) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Separate.20incremental.20crate.20identity.20compiler-team.23726)) +- MCPs blocked on unresolved concerns + - "Add hygiene attributes to compile expanded source code" [compiler-team#692](https://github.com/rust-lang/compiler-team/issues/692) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20option.20to.20compile.20expanded.20ASTs.20for.20h.E2.80.A6.20compiler-team.23692)) (last review activity: about 57 days ago) + - concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318) + - "Add a new `--build-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20a.20new.20.60--build-id.60.20flag.20to.20rustc.20compiler-team.23635)) + - concern: [option-name](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1785349936) + - concern: [other-existing-options](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1779597156) + - "Retire the mailing list and make all decisions on zulip" [compiler-team#649](https://github.com/rust-lang/compiler-team/issues/649) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Retire.20the.20mailing.20list.20and.20make.20all.20deci.E2.80.A6.20compiler-team.23649)) + - concern: [automatic-sync](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1618902660) + - concern: [single-point-of-failure-via-stream-archival](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1664056989) +- Finalized FCPs (disposition merge) + - "Update Windows platform support" [rust#115141](https://github.com/rust-lang/rust/pull/115141) + - "more eagerly instantiate binders" [rust#119849](https://github.com/rust-lang/rust/pull/119849) +- Other teams finalized FCPs + - "Lint singleton gaps after exclusive ranges" [rust#118879](https://github.com/rust-lang/rust/pull/118879) + - "more eagerly instantiate binders" [rust#119849](https://github.com/rust-lang/rust/pull/119849) + - "align_offset, align_to: no longer allow implementations to spuriously fail to align" [rust#121201](https://github.com/rust-lang/rust/pull/121201) + - "`E0492: borrow of an interior mutable value may end up in the final value` during const eval when no inner mutability is involved" [rust#121250](https://github.com/rust-lang/rust/issues/121250) + - "Propagate temporary lifetime extension into if and match." [rust#121346](https://github.com/rust-lang/rust/pull/121346) + +### WG checkins + +## Next week's WG checkins +- @_*WG-async-foundations* by @**nikomatsakis** and @**tmandry** ([previous checkin](https://hackmd.io/team/rust-compiler-team?nav=overview)): + > Checkin text + +- @_*WG-diagnostics* by @**Esteban Küber** and @**oli** ([previous checkin](https://hackmd.io/team/rust-compiler-team?nav=overview)): + > #[diagnostic::on_unimplemented] shipped to stable! + +## Backport nominations + +[T-compiler beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler) / [T-compiler stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-compiler) +- :beta: [1.77?] "Downgrade const eval dangling ptr in final to future incompat lint" [rust#122204](https://github.com/rust-lang/rust/pull/122204) + - Authored by Felix: "Short term band-aid for issue #121610 (P-high regression in a crater run), downgrading the prior hard error to a future-incompat lint (tracked in issue #122153)." + - already merged, nominated by Wesley + - perf. run looks [neutral](https://github.com/rust-lang/rust/pull/122204#issuecomment-1996317393) + +- No stable nominations for `T-compiler` this time. + +[T-types stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-types) / [T-types beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-types) +- No beta nominations for `T-types` this time. +- No stable nominations for `T-types` this time. + +## PRs S-waiting-on-team + +[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler) +- [Issues in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ) + +## Issues of Note + +### Short Summary + +- [0 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical) + - [0 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee) +- [66 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) + - [36 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee) +- [0 P-critical, 3 P-high, 2 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) +- [0 P-critical, 1 P-high, 4 P-medium, 2 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) +- [0 P-critical, 36 P-high, 100 P-medium, 15 P-low regression-from-stable-to-stable](https://github.com/rust-lang/rust/labels/regression-from-stable-to-stable) + +### P-critical + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-compiler) +- No `P-critical` issues for `T-compiler` this time. + +[T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types) +- No `P-critical` issues for `T-types` this time. + +### P-high regressions + +[P-high beta regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-beta+label%3AP-high+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core) +- "rust-1.75.0 fails to compile with ICE on aarch64 and various ppc arches with LTO enabled - error: could not compile memchr" [rust#121124](https://github.com/rust-lang/rust/issues/121124) + - Waiting on feedback from Gentoo folks ([issue](https://bugs.gentoo.org/924301#c17) is progressing) +- "regression: visibility qualifiers are not permitted" [rust#121607](https://github.com/rust-lang/rust/issues/121607) + - fixed by #122004 (beta backport approved last week) +- "regression: encountered mutable pointer in final value" [rust#121610](https://github.com/rust-lang/rust/issues/121610) + - Will be fixed by #122204 (beta nominated) + +[Unassigned P-high nightly regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-nightly+label%3AP-high+no%3Aassignee+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core+) +- No unassigned `P-high` nightly regressions this time. + +## Performance logs + +> [triage logs 2024-03-11](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-03-11.md) + +A mixed week, with a vast number of improvements (in large part due to PR +#122010, which undoes a prior regression; PR #120985, a host LLVM update). +But also three admittedly small-ish regressions which seemed unanticipated and +were still large enough that I did not feel comfortable rubber-stamping them +with a perf-regression-triaged marking. + +Triage done by **@pnkfelix**. +Revision range: [41d97c8a..e919669d](https://perf.rust-lang.org/?start=41d97c8a5dea2731b0e56fe97cd7cb79e21cff79&end=e919669d42dfb8950866d4cb268c5359eb3f7c54&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.6% | [0.2%, 1.4%] | 38 | +| Regressions (secondary) | 1.1% | [0.2%, 4.9%] | 50 | +| Improvements (primary) | -1.0% | [-4.8%, -0.2%] | 119 | +| Improvements (secondary) | -0.8% | [-2.2%, -0.4%] | 36 | +| All (primary) | -0.6% | [-4.8%, 1.4%] | 157 | + + +2 Regressions, 5 Improvements, 9 Mixed; 5 of them in rollups +54 artifact comparisons made in total + +#### Regressions + +interpret: avoid a long-lived PlaceTy in stack frames [#121985](https://github.com/rust-lang/rust/pull/121985) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8c9a75b3238b66592779d6b240dbf78eacefebb8&end=52f8aec14c616387c5f793687f2d9026de6c78ca&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.3% | [0.3%, 0.3%] | 1 | +| Regressions (secondary) | 3.0% | [0.2%, 4.5%] | 8 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.3% | [0.3%, 0.3%] | 1 | + +* primary regression was to html5ever doc-full; was anctipated during development and is presumed spurious. +* marking as triaged. + +Detect unused struct impls pub trait [#121752](https://github.com/rust-lang/rust/pull/121752) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cd81f5b27ee00b49d413db50b5e6af871cebcf23&end=c69fda7dc664e62f8920a02a4e55d6207b212c24&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.4% | [0.2%, 0.5%] | 6 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.4% | [0.2%, 0.5%] | 6 | + +* primary regressions are all to serde and cranelift codegen for various profiles of incr-patched:println. +* the cycles measurement didn't observe any change at all, but that could be due to the difference being swamped by overall variance +* the [perf diff](https://perf.rust-lang.org/detailed-query.html?commit=c69fda7dc664e62f8920a02a4e55d6207b212c24&benchmark=serde-1.0.136-check&scenario=incr-patched%3A+println&base_commit=cd81f5b27ee00b49d413db50b5e6af871cebcf23&sort_idx=-11) highlights that the query `live_symbols_and_ignored_derived_traits` is the source of the perf regression, which is consistent with the idea that this lint has become more expensive since that's where we see the call to the newly-added `solve_rest_impl_items` (a worklist algorithm from the PR). +* leaving a note for the author about this; not marking as triaged. + +#### Improvements + +Rollup of 7 pull requests [#122111](https://github.com/rust-lang/rust/pull/122111) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bfe762e0ed2e95041cc12c02c5565c4368f2cc9f&end=7d3702e472b99be0f5de6608dd87af1df8f99428&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.4%, -0.3%] | 7 | +| Improvements (secondary) | -0.5% | [-0.6%, -0.3%] | 5 | +| All (primary) | -0.4% | [-0.4%, -0.3%] | 7 | + +* all 7 primary improvements are to html5ever. +* all 5 secondary improvements are to tt-muncher. + +Rollup of 8 pull requests [#122117](https://github.com/rust-lang/rust/pull/122117) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7d3702e472b99be0f5de6608dd87af1df8f99428&end=d03b986db1f4146b58078c9dde5b0fa6d808f031&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -2.1% | [-3.9%, -0.4%] | 12 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -2.1% | [-3.9%, -0.4%] | 12 | + +* all 12 primary improvements are to diesel +* this is because of PR #122107, which made the `non_local_definitions` lint allow-by-default +* this effectively had the reverse effect of PR #120393 (which added the aforementioned lint and caused regressions to 12 variations of diesel). + +Merge `collect_mod_item_types` query into `check_well_formed` [#121500](https://github.com/rust-lang/rust/pull/121500) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=42825768b103c28b10ce0407749acb21d32abeec&end=74acabe9b042ea8c42862ee29aca2a8b7d333644&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.6% | [-0.8%, -0.2%] | 4 | +| Improvements (secondary) | -0.5% | [-0.6%, -0.5%] | 2 | +| All (primary) | -0.6% | [-0.8%, -0.2%] | 4 | + +* 3 significant primary improvements are to libc incr-patched:clone, and 1 less significant to bitmaps check incr-unchanged. + +Avoid invoking the `intrinsic` query for DefKinds other than `Fn` or `AssocFn` [#122010](https://github.com/rust-lang/rust/pull/122010) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=01d73d4041969cde4a79bf9793521ef323248a24&end=4d4bb491b65c300835442f6cb4f34fc9a5685c26&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.5% | [-1.0%, -0.2%] | 74 | +| Improvements (secondary) | -0.7% | [-2.1%, -0.2%] | 26 | +| All (primary) | -0.5% | [-1.0%, -0.2%] | 74 | + +* undoes the vast bulk of the broad perf regression injected by PR #120675 + +Dep node encoding cleanups [#122064](https://github.com/rust-lang/rust/pull/122064) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5bc7b9ac8ace5312e1d2cdc2722715cf58d4f926&end=094a6204f590e6b4770b5f26359dd17a07897adf&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 19 | +| Improvements (secondary) | -0.3% | [-0.4%, -0.2%] | 12 | +| All (primary) | -0.3% | [-0.3%, -0.2%] | 19 | + + +#### Mixed + +Optimize write with as_const_str for shorter code [#122059](https://github.com/rust-lang/rust/pull/122059) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=79d246112dc95bbd67848f7546f3fd1aca516b82&end=9fb91aa2e70bfcc1c0adaad79711f0321ea81ece&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 1.1% | [0.3%, 1.9%] | 2 | +| Improvements (primary) | -0.8% | [-1.2%, -0.4%] | 2 | +| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 | +| All (primary) | -0.8% | [-1.2%, -0.4%] | 2 | + +* (secondary) regressions are to deep-vector debug-full (which may be spurious based on the graph) and wg-grammar debug-incr-unchanged +* since @nnethercote was already involved in related efforts here (e.g. PR #121001) and this resulting refinement, I'm going to mark this as triaged. + +Replace the default branch with an unreachable branch If it is the last variant [#120268](https://github.com/rust-lang/rust/pull/120268) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9fb91aa2e70bfcc1c0adaad79711f0321ea81ece&end=14fbc3c00525b41a3a3ee2c90e9ab6fd3b05274f&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.7% | [0.2%, 1.8%] | 4 | +| Regressions (secondary) | 0.2% | [0.2%, 0.3%] | 7 | +| Improvements (primary) | -0.8% | [-1.2%, -0.3%] | 5 | +| Improvements (secondary) | -0.9% | [-2.2%, -0.3%] | 3 | +| All (primary) | -0.1% | [-1.2%, 1.8%] | 9 | + +* primary regressions are to cargo opt-full (1.76%), cargo debug-incr-patched:println (0.40%), libc doc-full (0.50%), hyper doc-full (0.19%). +* the regression to cargo opt-full [was anticipated](https://github.com/rust-lang/rust/pull/120268#issuecomment-1943896894) by rust-timer runs during development; but other follow-up rust-timer runs did not always include the same regression. +* the PR itself notes that there are known performance problems in LLVM with unreachable branches (see e.g. [llvm#78578](https://github.com/llvm/llvm-project/issues/78578)). It is not clear to me whether the above regressions are related to that. +* posted comment [asking](https://github.com/rust-lang/rust/pull/120268#issuecomment-1992182505) PR author for more info. Not marking as triaged. + +Rollup of 8 pull requests [#122182](https://github.com/rust-lang/rust/pull/122182) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=14fbc3c00525b41a3a3ee2c90e9ab6fd3b05274f&end=1b2c53a15dba7962cfc284c3b6d61a0341ffa27a&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 1.3% | [1.3%, 1.3%] | 1 | +| Regressions (secondary) | 0.8% | [0.2%, 1.3%] | 2 | +| Improvements (primary) | -0.3% | [-0.7%, -0.2%] | 17 | +| Improvements (secondary) | -0.5% | [-0.9%, -0.2%] | 15 | +| All (primary) | -0.3% | [-0.7%, 1.3%] | 18 | + +* sole primary regression is to image opt-full +* improvements obviously outweigh the regressions +* ... but oh, there is also a bootstrap regression that may be of concern: "Bootstrap: 648.483s -> 652.903s (0.68%)" +* kobzol has hypothesized that PR #122099 may be the cause of the bootstrap regression. +* after some discussion on the rollup PR, decided to mark as triaged; the author + may well choose to do some followup, but we will not hound them about it. :) + +Replace `TypeWalker` usage with `TypeVisitor` in `wf.rs` [#122150](https://github.com/rust-lang/rust/pull/122150) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9d272a1b0501f96da0ed10caa1b2eb6dbb653686&end=b054da815501bafb24a08284151d32862f7a3a13&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 0.7% | [0.3%, 1.3%] | 6 | +| Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 6 | +| Improvements (secondary) | -0.2% | [-0.3%, -0.2%] | 3 | +| All (primary) | -0.3% | [-0.4%, -0.2%] | 6 | + + +* six (secondary) regressions (to variants of unify-linearly and regression-31157) were anticipated during development +* we were also expecting a broader set of 34 primary improvements. But the mean primary improvement we expected was -0.3%, which was unchanged. +* marking as triaged + +Rollup of 12 pull requests [#122241](https://github.com/rust-lang/rust/pull/122241) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b054da815501bafb24a08284151d32862f7a3a13&end=8401645716b26a8b4c6974dc0680e55e81e9e8a1&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 0.9% | [0.2%, 1.6%] | 2 | +| Improvements (primary) | -0.3% | [-0.3%, -0.3%] | 2 | +| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 | +| All (primary) | -0.3% | [-0.3%, -0.3%] | 2 | + +* sole regressions are to (secondary) regression-31157 debug-incr-full (1.56%), which might be spurious based on the graph, and tt-muncher opt-incr-unchanged (0.19%), which I don't consider worth getting worried about. +* marking as triaged. + +Update host LLVM on x64 Linux to LLVM 18 [#120985](https://github.com/rust-lang/rust/pull/120985) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8401645716b26a8b4c6974dc0680e55e81e9e8a1&end=25ee3c6a2f429a97ff4ad239e3f42409cd71fe0a&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.3% | [0.1%, 1.0%] | 88 | +| Regressions (secondary) | 0.4% | [0.1%, 0.5%] | 21 | +| Improvements (primary) | -1.0% | [-1.6%, -0.4%] | 54 | +| Improvements (secondary) | -0.8% | [-1.2%, -0.6%] | 8 | +| All (primary) | -0.2% | [-1.6%, 1.0%] | 142 | + +* These performance changes were anticipated, and the improvements outweigh the regressions. +* Marking as triaged. + +Rollup of 8 pull requests [#122256](https://github.com/rust-lang/rust/pull/122256) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=25ee3c6a2f429a97ff4ad239e3f42409cd71fe0a&end=2d24fe591f30386d6d5fc2bb941c78d7266bf10f&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.6% | [0.2%, 1.6%] | 21 | +| Regressions (secondary) | 0.6% | [0.3%, 1.6%] | 7 | +| Improvements (primary) | -0.7% | [-1.0%, -0.5%] | 3 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.4% | [-1.0%, 1.6%] | 24 | + +* Nadrieril has isolated this to the rolled up PR #120504 and has reported it on that PR. +* (already marked as triaged) +* It might be addressed by follow-up PR #122396 (which is undergoing evaluation now). + +Distinguish between library and lang UB in assert_unsafe_precondition [#121662](https://github.com/rust-lang/rust/pull/121662) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2d24fe591f30386d6d5fc2bb941c78d7266bf10f&end=768408af123a455fb27ad8af8055becd5b95d36f&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 1.1% | [0.3%, 1.7%] | 4 | +| Regressions (secondary) | 1.1% | [1.1%, 1.1%] | 1 | +| Improvements (primary) | -0.9% | [-1.7%, -0.4%] | 4 | +| Improvements (secondary) | -0.2% | [-0.2%, -0.2%] | 1 | +| All (primary) | 0.1% | [-1.7%, 1.7%] | 8 | + +* primary regressions are to cranelift-codegen opt-full (1.74%), cargo opt-full (1.33%), clap opt-full (1.18%), and exa debug-incr-unchanged (0.28%). +* the [rust-timer run](https://github.com/rust-lang/rust/pull/121662#issuecomment-1966015546) was "only" expected to regress 5 benchmarks, largely a *different* set, by a mean of 0.5%, not the 1.1% reported above. +* not marking as triaged + +Stop using LLVM struct types for byval/sret [#122050](https://github.com/rust-lang/rust/pull/122050) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c69fda7dc664e62f8920a02a4e55d6207b212c24&end=a6d93acf5fdeb020ab86cc0d30d5672c23a7dba6&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 1.9% | [0.5%, 3.3%] | 2 | +| Improvements (primary) | -2.1% | [-2.4%, -1.9%] | 2 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -2.1% | [-2.4%, -1.9%] | 2 | + +* already marked as triaged as the reported regressions are clearly spurious based on the performance graph + +## Nominated Issues + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- "Stabilize `extended_varargs_abi_support`" [rust#116161](https://github.com/rust-lang/rust/pull/116161) + - Waiting on T-lang (discussed [last week](https://github.com/rust-lang/rust/pull/116161#issuecomment-1983829513)) + - Will probably remove T-compiler nomination until then ... + +[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- No I-compiler-nominated RFCs this time. + +### Oldest PRs waiting for review + +[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc+label%3AS-waiting-on-review+draft%3Afalse+label%3AT-compiler) +- "[AIX] Remove AixLinker's debuginfo() implementation" [rust#117118](https://github.com/rust-lang/rust/pull/117118) (last review activity: 4 months ago) + - @**Wesley Wiser** can you rubber stamp this one? It comes from the AIX target maintainer, seems fine ([last week comment](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202024-03-07/near/425346860)) +- "tidy watcher" [rust#114209](https://github.com/rust-lang/rust/pull/114209) + - cc: @**Wesley Wiser** (or re-roll?) +- "Require `type_map::stub` callers to supply file information" [rust#104342](https://github.com/rust-lang/rust/pull/104342) (last review activity: 2 months ago) + - cc: @**Wesley Wiser** +- "Fix gce ICE when encountering ill-formed consts" [rust#119060](https://github.com/rust-lang/rust/pull/119060) (last review activity: 2 months ago) + - cc: @**Michael Goulet (compiler-errors)** +- "dump-ice-to-disk/check.sh: convert needless bashism in a /bin/sh script." [rust#119992](https://github.com/rust-lang/rust/pull/119992) (last review activity: about 58 days ago) + - cc: @**nils (Nilstrieb)** + +## Next week's WG checkins + +- @_*WG-rustc-dev-guide* by @**Santiago Pastorino** and @**Yuki Okushi|217081** +- Impl Trait initiative by @**oli** + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/XOZqRee1QzmCEsaqQENWUQ) diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-03-21.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-03-21.md new file mode 100644 index 00000000..d3dcd513 --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-03-21.md @@ -0,0 +1,344 @@ +--- +tags: weekly, rustc +type: docs +note_id: XOZqRee1QzmCEsaqQENWUQ +--- + +# T-compiler Meeting Agenda 2024-03-21 + +## Announcements + +- Today release of rustc 1.77 stable +- "Enable frame pointers for the standard library" [rust#122646](https://github.com/rust-lang/rust/pull/122646) + - suggested by @_**nils (Nilstrieb)** ([comment](https://github.com/rust-lang/rust/pull/122646#issuecomment-2003225294)): FIY to T-compiler as it's a perhaps impacting change +- Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @_**davidtwco** or @_**Wesley Wiser** so we can pass it along). + +### Other WG meetings ([calendar link](https://calendar.google.com/calendar/embed?src=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com)) +- Types Team: ITE (Impl Trait Everywhere) Triage + +## MCPs/FCPs + +- New MCPs (take a look, see if you like them!) + - "Skip virtual drop for !needs_drop types" [compiler-team#730](https://github.com/rust-lang/compiler-team/issues/730) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Skip.20virtual.20drop.20for.20.21needs_drop.20types.20compiler-team.23730)) +- Old MCPs (stale MCP might be closed as per [MCP procedure](https://forge.rust-lang.org/compiler/mcp.html#when-should-major-change-proposals-be-closed)) + - None at this time +- Old MCPs (not seconded, take a look) + - "Target families for executable format" [compiler-team#716](https://github.com/rust-lang/compiler-team/issues/716) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Target.20families.20for.20executable.20format.20compiler-team.23716)) (last review activity: about 48 days ago) + - "Add `--emit=` to emit nothing" [compiler-team#718](https://github.com/rust-lang/compiler-team/issues/718) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20.60--emit.3D.60.20to.20emit.20nothing.20compiler-team.23718)) (last review activity: about 48 days ago) + - "Promote riscv64gc-unknown-linux-musl to tier 2" [compiler-team#728](https://github.com/rust-lang/compiler-team/issues/728) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20riscv64gc-unknown-linux-gnu.20to.20ti.E2.80.A6.20compiler-team.23728)) (last review activity: about 13 days ago) +- Pending FCP requests (check your boxes!) + - "Tracking Issue for RFC 3013: Checking conditional compilation at compile time" [rust#82450](https://github.com/rust-lang/rust/issues/82450) + - "Stabilize Wasm target features that are in phase 4 and 5" [rust#117457](https://github.com/rust-lang/rust/pull/117457) + - "Stabilize `--env-set` option" [rust#119926](https://github.com/rust-lang/rust/pull/119926) + - "Make casts of pointers to trait objects stricter" [rust#120248](https://github.com/rust-lang/rust/pull/120248) + - "sess: stabilize `-Zrelro-level` as `-Crelro-level`" [rust#121694](https://github.com/rust-lang/rust/pull/121694) + - "Add encoding for `f16` and `f128`" [rust#122106](https://github.com/rust-lang/rust/pull/122106) +- Things in FCP (make sure you're good with it) + - "Dist rustc with overflow checks" [compiler-team#724](https://github.com/rust-lang/compiler-team/issues/724) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Dist.20rustc.20with.20overflow.20checks.20compiler-team.23724)) +- Accepted MCPs + - No new accepted proposals this time. +- MCPs blocked on unresolved concerns + - "Add a new `--build-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20a.20new.20.60--build-id.60.20flag.20to.20rustc.20compiler-team.23635)) + - concern: [other-existing-options](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1779597156) + - concern: [option-name](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1785349936) + - "Retire the mailing list and make all decisions on zulip" [compiler-team#649](https://github.com/rust-lang/compiler-team/issues/649) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Retire.20the.20mailing.20list.20and.20make.20all.20deci.E2.80.A6.20compiler-team.23649)) + - concern: [automatic-sync](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1618902660) + - concern: [single-point-of-failure-via-stream-archival](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1664056989) + - "Add hygiene attributes to compile expanded source code" [compiler-team#692](https://github.com/rust-lang/compiler-team/issues/692) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20option.20to.20compile.20expanded.20ASTs.20for.20h.E2.80.A6.20compiler-team.23692)) (last review activity: 2 months ago) + - concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318) +- Finalized FCPs (disposition merge) + - "rework opaque type region inference" [rust#116891](https://github.com/rust-lang/rust/pull/116891) + - "instantiate higher ranked goals outside of candidate selection" [rust#119820](https://github.com/rust-lang/rust/pull/119820) +- Other teams finalized FCPs + - "Tracking issue for Allow a re-export for `main` (RFC 1260)" [rust#28937](https://github.com/rust-lang/rust/issues/28937) + - "`c_unwind` full stabilization request: change in `extern "C"` behavior" [rust#115285](https://github.com/rust-lang/rust/issues/115285) + - "rework opaque type region inference" [rust#116891](https://github.com/rust-lang/rust/pull/116891) + - "Prevent opaque types being instantiated twice with different regions within the same function" [rust#116935](https://github.com/rust-lang/rust/pull/116935) + - "instantiate higher ranked goals outside of candidate selection" [rust#119820](https://github.com/rust-lang/rust/pull/119820) + - "Split refining_impl_trait lint into _reachable, _internal variants" [rust#121720](https://github.com/rust-lang/rust/pull/121720) + - "Stabilize associated type bounds (RFC 2289)" [rust#122055](https://github.com/rust-lang/rust/pull/122055) + +### WG checkins + +- @_*WG-rustc-dev-guide* by @**Santiago Pastorino** and @**Yuki Okushi|217081** + > Checkin text + +- Impl Trait initiative by @**oli** + > Checkin text + +## Backport nominations + +[T-compiler beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler) / [T-compiler stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-compiler) +- :beta: [1.78] "Make `#[diagnostic::on_unimplemented]` format string parsing more robust" [rust#122402](https://github.com/rust-lang/rust/pull/122402) + - Fixes #122391, a few diagnostic errors + - Nominated by @**Michael Goulet (compiler-errors)** ([comment](https://github.com/rust-lang/rust/issues/122391)) to stabilize it at the same time as `diagnostic::on_unimplemented` + +- :beta: [1.78] "Do not eat nested expressions' results in `MayContainYieldPoint` format args visitor" [rust#122680](https://github.com/rust-lang/rust/pull/122680) + - authored by @**lqd**, fixes #122674, a nightly miscompilation. Due to release timeline the issue is on beta right now + +- No stable nominations for `T-compiler` this time. + +[T-types stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-types) / [T-types beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-types) +- No beta nominations for `T-types` this time. +- No stable nominations for `T-types` this time. + +## PRs S-waiting-on-team + +[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler) +- [Issues in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ) + +## Issues of Note + +### Short Summary + +- [0 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical) + - [0 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee) +- [64 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) + - [36 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee) +- [0 P-critical, 0 P-high, 1 P-medium, 1 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) +- [0 P-critical, 1 P-high, 5 P-medium, 2 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) +- [0 P-critical, 37 P-high, 100 P-medium, 15 P-low regression-from-stable-to-stable](https://github.com/rust-lang/rust/labels/regression-from-stable-to-stable) + +### P-critical + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-compiler) +- No `P-critical` issues for `T-compiler` this time. + +[T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types) +- No `P-critical` issues for `T-types` this time. + +### P-high regressions + +[P-high beta regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-beta+label%3AP-high+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core) +- No `P-high` beta regressions this time. + +[Unassigned P-high nightly regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-nightly+label%3AP-high+no%3Aassignee+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core+) +- No unassigned `P-high` nightly regressions this time. + +## Performance logs + +> [triage logs for 2023-03-19](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-03-19.md) + +Even though the summary might not look like it, this was actually a relatively quiet week, +with a few small regressions. The large regression that is also shown in the summary table was +caused by extending the verification of incremental compilation results. +However, this verification is not actually fully enabled by default, so these regressions are mostly +only visible in our benchmarking suite, which enables the verification to achieve more deterministic +benchmarking results. One small regression was also caused by enabling frame pointers for the Rust +standard library, which should improve profiling of Rust programs. + +Triage done by **@kobzol**. +Revision +range: [e919669d..21d94a3d](https://perf.rust-lang.org/?start=e919669d42dfb8950866d4cb268c5359eb3f7c54&end=21d94a3d2c63cacf8eaf9d0ca770c0b450c558d4&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 2.5% | [0.4%, 7.8%] | 207 | +| Regressions (secondary) | 2.9% | [0.2%, 8.3%] | 128 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -1.0% | [-1.3%, -0.4%] | 4 | +| All (primary) | 2.5% | [0.4%, 7.8%] | 207 | + +4 Regressions, 1 Improvements, 6 Mixed; 4 of them in rollups +67 artifact comparisons made in total + +#### Regressions + +Make `DefiningAnchor::Bind` only store the opaque types that may be constrained, instead of the +current infcx root +item. [#121796](https://github.com/rust-lang/rust/pull/121796) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6554a5645a13e4d9331fd028960d69be91d7492d&end=4ccbb7dc95596c7fc0c5756fdc47a17a56c085d3&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.6% | [0.2%, 1.8%] | 112 | +| Regressions (secondary) | 0.7% | [0.2%, 1.8%] | 27 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.6% | [0.2%, 1.8%] | 112 | + +* This is a refactoring of the "old" trait solver that was necessary for follow-up compiler changes. + +Rollup of 12 pull +requests [#122389](https://github.com/rust-lang/rust/pull/122389) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7de1a1f6db26cf7af43cca74819118428e6317ee&end=6b1e5d9db3b0d569bd847fdcb98c85ee8f7a8ef1&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.7% | [0.7%, 0.7%] | 3 | +| Regressions (secondary) | 1.1% | [0.5%, 2.1%] | 3 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.7% | [0.7%, 0.7%] | 3 | + +* Noise, marked as triaged. + +Verify that query keys result in unique dep +nodes [#122227](https://github.com/rust-lang/rust/pull/122227) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e61dcc7a0ac33ef054d76453307124233edcf545&end=d3555f3d8e555ce488bbf8eee5eccdb66a464e14&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 2.0% | [0.2%, 7.8%] | 193 | +| Regressions (secondary) | 2.4% | [0.3%, 7.8%] | 153 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -1.3% | [-1.3%, -1.3%] | 1 | +| All (primary) | 2.0% | [0.2%, 7.8%] | 193 | + +* This PR adds additional verification to the compiler that checks if incremental compilation didn't + encounter problems. +* This result looks quite bad, but that is mostly caused by the configuration of our benchmark + suite, which fully enables this verification to make benchmarking more deterministic. +* Normal builds of user code should not be affected by this change. + +Enable frame pointers for the standard +library [#122646](https://github.com/rust-lang/rust/pull/122646) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=13abc0ac9b2b77299cf02d634fc409e26a180ef3&end=3cdcdaf31b45f8045164aae9604573d23091970b&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.3% | [0.2%, 0.6%] | 70 | +| Regressions (secondary) | 0.3% | [0.2%, 0.5%] | 22 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -2.0% | [-2.0%, -2.0%] | 1 | +| All (primary) | 0.3% | [0.2%, 0.6%] | 70 | + +* This PR has a small instruction count cost across the board, but cycles and walltime were affected + much less. +* It enables frame pointers for the Rust standard library, which should make profiling of Rust code + more robust and accurate, which should be worth this small perf. hit. +* Marked as triaged. + +#### Improvements + +Rollup of 15 pull +requests [#122338](https://github.com/rust-lang/rust/pull/122338) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=65cd843ae06ad00123c131a431ed5304e4cd577a&end=6554a5645a13e4d9331fd028960d69be91d7492d&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -1.2% | [-1.2%, -1.1%] | 4 | +| Improvements (secondary) | -0.8% | [-1.2%, -0.4%] | 13 | +| All (primary) | -1.2% | [-1.2%, -1.1%] | 4 | + +#### Mixed + +Update +cargo [#122394](https://github.com/rust-lang/rust/pull/122394) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6b1e5d9db3b0d569bd847fdcb98c85ee8f7a8ef1&end=a165f1f65015b1bd4afd2ec50700aaacf2e0c485&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 1.1% | [1.1%, 1.1%] | 1 | +| Improvements (primary) | -0.7% | [-0.7%, -0.7%] | 3 | +| Improvements (secondary) | -0.5% | [-0.6%, -0.3%] | 5 | +| All (primary) | -0.7% | [-0.7%, -0.7%] | 3 | + +* Most likely noise. + +more eagerly instantiate +binders [#119849](https://github.com/rust-lang/rust/pull/119849) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=30f74ff0dc4d66debc8b50724c446f817e5f75f4&end=fd27e8745f0f04dc7c289893ef54a618c7c9e1da&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.7% | [0.2%, 1.1%] | 14 | +| Regressions (secondary) | 0.5% | [0.4%, 1.0%] | 7 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -1.2% | [-1.4%, -1.1%] | 6 | +| All (primary) | 0.7% | [0.2%, 1.1%] | 14 | + +* A small regression for trait-heavy crates, caused by a fix to the trait solver. +* Marked as triaged. + +Rollup of 9 pull +requests [#122607](https://github.com/rust-lang/rust/pull/122607) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4c1b9c3e2f402efe27a24e424c9b59aa2fa5c83f&end=c8813ddd6d2602ae5473752031fd16ba70a6e4a7&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 1.7% | [1.7%, 1.7%] | 1 | +| Regressions (secondary) | 2.7% | [2.7%, 2.7%] | 1 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -5.3% | [-5.3%, -5.3%] | 1 | +| All (primary) | 1.7% | [1.7%, 1.7%] | 1 | + +* The largest regression was caused by [#122601](https://github.com/rust-lang/rust/pull/122601), + which should enable more LLVM optimizations, so some regressions to `opt` benchmarks is expected. +* Marked as triaged. + +Move generic `NonZero` `rustc_layout_scalar_valid_range_start` attribute to inner +type. [#121885](https://github.com/rust-lang/rust/pull/121885) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c8813ddd6d2602ae5473752031fd16ba70a6e4a7&end=a615cea3339046c7ab2d75cd253727d1fd42dd0b&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.4% | [0.3%, 0.6%] | 9 | +| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -2.8% | [-2.8%, -2.8%] | 1 | +| All (primary) | 0.4% | [0.3%, 0.6%] | 9 | + +* A small regression caused by internal refactoring in the compiler. Marked as triaged. + +Rollup of 8 pull +requests [#122690](https://github.com/rust-lang/rust/pull/122690) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3cdcdaf31b45f8045164aae9604573d23091970b&end=d31b6fb8c06b43536ac5be38462d2a55784e2199&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 2.7% | [0.2%, 5.3%] | 2 | +| Improvements (primary) | -0.2% | [-0.3%, -0.2%] | 7 | +| Improvements (secondary) | -0.4% | [-0.5%, -0.3%] | 9 | +| All (primary) | -0.2% | [-0.3%, -0.2%] | 7 | + +* Most likely noise, marked as triaged. + +Rollup of 11 pull +requests [#122713](https://github.com/rust-lang/rust/pull/122713) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d31b6fb8c06b43536ac5be38462d2a55784e2199&end=3c85e56249b0b1942339a6a989a971bf6f1c9e0f&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 1.0% | [0.5%, 1.4%] | 3 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -0.5% | [-0.9%, -0.4%] | 7 | +| All (primary) | 1.0% | [0.5%, 1.4%] | 3 | + +* Small regression in match checking caused + by [#121823](https://github.com/rust-lang/rust/pull/121823), + which improves compiler diagnostics. +* Marked as triaged. + +## Nominated Issues + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- No I-compiler-nominated issues this time. + +[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- No I-compiler-nominated RFCs this time. + +### Oldest PRs waiting for review + +[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc+label%3AS-waiting-on-review+draft%3Afalse+label%3AT-compiler) +- "Enable DestinationPropagation by default." [rust#115105](https://github.com/rust-lang/rust/pull/115105) (last review activity: 2 months ago) + - cc: @**tm|352985** +- "Suggest ref mut for pattern matching assignment" [rust#119650](https://github.com/rust-lang/rust/pull/119650) (last review activity: about 54 days ago) + - cc: @**Wesley Wiser** +- "Small improvements to internal documentation" [rust#120388](https://github.com/rust-lang/rust/pull/120388) (last review activity: about 54 days ago) + - cc: @**Esteban Küber** +- "Update rustc_codegen_cranelift's dependencies" [rust#119741](https://github.com/rust-lang/rust/pull/119741) (last review activity: about 53 days ago) + - cc @**bjorn3** + +## Next week's WG checkins + +- @_*WG-llvm* by @**nagisa** and @**Nikita Popov** +- @_*WG-mir-opt* by @**oli** + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/iVOLhzajRKuaS4GzcSWVNQ) diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-03-28.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-03-28.md new file mode 100644 index 00000000..732efadd --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-03-28.md @@ -0,0 +1,340 @@ +--- +tags: weekly, rustc +type: docs +note_id: iVOLhzajRKuaS4GzcSWVNQ +--- + +# T-compiler Meeting Agenda 2024-03-28 + +## Announcements + +- A dot release 1.77.1 is out today to fix #122857 ([Zulip discussion](https://rust-lang.zulipchat.com/#narrow/stream/241545-t-release/topic/1.2E77.2E1/near/429535704)) + - Immediate fix provided by cargo, rustc fix will take a bit longer ([comment](https://github.com/rust-lang/rust/pull/123031#issuecomment-2022274835)) + - Will also backport #122693 (less critical) + - [blog post](https://github.com/rust-lang/blog.rust-lang.org/blob/0bfdb1ef2c333a50e93699c2b70387a89dcc197a/posts/2024-03-28-Rust-1.77.1.md). +- Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @_**davidtwco** or @_**Wesley Wiser** so we can pass it along). + +### Other WG meetings ([calendar link](https://calendar.google.com/calendar/embed?src=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com)) +- Types Team: ITE (Impl Trait Everywhere) Triage + +## MCPs/FCPs + +- New MCPs (take a look, see if you like them!) + - "Skip virtual drop for !needs_drop types" [compiler-team#730](https://github.com/rust-lang/compiler-team/issues/730) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Skip.20virtual.20drop.20for.20.21needs_drop.20types.20compiler-team.23730)) + - "allow all command line flags to be passed multiple times, overwriting previous usages" [compiler-team#731](https://github.com/rust-lang/compiler-team/issues/731) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/allow.20all.20command.20line.20flags.20to.20be.20passed.E2.80.A6.20compiler-team.23731)) +- Old MCPs (stale MCP might be closed as per [MCP procedure](https://forge.rust-lang.org/compiler/mcp.html#when-should-major-change-proposals-be-closed)) + - None at this time +- Old MCPs (not seconded, take a look) + - "Target families for executable format" [compiler-team#716](https://github.com/rust-lang/compiler-team/issues/716) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Target.20families.20for.20executable.20format.20compiler-team.23716)) (last review activity: about 55 days ago) + - "Add `--emit=` to emit nothing" [compiler-team#718](https://github.com/rust-lang/compiler-team/issues/718) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20.60--emit.3D.60.20to.20emit.20nothing.20compiler-team.23718)) (last review activity: about 55 days ago) + - "Promote riscv64gc-unknown-linux-musl to tier 2" [compiler-team#728](https://github.com/rust-lang/compiler-team/issues/728) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20riscv64gc-unknown-linux-gnu.20to.20ti.E2.80.A6.20compiler-team.23728)) (last review activity: about 20 days ago) +- Pending FCP requests (check your boxes!) + - merge: [Add a new `--build-id` flag to rustc (compiler-team#635)](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1777545767) + * @_**|125250** @_**|116107** @_**|125294** @_**|123856** + * [other-existing-options (by petrochenkov)](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1779597156) [option-name (by wesleywiser)](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1785349936) + - merge: [Retire the mailing list and make all decisions on zulip (compiler-team#649)](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1618781780) + * no pending checkboxs + * [automatic-sync (by compiler-errors)](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1618902660) [single-point-of-failure-via-stream-archival (by pnkfelix)](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1664056989) + - merge: [Tracking Issue for RFC 3013: Checking conditional compilation at compile time (rust#82450)](https://github.com/rust-lang/rust/issues/82450#issuecomment-1965328542) + * @_**|119009** @_**|116107** @_**|125294** @_**|119031** @_**|248906** @_**|232957** + * no pending concerns + - merge: [Limit `-C strip` on MSVC (rust#115120)](https://github.com/rust-lang/rust/pull/115120#issuecomment-2024832395) + * @_**|119009** @_**|116083** @_**|123586** @_**|125250** @_**|116107** @_**|125294** @_**|119031** @_**|248906** @_**|426609** @_**|116118** @_**|216206** @_**|232957** + * no pending concerns + - merge: [Stabilize `--env-set` option (rust#119926)](https://github.com/rust-lang/rust/pull/119926#issuecomment-1898766442) + * @_**|119009** @_**|116083** @_**|124288** @_**|123586** @_**|125250** @_**|119031** @_**|124287** @_**|116118** + * [other-rustc-vars (by petrochenkov)](https://github.com/rust-lang/rust/pull/119926#issuecomment-1900703005) + - merge: [Make casts of pointers to trait objects stricter (rust#120248)](https://github.com/rust-lang/rust/pull/120248#issuecomment-1981506568) + * @_**|239881** @_**|116883** @_**|125270** + * no pending concerns + - merge: [sess: stabilize `-Zrelro-level` as `-Crelro-level` (rust#121694)](https://github.com/rust-lang/rust/pull/121694#issuecomment-1988156080) + * @_**|119009** @_**|116083** @_**|119031** @_**|116118** @_**|232957** + * no pending concerns + - merge: [Add encoding for `f16` and `f128` (rust#122106)](https://github.com/rust-lang/rust/pull/122106#issuecomment-1983030121) + * @_**|119009** @_**|116083** @_**|125250** @_**|125294** @_**|119031** @_**|232957** + * no pending concerns +- Things in FCP (make sure you're good with it) + - "Stabilize Wasm target features that are in phase 4 and 5" [rust#117457](https://github.com/rust-lang/rust/pull/117457) +- Accepted MCPs + - "Dist rustc with overflow checks" [compiler-team#724](https://github.com/rust-lang/compiler-team/issues/724) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Dist.20rustc.20with.20overflow.20checks.20compiler-team.23724)) +- MCPs blocked on unresolved concerns + - "Add hygiene attributes to compile expanded source code" [compiler-team#692](https://github.com/rust-lang/compiler-team/issues/692) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20option.20to.20compile.20expanded.20ASTs.20for.20h.E2.80.A6.20compiler-team.23692)) (last review activity: 2 months ago) + - concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318) +- Finalized FCPs (disposition merge) + - "rework opaque type region inference" [rust#116891](https://github.com/rust-lang/rust/pull/116891) + - "Normalize trait ref before orphan check & consider ty params in alias types to be uncovered" [rust#117164](https://github.com/rust-lang/rust/pull/117164) + - "instantiate higher ranked goals outside of candidate selection" [rust#119820](https://github.com/rust-lang/rust/pull/119820) + - "transmute: caution against int2ptr transmutation" [rust#122379](https://github.com/rust-lang/rust/pull/122379) +- Other teams finalized FCPs + - "Tracking issue for Allow a re-export for `main` (RFC 1260)" [rust#28937](https://github.com/rust-lang/rust/issues/28937) + - "`c_unwind` full stabilization request: change in `extern "C"` behavior" [rust#115285](https://github.com/rust-lang/rust/issues/115285) + - "rework opaque type region inference" [rust#116891](https://github.com/rust-lang/rust/pull/116891) + - "Prevent opaque types being instantiated twice with different regions within the same function" [rust#116935](https://github.com/rust-lang/rust/pull/116935) + - "Normalize trait ref before orphan check & consider ty params in alias types to be uncovered" [rust#117164](https://github.com/rust-lang/rust/pull/117164) + - "instantiate higher ranked goals outside of candidate selection" [rust#119820](https://github.com/rust-lang/rust/pull/119820) + - "Split refining_impl_trait lint into _reachable, _internal variants" [rust#121720](https://github.com/rust-lang/rust/pull/121720) + - "Stabilize associated type bounds (RFC 2289)" [rust#122055](https://github.com/rust-lang/rust/pull/122055) + - "transmute: caution against int2ptr transmutation" [rust#122379](https://github.com/rust-lang/rust/pull/122379) + +### WG checkins + +- @_*WG-llvm* by @**nagisa** and @**Nikita Popov** ([previous checkin](https://hackmd.io/team/rust-compiler-team?nav=overview)): + > Update to LLVM 18.1.2 (https://github.com/rust-lang/rust/pull/122772) + +- @_*WG-mir-opt* by @**oli** ([previous checkin](https://hackmd.io/team/rust-compiler-team?nav=overview)): + > no updates + +## Backport nominations + +[T-compiler beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler) / [T-compiler stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-compiler) +- :beta: [1.78] "Update to LLVM 18.1.2" [rust#122772](https://github.com/rust-lang/rust/pull/122772) + - This will fix #122476 (thread sanitizer on x86 caused a compilation abort), upstream issue was [llvm-project#85226](https://github.com/llvm/llvm-project/issues/85226). Thanks @**Nikita Popov**! + - Also fixes ([avr-hal#505](https://github.com/Rahix/avr-hal/issues/505) and [llvm-project#83362](https://github.com/llvm/llvm-project/issues/83362) + +- :beta: [1.78] "Encode implied predicates for traits" [rust#122891](https://github.com/rust-lang/rust/pull/122891) + - patch authored by @**Michael Goulet (compiler-errors)** (thanks!) + - Fixes #122859, regressed on nightly: `super_predicates` and `implied_predicates` queries differ for regular traits. In cross-crate positions this means that we used to forget the implied predicates from associated type bounds. ([explaination](https://github.com/rust-lang/rust/pull/122891#issue-2202971249)) + +- No stable nominations for `T-compiler` this time. + +[T-types stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-types) / [T-types beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-types) +- No beta nominations for `T-types` this time. +- No stable nominations for `T-types` this time. + +## PRs S-waiting-on-team + +[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler+-label%3AI-lang-nominated+is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler+-label%3AI-libs-api-nominated+is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler+-label%3AI-async-nominated) +- [Issues in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ) + +## Issues of Note + +### Short Summary + +- [1 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical) + - [1 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee) +- [63 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) + - [34 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee) +- [0 P-critical, 0 P-high, 1 P-medium, 1 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) +- [0 P-critical, 1 P-high, 5 P-medium, 2 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) +- [1 P-critical, 37 P-high, 100 P-medium, 14 P-low regression-from-stable-to-stable](https://github.com/rust-lang/rust/labels/regression-from-stable-to-stable) + +### P-critical + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-compiler) +- "No backtrace on windows with current rustc stable" [rust#122857](https://github.com/rust-lang/rust/issues/122857) + - Quick fix in cargo, in release 1.77.1 out today + +[T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types) +- No `P-critical` issues for `T-types` this time. + +### P-high regressions + +[P-high beta regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-beta+label%3AP-high+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core) +- No `P-high` beta regressions this time. + +[Unassigned P-high nightly regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-nightly+label%3AP-high+no%3Aassignee+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core+) +- No unassigned `P-high` nightly regressions this time. + +## Performance logs + +> [triage logs for 2024-03-26](https://github.com/rust-lang/rustc-perf/blob/a71e92ee7d976f7cb9bf51cc08b5680340ccd5d0/triage/2024-03-26.md) + +An overall fairly quiet week with the unfortunate one exception of large instruction count and binary size regressions caused by changes in const evaluation. This was largely balanced out (at least in instruction count) by a group of small improvements, but the compiler did end up 0.2% slower on average across 97 benchmarks. + +Triage done by **@rylev**. +Revision range: [21d94a3..73476d](https://perf.rust-lang.org/?start=21d94a3d2c63cacf8eaf9d0ca770c0b450c558d4&end=73476d49904751f8d90ce904e16dfbc278083d2c&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 1.0% | [0.2%, 3.2%] | 56 | +| Regressions (secondary) | 0.6% | [0.1%, 1.9%] | 38 | +| Improvements (primary) | -0.8% | [-1.5%, -0.2%] | 41 | +| Improvements (secondary) | -1.2% | [-5.2%, -0.4%] | 13 | +| All (primary) | 0.2% | [-1.5%, 3.2%] | 97 | + + +4 Regressions, 6 Improvements, 2 Mixed; 4 of them in rollups +63 artifact comparisons made in total + +#### Regressions + +recursively evaluate the constants in everything that is 'mentioned' [#122568](https://github.com/rust-lang/rust/pull/122568) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=47dd709bedda8127e8daec33327e0a9d0cdae845&end=df8ac8f1d74cffb96a93ae702d16e224f5b9ee8c&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 1.0% | [0.3%, 2.2%] | 67 | +| Regressions (secondary) | 0.8% | [0.2%, 2.9%] | 24 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 1.0% | [0.3%, 2.2%] | 67 | +- An unfortunately large regression in instruction count that has to happen for correctness reasons. +- Additional regressions in binary size and an issue has been opened for it: #122936 + + +Rollup of 8 pull requests [#122900](https://github.com/rust-lang/rust/pull/122900) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=85e449a3237e82c9ade8936a82bd4fc64cfe1057&end=0ad5e0d2deb8ac4b079923f3cc5a3a1c63efe4c8&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 0.5% | [0.4%, 0.6%] | 11 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | - | - | 0 | +- Seems that [#122784](https://github.com/rust-lang/rust/pull/122784) is the cause. Author and reviewer were pinged. + + +Replace visibility test with reachability test in dead code detection [#119552](https://github.com/rust-lang/rust/pull/119552) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0ad5e0d2deb8ac4b079923f3cc5a3a1c63efe4c8&end=c3087265993c74057fdbab07b44b80a55045070b&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 2.1% | [1.0%, 3.2%] | 4 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 2.1% | [1.0%, 3.2%] | 4 | +- More warnings are now emitted from ripgrep so this is to be expected + + +Rollup of 9 pull requests [#122966](https://github.com/rust-lang/rust/pull/122966) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9b8d12cf4c2311203aea83315552b15993bd4f81&end=548e14b43963882fb758deb89e8258d9b8c2fc2a&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.3% | [0.3%, 0.3%] | 1 | +| Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 6 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.3% | [0.3%, 0.3%] | 1 | +- The regressions are probably too small here for us to need to dig much deeper. + + +#### Improvements + +clean up `Sized` checking [#122493](https://github.com/rust-lang/rust/pull/122493) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=148a41c6b5687f941c5256d9ef8145eb03b72094&end=196ff446d20088406b9d69978dddccc4682bd006&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.6%, -0.3%] | 2 | +| Improvements (secondary) | -0.7% | [-3.2%, -0.3%] | 11 | +| All (primary) | -0.4% | [-0.6%, -0.3%] | 2 | + + +Move more intrinsics to rustc_intrinsic [#122037](https://github.com/rust-lang/rust/pull/122037) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f296c162d8c6f84bcfee99c152d4fd63aaef3e38&end=200e3f7995e231535fdea3be9cb9a3f098b4c856&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 4 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.3% | [-0.3%, -0.2%] | 4 | + + +Update cargo [#122753](https://github.com/rust-lang/rust/pull/122753) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bd459c2877fe909ea57952ea2543b727e321f183&end=a77c20c4b987e74eb1a867d21d1edb8035a11660&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.8% | [-0.9%, -0.5%] | 5 | +| Improvements (secondary) | -0.6% | [-0.8%, -0.4%] | 8 | +| All (primary) | -0.8% | [-0.9%, -0.5%] | 5 | + + +select Vec::from_iter impls in a const block to optimize compile times [#122785](https://github.com/rust-lang/rust/pull/122785) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a0569fa8f91b5271e92d2f73fd252de7d3d05b9c&end=0ad927c0c07b65fc0dae37105e09c877c87c296a&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.6% | [-1.5%, -0.3%] | 10 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.6% | [-1.5%, -0.3%] | 10 | + + +Replace `mir_built` query with a hook and use mir_const everywhere instead [#122721](https://github.com/rust-lang/rust/pull/122721) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0824b300eb0dae5d9ed59719d3f2732016683d66&end=13dac8fb731945ebc116cc65f23a260930e774e0&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.5% | [0.5%, 0.5%] | 1 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.9%, -0.2%] | 17 | +| Improvements (secondary) | -0.5% | [-0.8%, -0.2%] | 11 | +| All (primary) | -0.3% | [-0.9%, 0.5%] | 18 | + + +Don't emit load metadata in debug mode [#122849](https://github.com/rust-lang/rust/pull/122849) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8b9e47c136aeee998effdcae356e134b8de65891&end=73476d49904751f8d90ce904e16dfbc278083d2c&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.7% | [-1.1%, -0.4%] | 13 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.7% | [-1.1%, -0.4%] | 13 | + + +#### Mixed + +Rollup of 10 pull requests [#122735](https://github.com/rust-lang/rust/pull/122735) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a385e5667c11098a01368c06e7c0c9236cd477cc&end=e760daa6a729b3d52a38804e9766f7d89dc27357&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 0.3% | [0.1%, 0.6%] | 5 | +| Improvements (primary) | -0.7% | [-0.8%, -0.3%] | 11 | +| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 | +| All (primary) | -0.7% | [-0.8%, -0.3%] | 11 | +- The improvements outweigh the regressions so there's not a huge incentive to investigate further. + + +Rollup of 8 pull requests [#122830](https://github.com/rust-lang/rust/pull/122830) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7d01878bd0d1c4383c1158adeff0c392446ea3a2&end=a0569fa8f91b5271e92d2f73fd252de7d3d05b9c&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 0.1% | [0.1%, 0.1%] | 2 | +| Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 2 | +| Improvements (secondary) | -1.2% | [-1.7%, -0.8%] | 8 | +| All (primary) | -0.3% | [-0.4%, -0.2%] | 2 | +- With only small regressions on stress tests, I think it's fine if we don't investigate this too deeply. + +## Nominated Issues + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- No I-compiler-nominated issues this time. + +[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- No I-compiler-nominated RFCs this time. + +### Oldest PRs waiting for review + +- "tidy watcher" [rust#114209](https://github.com/rust-lang/rust/pull/114209) + - cc: @**Wesley Wiser** +- "Fix gce ICE when encountering ill-formed consts" [rust#119060](https://github.com/rust-lang/rust/pull/119060) + - cc: @**Michael Goulet (compiler-errors)** +- "Remove `suffix` from `MetaItemLit`" [rust#120705](https://github.com/rust-lang/rust/pull/120705) (last review activity: about 48 days ago) + - cc: @**davidtwco** +- "Remove unnecessary impl sorting in queries and metadata" [rust#120812](https://github.com/rust-lang/rust/pull/120812) (last review activity: about 48 days ago) + - @**cjgillot** +- "Suggest a borrow when using dbg" [rust#120990](https://github.com/rust-lang/rust/pull/120990) (last review activity: about 44 days ago) + - cc: @**Esteban Küber** (o reroll?) + +## Next week's WG checkins + +- Skipping next week + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/aLmXuZKATsy2y-vB1ZgaJA)