diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-06-06.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-06-06.md new file mode 100644 index 00000000..07b880cc --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-06-06.md @@ -0,0 +1,415 @@ +--- +tags: weekly, rustc +type: docs +note_id: fpaSNYGXR0eHKFbF36lS6g +--- + +# T-compiler Meeting Agenda 2024-06-06 + +## Announcements + +- Rust stable release 1.79 in a week! +- 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)) + - 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: 4 months 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: 3 months ago) + - "Only emit forward compatible v0 symbol names with graceful degradation" [compiler-team#737](https://github.com/rust-lang/compiler-team/issues/737) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Only.20emit.20forward.20compatible.20v0.20symbol.20na.E2.80.A6.20compiler-team.23737)) (last review activity: 2 months ago) + - "Partial compilation using MIR-only rlibs" [compiler-team#738](https://github.com/rust-lang/compiler-team/issues/738) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Partial.20compilation.20using.20MIR-only.20rlibs.20compiler-team.23738)) (last review activity: about 55 days ago) + - "Add Hotpatch flag" [compiler-team#745](https://github.com/rust-lang/compiler-team/issues/745) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20Hotpatch.20flag.20compiler-team.23745)) (last review activity: about 20 days ago) + - "Add a `--emit=nameres` for IDEs" [compiler-team#749](https://github.com/rust-lang/compiler-team/issues/749) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20a.20.60--emit.3Dnameres.60.20for.20IDEs.20compiler-team.23749)) (last review activity: about 13 days ago) +- Pending FCP requests (check your boxes!) + - "Stabilize `--env-set` option" [rust#119926](https://github.com/rust-lang/rust/pull/119926) + - "sanitizers: stabilize core sanitizers (i.e., AddressSanitizer, LeakSanitizer, MemorySanitizer, ThreadSanitizer)" [rust#123617](https://github.com/rust-lang/rust/pull/123617) + - "allow overwriting the output of `rustc --version`" [rust#124339](https://github.com/rust-lang/rust/pull/124339) + - "Add `--print host-triple` to print host target triple" [rust#125579](https://github.com/rust-lang/rust/pull/125579) + - "Remove the `box_pointers` lint." [rust#126018](https://github.com/rust-lang/rust/pull/126018) +- Things in FCP (make sure you're good with it) + - "Fully rustfmt `use` declarations" [compiler-team#750](https://github.com/rust-lang/compiler-team/issues/750) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.28My.20major.20change.20proposal.29.20compiler-team.23750)) + - "Promote loongarch64-unknown-linux-musl to tier 2" [compiler-team#753](https://github.com/rust-lang/compiler-team/issues/753) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20loongarch64-unknown-linux-musl.20to.E2.80.A6.20compiler-team.23753)) + - "Remove `src/tools/rust-demangler`" [compiler-team#754](https://github.com/rust-lang/compiler-team/issues/754) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Remove.20.60src.2Ftools.2Frust-demangler.60.20compiler-team.23754)) + - "Extract rustc stable hasher into it's own crate" [compiler-team#755](https://github.com/rust-lang/compiler-team/issues/755) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Extract.20rustc.20stable.20hasher.20into.20it.27s.20own.E2.80.A6.20compiler-team.23755)) +- Accepted MCPs + - "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)) + - "Add `--emit=thin-link-bitcode` to enable distributed ThinLTO users" [compiler-team#735](https://github.com/rust-lang/compiler-team/issues/735) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20.60-Zemit-thin-lto-index.3D.3Cpath.3E.60.20to.20ena.E2.80.A6.20compiler-team.23735)) + - "Add --print=check-cfg" [compiler-team#743](https://github.com/rust-lang/compiler-team/issues/743) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20--print.3Dcheck-cfg.20compiler-team.23743)) + - "Support `-Cforce-frame-pointers=non-leaf`" [compiler-team#744](https://github.com/rust-lang/compiler-team/issues/744) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Support.20.60-Cforce-frame-pointers.3Dnon-leaf.60.20compiler-team.23744)) + - "Promote arm64ec-pc-windows-msvc to tier 2" [compiler-team#746](https://github.com/rust-lang/compiler-team/issues/746) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20arm64ec-pc-windows-msvc.20to.20tier.202.20compiler-team.23746)) + - "`-Zfixed-x18`" [compiler-team#748](https://github.com/rust-lang/compiler-team/issues/748) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.60-Cfixed-x18.60.20compiler-team.23748)) +- 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) + - "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: 4 months ago) + - concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318) +- Finalized FCPs (disposition merge) + - "Do not try to reveal hidden types when trying to prove auto-traits in the defining scope" [rust#122192](https://github.com/rust-lang/rust/pull/122192) + - "Show files produced by `--emit foo` in json artifact notifications" [rust#122597](https://github.com/rust-lang/rust/pull/122597) + - "Item bounds can reference self projections and still be object safe" [rust#122804](https://github.com/rust-lang/rust/pull/122804) + - "change method resolution to constrain hidden types instead of rejecting method candidates" [rust#123962](https://github.com/rust-lang/rust/pull/123962) + - "Make `WHERE_CLAUSES_OBJECT_SAFETY` a regular object safety violation" [rust#125380](https://github.com/rust-lang/rust/pull/125380) +- Other teams finalized FCPs + - "Tracking Issue for asm_const" [rust#93332](https://github.com/rust-lang/rust/issues/93332) + - "Do not try to reveal hidden types when trying to prove auto-traits in the defining scope" [rust#122192](https://github.com/rust-lang/rust/pull/122192) + - "Item bounds can reference self projections and still be object safe" [rust#122804](https://github.com/rust-lang/rust/pull/122804) + - "Edition 2024: Make `!` fall back to `!`" [rust#123508](https://github.com/rust-lang/rust/pull/123508) + - "change method resolution to constrain hidden types instead of rejecting method candidates" [rust#123962](https://github.com/rust-lang/rust/pull/123962) + - "Turn remaining non-structural-const-in-pattern lints into hard errors" [rust#124661](https://github.com/rust-lang/rust/pull/124661) + - "Use a default lifetime of `'static` in associated consts" [rust#125190](https://github.com/rust-lang/rust/issues/125190) + - "Make `WHERE_CLAUSES_OBJECT_SAFETY` a regular object safety violation" [rust#125380](https://github.com/rust-lang/rust/pull/125380) + +### WG checkins + +None 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: "Fix insufficient logic when searching for the underlying allocation" [rust#124761](https://github.com/rust-lang/rust/pull/124761) + - Authored by Urgau + - Fixes #124685, a diagnostic papercut + - Urgau: regression introduced in rust#118983 when extending the already stable and deny-by-default `ìnvalid_refernce_casting` lint + +- :beta: "Handle field projections like slice indexing in invalid_reference_casting" [rust#124908](https://github.com/rust-lang/rust/pull/124908) + - Authored by saethlin + - Follow-up to #124761, improves diagnostics + +- :beta: "Handle Deref expressions in invalid_reference_casting" [rust#124978](https://github.com/rust-lang/rust/pull/124978) + - Authored by saethlin + - Again, follow-up to #124761 to fix diagnostics (fixes the last of the known false positive we encountered in the crater run) + +- :beta: "Closures are recursively reachable" [rust#125996](https://github.com/rust-lang/rust/pull/125996) + - Authored by tmiasko + - Fixes #126012, P-medium regression in MIR optimization + +- :beta: "Update to LLVM 18.1.7" [rust#126061](https://github.com/rust-lang/rust/pull/126061) + - Authored by nikic + - only commit [rust-lang/llvm-project@7e6ece9](https://github.com/rust-lang/llvm-project/commit/7e6ece9b4f2d37caf8ff7b87603f15ed9ad2d6ec) addressing a regression in LLVM 18.1.6 that may result in compiler crashes when targeting PPC. + +- 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) +- "Disallow deriving (other than Copy/Clone) on types with unnamed fields" [rust#121270](https://github.com/rust-lang/rust/pull/121270) + - Unsure if T-compiler is called to express an opinion ([comment](https://github.com/rust-lang/rust/issues/49804#issuecomment-2106381721)) +- [Issues in progress or waiting on other teams](https://hackmd.io/XYr1BrOWSiqCrl8RCWXRaQ) + +## Issues of Note + +### Short Summary + +- [2 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical) + - [2 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee) +- [65 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) + - [35 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee) +- [2 P-critical, 1 P-high, 1 P-medium, 2 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) +- [0 P-critical, 0 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, 17 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) +- "regression: trait bound not satisfied" [rust#125194](https://github.com/rust-lang/rust/issues/125194) + - reverted breaking changes in #125629 +- "regression: ambiguous outer attributes" [rust#125199](https://github.com/rust-lang/rust/issues/125199) + - This will soon get into stable. @**Wesley Wiser** could you get around cooking a revert for this? Need support? ([comment](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202024-05-30/near/441470232)) + +[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) +- "regression: cannot find macro in scope" [rust#125201](https://github.com/rust-lang/rust/issues/125201) + - Fixed in #125734, probably another fix will be reworked in #125741 ([comment](https://github.com/rust-lang/rust/issues/125201#issuecomment-2138276172)) + +[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-06-03](https://github.com/rust-lang/rustc-perf/blob/fba75cc08937425ab274959581401b862a0b3068/triage/2024-06-03.md) + +A quiet week; we did have one quite serious regression (#115105, "enable +DestinationPropagation by default"), but it was shortly reverted (#125794). +The only other PR identified as potentially problematic was rollup +[PR #125824](https://github.com/rust-lang/rust/pull/125824), but even +that is relatively limited in its effect. + +Triage done by **@pnkfelix**. +Revision range: [a59072ec..1d52972d](https://perf.rust-lang.org/?start=a59072ec4fb6824213df5e9de8cae4812fd4fe97&end=1d52972dd8592edf4026aa577c8ce69acc0ac2d1&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.9% | [0.2%, 2.0%] | 28 | +| Regressions (secondary) | 0.4% | [0.2%, 0.6%] | 6 | +| Improvements (primary) | -0.4% | [-1.2%, -0.2%] | 30 | +| Improvements (secondary) | -0.5% | [-0.9%, -0.2%] | 24 | +| All (primary) | 0.2% | [-1.2%, 2.0%] | 58 | + + +3 Regressions, 5 Improvements, 6 Mixed; 4 of them in rollups +57 artifact comparisons made in total + +#### Regressions + +Rollup of 5 pull requests [#125649](https://github.com/rust-lang/rust/pull/125649) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c0d600385bb96cc23d3de8615ee37c01abba6c8a&end=f989d2f62500df1696eb797d8800a705293b43b9&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 1.3% | [0.5%, 2.1%] | 12 | +| Regressions (secondary) | 0.3% | [0.3%, 0.4%] | 3 | +| Improvements (primary) | -0.1% | [-0.1%, -0.1%] | 1 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 1.2% | [-0.1%, 2.1%] | 13 | + +* all 12 of the regressing primary benchmarks are diesel-1.4.8 (in a variety of configurations). +* problem was isolated to PR #125089 (improve diagnostic output of non_local_definitions lint) +* Urgau notes: "The lint triggers nearly 150 times in the version of diesel used by rustc-perf, so the benchmark has become a bit a linting machinery benchmark" +* cc rustc-perf#1819 +* marked as triaged. + +Rollup of 5 pull requests [#125665](https://github.com/rust-lang/rust/pull/125665) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8c4db851a7bb64173832e6602638204ebbd373a8&end=274499dd0ff53b81e93b80520f7afe25adaa2812&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.5% | [0.5%, 0.5%] | 1 | +| Regressions (secondary) | 0.4% | [0.2%, 0.5%] | 7 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.5% | [0.5%, 0.5%] | 1 | + +* helloworld is sole primary regression. +* marked as triaged (my own opinion is that helloworld is a useful canary when it regresses by a more significant amount than this) +* (also the 30-day history shows the story for helloworld to be quite a bit more complicated than what is presented by the effects of this single PR, there are lots of spikes mixed in there) + +fn_arg_sanity_check: fix panic message [#125695](https://github.com/rust-lang/rust/pull/125695) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5870f1ccbbb2661c92cdc356231386210a64d723&end=4cf5723dbe471ef0a32857b968b91498551f5e38&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.8% | [0.8%, 0.9%] | 4 | +| Regressions (secondary) | 0.5% | [0.2%, 1.5%] | 19 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.8% | [0.8%, 0.9%] | 4 | + +* helloworld is the sole primary regression. +* (already) marked as triaged + +#### Improvements + +Omit non-needs_drop drop_in_place in vtables [#122662](https://github.com/rust-lang/rust/pull/122662) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7717a306b2678ba9ece19b723c76a6b3a89ba931&end=8c4db851a7bb64173832e6602638204ebbd373a8&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.6% | [-1.5%, -0.2%] | 9 | +| Improvements (secondary) | -0.5% | [-1.0%, -0.2%] | 18 | +| All (primary) | -0.6% | [-1.5%, -0.2%] | 9 | + +* improvements are to helloworld-opt and regex-opt. +* small but seems real given nature of PR (largely a binary size reduction) + +Update cargo [#125682](https://github.com/rust-lang/rust/pull/125682) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=274499dd0ff53b81e93b80520f7afe25adaa2812&end=da159eb331b27df528185c616b394bb0e1d2a4bd&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.5% | [-0.6%, -0.5%] | 3 | +| Improvements (secondary) | -0.4% | [-0.5%, -0.2%] | 12 | +| All (primary) | -0.5% | [-0.6%, -0.5%] | 3 | + +* improvements are to helloworld-check +* probably just noise + +Stabilize `custom_code_classes_in_docs` feature [#124577](https://github.com/rust-lang/rust/pull/124577) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=466be510af95d377a4e9997a6ab7c4db5f91e9ec&end=05965ae238403d8c141170b411245a62aa046240&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.8%, -0.2%] | 9 | +| Improvements (secondary) | -0.7% | [-0.9%, -0.5%] | 2 | +| All (primary) | -0.4% | [-0.8%, -0.2%] | 9 | + +* improvements are to various doc-full benchmarks. +* Probably measurement bias (unless somehow the stability checks are a noticeable expense?) + +Increase vtable layout size [#123572](https://github.com/rust-lang/rust/pull/123572) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=acaf0aeed0dfbfc4be9f996344e2c5f294cf5794&end=f2208b32971faba7fa6bf09bd0821adbf3db0c00&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -0.3% | [-0.6%, -0.2%] | 10 | +| All (primary) | - | - | 0 | + +* all "improvements" are to secondary benchmarks: unify-linearly, match-stress, and unused-warnings +* (the improvement from this PR is expected to be realized in runtime performance, especially for code heavy with vtable lookups. Its unsurprising that it wouldn't have a noticeable effect on the compiler tooolchain.) + +Avoid checking the edition as much as possible [#125828](https://github.com/rust-lang/rust/pull/125828) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=eda9d7f987de76b9d61c633a6ac328936e1b94f0&end=a6416d8907bc94ef1a032d54cb0443cde963e455&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.4%, -0.3%] | 6 | +| Improvements (secondary) | -0.4% | [-0.5%, -0.3%] | 4 | +| All (primary) | -0.4% | [-0.4%, -0.3%] | 6 | + +* this is recovering performance that was lost in PR #123865 + +#### Mixed + +Create const block DefIds in typeck instead of ast lowering [#124650](https://github.com/rust-lang/rust/pull/124650) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f989d2f62500df1696eb797d8800a705293b43b9&end=7717a306b2678ba9ece19b723c76a6b3a89ba931&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 2 | +| Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 3 | +| Improvements (primary) | -0.5% | [-0.6%, -0.3%] | 6 | +| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 | +| All (primary) | -0.3% | [-0.6%, 0.2%] | 8 | + +* as previously noted by @lqd : "Tiny changes, and overall more gains than losses, probably not worth investigation effort imho." +* marking as triaged + +Rollup of 8 pull requests [#125691](https://github.com/rust-lang/rust/pull/125691) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=da159eb331b27df528185c616b394bb0e1d2a4bd&end=751691271d76b8435559200b84d1947c2bd735bd&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.4% | [0.4%, 0.4%] | 1 | +| Regressions (secondary) | 1.2% | [1.2%, 1.2%] | 1 | +| Improvements (primary) | -0.5% | [-0.6%, -0.4%] | 2 | +| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 1 | +| All (primary) | -0.2% | [-0.6%, 0.4%] | 3 | + +* regression to image-opt-full +* improvements to webrender-2022-opt-full and regex-opt-incr-patched +* had a broad (if small) improvement to binary sizes, which was isolated to PR #124251 +* overall wins seem to outweigh losses; marking as triaged. + +don't inhibit random field reordering on repr(packed(1)) [#125360](https://github.com/rust-lang/rust/pull/125360) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4cf5723dbe471ef0a32857b968b91498551f5e38&end=f2e1a3a80ae54734e1a3d306f31c2caebb05de9b&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.9% | [0.6%, 1.3%] | 13 | +| Regressions (secondary) | 0.4% | [0.4%, 0.4%] | 2 | +| Improvements (primary) | -0.7% | [-0.8%, -0.7%] | 4 | +| Improvements (secondary) | -0.4% | [-0.7%, -0.3%] | 13 | +| All (primary) | 0.5% | [-0.8%, 1.3%] | 17 | + +* regressed bitmaps and typenum; improved helloworld +* instruction counts were affected but not cycle counts; [one theory is that object code has extra offset computations or niche computations...](https://github.com/rust-lang/rust/pull/125360#issuecomment-2137781620) +* since cycle count was not affected, does not seem worth further investigation; marking as triaged + +Enable DestinationPropagation by default. [#115105](https://github.com/rust-lang/rust/pull/115105) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=91c0823ee63e793d990bb9fed898dc95b5d6db51&end=cfb730450f847bb622243eaaab15e77e58d91767&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 1.0% | [0.3%, 3.4%] | 18 | +| Regressions (secondary) | 1.3% | [0.3%, 3.3%] | 22 | +| Improvements (primary) | -0.5% | [-4.0%, -0.2%] | 23 | +| Improvements (secondary) | -0.8% | [-1.6%, -0.2%] | 18 | +| All (primary) | 0.2% | [-4.0%, 3.4%] | 41 | + +* was reverted due to injecting [big regression for "Building stage1 codegen backend gcc"](https://github.com/rust-lang/rust/pull/115105#issuecomment-2141019310) +* marking as triaged + +Revert "Auto merge of #115105 - cjgillot:dest-prop-default, r=oli-obk" [#125794](https://github.com/rust-lang/rust/pull/125794) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=434999efe6e9aa61afbd8b4ae86864d3ce91c533&end=366da30d554719e7490950aeea5d3f3a5927e313&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.5% | [0.2%, 4.2%] | 18 | +| Regressions (secondary) | 0.8% | [0.1%, 1.5%] | 20 | +| Improvements (primary) | -1.0% | [-3.2%, -0.3%] | 15 | +| Improvements (secondary) | -1.5% | [-3.1%, -0.4%] | 18 | +| All (primary) | -0.2% | [-3.2%, 4.2%] | 33 | + +* revert of above PR +* marking as triaged + +Rollup of 7 pull requests [#125824](https://github.com/rust-lang/rust/pull/125824) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2a2c29aafa50bf6fe53d66b32070eba59f860ac3&end=ada5e2c7b5427a591e30baeeee2698a5eb6db0bd&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.7% | [0.5%, 1.1%] | 3 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.4%, -0.4%] | 1 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.4% | [-0.4%, 1.1%] | 4 | + +* instruction-counts regressed webrender-2022-opt-full, cargo-opt-{incr-patched, full} +* cycle-counts regressed webrender-2022-opt-{full, incr-full}, cranelift-codegen-opt-incr-full, and clap-opt-incr-patched +* history view for webrender shows that the cycle-count effect seems real though not quite as pronounced as the original measurements indicate. +* there are many potential candidates for the cause here in this rollup. +* not marking as triaged; doing some followup perf runs on individual PR's + +## Nominated Issues + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- "Reserve guarded string literals (RFC 3593)" [rust#123951](https://github.com/rust-lang/rust/pull/123951) + - This guard will be enabled in Edition 2024 (RFC [rendered](https://github.com/rust-lang/rfcs/blob/master/text/3593-unprefixed-guarded-strings.md)) + - @nethercote left a [review](https://github.com/rust-lang/rust/pull/123951#issuecomment-2144065529), seems not too positive about the proposal (was [reviewed by T-lang](https://github.com/rust-lang/rfcs/pull/3593#issuecomment-2017640953)) + - Nominated by @**Esteban Küber** asking T-compiler an opinion ([comment](https://github.com/rust-lang/rust/pull/123951#issuecomment-2136273724)) + +[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) (last review activity: 5 months ago) + - This PR looks to me dead in the water. It's lacking a review and the author seems to not respond. Any taker? +- "Remove unnecessary impl sorting in queries and metadata" [rust#120812](https://github.com/rust-lang/rust/pull/120812) (last review activity: 3 months ago) + - cc @**cjgillot** +- "Suggest a borrow when using dbg" [rust#120990](https://github.com/rust-lang/rust/pull/120990) (last review activity: 3 months ago) + - cc @**Esteban Küber** +- "Always emit `native-static-libs` note, even if it is empty" [rust#121216](https://github.com/rust-lang/rust/pull/121216) (last review activity: 3 months ago) + - cc @**Wesley Wiser** + +## Next week's WG checkins + +None + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/t6jzlSpDScqdP-ibSkABRw) diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-06-13.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-06-13.md new file mode 100644 index 00000000..9286d21c --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-06-13.md @@ -0,0 +1,333 @@ +--- +tags: weekly, rustc +type: docs +note_id: t6jzlSpDScqdP-ibSkABRw +--- + +# T-compiler Meeting Agenda 2024-06-13 + +## Announcements + +- Today release of Rust stable 1.79! [Blog post PR](https://github.com/rust-lang/blog.rust-lang.org/blob/e5298c3115b2b661682fb57360e64db2cb27fb05/posts/2024-06-13-Rust-1.79.0.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 + +- Types Team: ITE (Impl Trait Everywhere) Triage + +## MCPs/FCPs + +- New MCPs (take a look, see if you like them!) + - "Enable `clang-format` for `rustc`" [compiler-team#756](https://github.com/rust-lang/compiler-team/issues/756) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Enable.20.60clang-format.60.20for.20.60rustc.60.20compiler-team.23756)) +- 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) + - "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: 4 months ago) + - concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318) + - "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: 4 months 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: 3 months ago) + - "Only emit forward compatible v0 symbol names with graceful degradation" [compiler-team#737](https://github.com/rust-lang/compiler-team/issues/737) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Only.20emit.20forward.20compatible.20v0.20symbol.20na.E2.80.A6.20compiler-team.23737)) (last review activity: 2 months ago) + - "Partial compilation using MIR-only rlibs" [compiler-team#738](https://github.com/rust-lang/compiler-team/issues/738) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Partial.20compilation.20using.20MIR-only.20rlibs.20compiler-team.23738)) (last review activity: 2 months ago) + - "Add Hotpatch flag" [compiler-team#745](https://github.com/rust-lang/compiler-team/issues/745) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20Hotpatch.20flag.20compiler-team.23745)) (last review activity: about 27 days ago) + - "Add a `--emit=nameres` for IDEs" [compiler-team#749](https://github.com/rust-lang/compiler-team/issues/749) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20a.20.60--emit.3Dnameres.60.20for.20IDEs.20compiler-team.23749)) (last review activity: about 20 days ago) +- Pending FCP requests (check your boxes!) + - merge: [sanitizers: stabilize core sanitizers (i.e., AddressSanitizer, LeakSanitizer, MemorySanitizer, ThreadSanitizer) (rust#123617)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2135121317) + - @_**|119009** @_**|124288** @_**|125250** @_**|119031** @_**|124287** @_**|426609** @_**|232957** + - no pending concerns + - merge: [allow overwriting the output of `rustc --version` (rust#124339)](https://github.com/rust-lang/rust/pull/124339#issuecomment-2075414901) + - @_**|426609** @_**|216206** @_**|232957** + - no pending concerns + - merge: [Remove the `box_pointers` lint. (rust#126018)](https://github.com/rust-lang/rust/pull/126018#issuecomment--2143120454) + - @_**|119009** @_**|123586** @_**|125294** @_**|119031** @_**|124287** + - no pending concerns + - merge: [Remove the `missing_copy_implementations` lint. (rust#126293)](https://github.com/rust-lang/rust/pull/126293#issuecomment--2132638472) + - @_**|119009** @_**|116083** @_**|125250** @_**|119031** @_**|124287** @_**|426609** @_**|123856** @_**|116118** + - no pending concerns +- Things in FCP (make sure you're good with it) + - "Fully rustfmt `use` declarations" [compiler-team#750](https://github.com/rust-lang/compiler-team/issues/750) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.28My.20major.20change.20proposal.29.20compiler-team.23750)) + - "Remove `src/tools/rust-demangler`" [compiler-team#754](https://github.com/rust-lang/compiler-team/issues/754) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Remove.20.60src.2Ftools.2Frust-demangler.60.20compiler-team.23754)) + - "Extract rustc stable hasher into it's own crate" [compiler-team#755](https://github.com/rust-lang/compiler-team/issues/755) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Extract.20rustc.20stable.20hasher.20into.20it.27s.20own.E2.80.A6.20compiler-team.23755)) +- Accepted MCPs + - "Promote loongarch64-unknown-linux-musl to tier 2" [compiler-team#753](https://github.com/rust-lang/compiler-team/issues/753) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20loongarch64-unknown-linux-musl.20to.E2.80.A6.20compiler-team.23753)) +- MCPs blocked on unresolved concerns + - merge: [Add `--print host-triple` to print host target triple (rust#125579)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133192548) + - @_**|119009** @_**|125250** @_**|426609** @_**|232957** + - concerns: [triple vs tuple (by lcnr)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133938172) + - 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** + - concerns: [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) + - "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) + - merge: [Stabilize `--env-set` option (rust#119926)](https://github.com/rust-lang/rust/pull/119926#issuecomment-1898766442) + - @_**|119009** @_**|124288** @_**|123586** @_**|125250** @_**|119031** @_**|124287** @_**|116118** + - concerns: [other-rustc-vars (by petrochenkov)](https://github.com/rust-lang/rust/pull/119926#issuecomment-1900703005) +- Finalized FCPs (disposition merge) + - "TAIT decision on "may define implies must define"" [rust#117861](https://github.com/rust-lang/rust/issues/117861) + - "Allow constraining opaque types during subtyping in the trait system" [rust#125447](https://github.com/rust-lang/rust/pull/125447) +- Other teams finalized FCPs + - "TAIT decision on "may define implies must define"" [rust#117861](https://github.com/rust-lang/rust/issues/117861) + - "Allow constraining opaque types during subtyping in the trait system" [rust#125447](https://github.com/rust-lang/rust/pull/125447) + +### WG checkins + +None + +## 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: "Only compute `specializes` query if (min)specialization is enabled in the crate of the specializing impl" [rust#126139](https://github.com/rust-lang/rust/pull/126139) + - Authored by compiler-errors + - Fixes #125197, a regression discovered in a crater run + - As @**lqd** [assesses](https://github.com/rust-lang/rust/pull/126139#issuecomment-2157774670), the regression is not yet reported by anyone and the impact in the crater run was rather small but still a "nice-to-have" as a backport + +- :beta: "Do not define opaque types when selecting impls" [rust#126258](https://github.com/rust-lang/rust/pull/126258) + - Authored by oli-obk + - Fixes #126117, a P-high regression reported by a user in their project + - (@_**oli** is also working on reintroducing an improved patch in #126316) + +- 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) +- [65 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) + - [35 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, 1 P-high, 2 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, 36 P-high, 100 P-medium, 17 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) +- "Regression in nightly-2024-05-27" [rust#126117](https://github.com/rust-lang/rust/issues/126117) + - This is fixed by [rust#126258](https://github.com/rust-lang/rust/pull/126258) + +[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+) +- "regression: trait bound not satisfied" [rust#125194](https://github.com/rust-lang/rust/issues/125194) + - reverted in beta (#125629) the changes that caused the regression + +## Performance logs + +> [triage logs 2024-06-13](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-06-11.md) + +This week saw more regressions than wins, caused mostly by code being reorganized within the +compiler and a new feature being implemented. There have also been some nice improvements caused +by better optimizing spans. + +Triage done by **@kobzol**. +Revision range: [1d52972d..b5b13568](https://perf.rust-lang.org/?start=1d52972dd8592edf4026aa577c8ce69acc0ac2d1&end=b5b13568fb5da4ac988bde370008d6134d3dfe6c&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.6% | [0.2%, 2.7%] | 105 | +| Regressions (secondary) | 1.0% | [0.1%, 6.9%] | 74 | +| Improvements (primary) | -0.5% | [-1.0%, -0.2%] | 20 | +| Improvements (secondary) | -1.4% | [-8.8%, -0.2%] | 32 | +| All (primary) | 0.5% | [-1.0%, 2.7%] | 125 | + + +5 Regressions, 3 Improvements, 4 Mixed; 5 of them in rollups +59 artifact comparisons made in total + +#### Regressions + +Rollup of 8 pull requests [#125976](https://github.com/rust-lang/rust/pull/125976) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bc33782c23bc3e04eab7c85c43bbe1a108b11f80&end=30ea1a2693bb1ba4b119ac6257985b9e11e45b83&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.9% | [0.2%, 1.3%] | 14 | +| Regressions (secondary) | 0.9% | [0.4%, 2.8%] | 5 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.9% | [0.2%, 1.3%] | 14 | + +* Looks like it was caused by [#125968](https://github.com/rust-lang/rust/pull/125968). +* This PR resulted in some code being shuffled around the compiler (what we call "codegen noise"), +we determined that it is not worth investigating further. + +Don't walk the bodies of free constants for reachability. [#122505](https://github.com/rust-lang/rust/pull/122505) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=72fdf913c53dd0e75313ba83e4aa80df3f6e2871&end=d0ccb5413ee2d9d40b574ad7998ffa866811d3f8&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 1.8% | [0.2%, 2.6%] | 4 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 1.8% | [0.2%, 2.6%] | 4 | + +* The compiler needs to do a little bit more work after this PR, so the regression is expected. + +Unsafe extern blocks [#124482](https://github.com/rust-lang/rust/pull/124482) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2b6a34273d820df4140a00984d38d40c745fb565&end=2d28b6384e5e0a2c9d1500a1f65e35423453fbf6&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 32 | +| Regressions (secondary) | 0.2% | [0.2%, 0.3%] | 4 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.3% | [0.2%, 0.4%] | 32 | + +* This PR adds a new feature, so a small performance regression is expected. + +Rollup of 7 pull requests [#126108](https://github.com/rust-lang/rust/pull/126108) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b74702fbb2a2bd56b39849d66bd59a453ed8c89e&end=468310ea0cdec87460b83710a3a78825bcae73c5&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.2% | [0.2%, 0.3%] | 5 | +| Regressions (secondary) | 0.9% | [0.5%, 1.5%] | 15 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.2% | [0.2%, 0.3%] | 5 | + +* Caused by [#125724](https://github.com/rust-lang/rust/pull/125724), which moves some code to +a different compiler package, so that it can be used with the new trait solver. + +Add Rust for Linux `auto` CI job [#125209](https://github.com/rust-lang/rust/pull/125209) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a3167859f2fd8ff2241295469876a2b687280bdc&end=d402830c8a356332de93761d6996faf5a2ca29ca&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 4.3% | [2.5%, 6.1%] | 2 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | - | - | 0 | + +* This PR did not modify the compiler at all, so this has to be noise. + +#### Improvements + +Rollup of 11 pull requests [#125989](https://github.com/rust-lang/rust/pull/125989) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=23e040adec50e10d3ff8103e405ff79e44908e70&end=a330e49593ee890f9197727a3a558b6e6b37f843&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 2.0% | [2.0%, 2.0%] | 1 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -0.3% | [-0.3%, -0.2%] | 10 | +| All (primary) | - | - | 0 | + + +Revert: create const block bodies in typeck via query feeding [#125918](https://github.com/rust-lang/rust/pull/125918) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=468310ea0cdec87460b83710a3a78825bcae73c5&end=1be24d70ced0d6b8d41a48b6a28b3790f6facf4c&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.3% | [-0.5%, -0.2%] | 35 | +| Improvements (secondary) | -0.4% | [-0.4%, -0.3%] | 9 | +| All (primary) | -0.3% | [-0.5%, -0.2%] | 35 | + + +Rollup of 9 pull requests [#126240](https://github.com/rust-lang/rust/pull/126240) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d402830c8a356332de93761d6996faf5a2ca29ca&end=b5b13568fb5da4ac988bde370008d6134d3dfe6c&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -2.3% | [-6.4%, -0.2%] | 3 | +| All (primary) | - | - | 0 | + + +#### Mixed + +Make TLS accessors closures that return pointers [#125525](https://github.com/rust-lang/rust/pull/125525) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=90d6255d82dcfd0b73dbaa4f172a7f9886dcc2c1&end=27529d5c2526eab5aa03d765426c44ea55c5d269&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 6 | +| Regressions (secondary) | 2.9% | [2.9%, 2.9%] | 1 | +| Improvements (primary) | -0.5% | [-1.1%, -0.3%] | 14 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.2% | [-1.1%, 0.4%] | 20 | + +* More wins than losses. + +Rollup of 11 pull requests [#126134](https://github.com/rust-lang/rust/pull/126134) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4dc24ae394a03755cf337bebc8cd2e022a1a4848&end=804421dff5542c9c7da5c60257b5dbc849719505&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.4% | [0.2%, 1.0%] | 43 | +| Regressions (secondary) | 0.4% | [0.1%, 0.8%] | 14 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -0.2% | [-0.2%, -0.2%] | 3 | +| All (primary) | 0.4% | [0.2%, 1.0%] | 43 | + + +rustc_span: Optimize syntax context updates in spans [#125017](https://github.com/rust-lang/rust/pull/125017) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0de24a5177b1d49d6304f76f3ab159faaec134f9&end=a3167859f2fd8ff2241295469876a2b687280bdc&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.5% | [0.2%, 0.6%] | 6 | +| Regressions (secondary) | 0.7% | [0.4%, 1.0%] | 10 | +| Improvements (primary) | -0.4% | [-1.5%, -0.2%] | 37 | +| Improvements (secondary) | -1.5% | [-9.3%, -0.2%] | 33 | +| All (primary) | -0.3% | [-1.5%, 0.6%] | 43 | + +* More improvements than regressions. + +Add `SingleUseConsts` mir-opt pass [#125910](https://github.com/rust-lang/rust/pull/125910) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b5b13568fb5da4ac988bde370008d6134d3dfe6c&end=fa1681c9f6a66f0240c46c98bfef6209c9d6df23&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.4% | [0.3%, 0.4%] | 2 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 4 | +| Improvements (secondary) | -2.3% | [-2.9%, -1.7%] | 2 | +| All (primary) | -0.1% | [-0.4%, 0.4%] | 6 | + +* Slighty more wins than losses on instructions. +* Small binary size win. + +## 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) (last review activity: 5 months ago) + - This PR looks to me a bit dead in the water. It's lacking a review and the author seems to not respond. Any taker? +- "Remove unnecessary impl sorting in queries and metadata" [rust#120812](https://github.com/rust-lang/rust/pull/120812) (last review activity: 3 months ago) + - cc @**cjgillot** +- "Suggest a borrow when using dbg" [rust#120990](https://github.com/rust-lang/rust/pull/120990) (last review activity: 3 months ago) + - cc @**Esteban Küber** +- "Always emit `native-static-libs` note, even if it is empty" [rust#121216](https://github.com/rust-lang/rust/pull/121216) (last review activity: 3 months ago) + - cc @**Wesley Wiser** + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/X-gaY--lTLGfQCL_VEdVcA) diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-06-20.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-06-20.md new file mode 100644 index 00000000..acc4cd8d --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-06-20.md @@ -0,0 +1,369 @@ +--- +tags: weekly, rustc +type: docs +note_id: X-gaY--lTLGfQCL_VEdVcA +--- + +# T-compiler Meeting Agenda 2024-06-20 + +## 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). +- Tomorrow Bonanza backlog meeting (see [comment](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bplanning.5D.202024-05-24/near/440519331)) + +### 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)) + - None at this time +- Old MCPs (not seconded, take a look) + - "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: 5 months ago) + - concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318) + - "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: 4 months 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: 3 months ago) + - "Partial compilation using MIR-only rlibs" [compiler-team#738](https://github.com/rust-lang/compiler-team/issues/738) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Partial.20compilation.20using.20MIR-only.20rlibs.20compiler-team.23738)) (last review activity: 2 months ago) + - "Add Hotpatch flag" [compiler-team#745](https://github.com/rust-lang/compiler-team/issues/745) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20Hotpatch.20flag.20compiler-team.23745)) (last review activity: about 34 days ago) + - "Enable `clang-format` for `rustc`" [compiler-team#756](https://github.com/rust-lang/compiler-team/issues/756) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Enable.20.60clang-format.60.20for.20.60rustc.60.20compiler-team.23756)) (last review activity: about 5 days ago) + - "Promote wasm32-wasip2 to a Tier 2 target" [compiler-team#760](https://github.com/rust-lang/compiler-team/issues/760) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20wasm32-wasip2.20to.20a.20Tier.202.20target.20compiler-team.23760)) (last review activity: about 0 days ago) + - "Promote Mac Catalyst targets to Tier 2" [compiler-team#761](https://github.com/rust-lang/compiler-team/issues/761) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20Mac.20Catalyst.20targets.20to.20Tier.202.20compiler-team.23761)) (last review activity: about 2 days ago) +- Pending FCP requests (check your boxes!) + - merge: [sanitizers: stabilize core sanitizers (i.e., AddressSanitizer, LeakSanitizer, MemorySanitizer, ThreadSanitizer) (rust#123617)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2135121317) + - @**|119009** @**|124288** @**|125250** @**|119031** @**|124287** @**|426609** + - Stabilization report at [comment](https://github.com/rust-lang/rust/pull/123617#issuecomment-2116573592) + - no pending concerns + - merge: [Remove the `missing_copy_implementations` lint. (rust#126293)](https://github.com/rust-lang/rust/pull/126293#issuecomment-2162328824) + - @_**|119009** @_**|116083** @_**|125250** @_**|426609** @_**|123856** @_**|116118** + - no pending concerns +- Things in FCP (make sure you're good with it) + - "Contracts: Experimental attributes and language intrinsics" [compiler-team#759](https://github.com/rust-lang/compiler-team/issues/759) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Contracts.3A.20Experimental.20attributes.20and.20la.E2.80.A6.20compiler-team.23759)) + - "allow overwriting the output of `rustc --version`" [rust#124339](https://github.com/rust-lang/rust/pull/124339) + - "Remove the `box_pointers` lint." [rust#126018](https://github.com/rust-lang/rust/pull/126018) +- Accepted MCPs + - "Fully rustfmt `use` declarations" [compiler-team#750](https://github.com/rust-lang/compiler-team/issues/750) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.28My.20major.20change.20proposal.29.20compiler-team.23750)) + - "Remove `src/tools/rust-demangler`" [compiler-team#754](https://github.com/rust-lang/compiler-team/issues/754) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Remove.20.60src.2Ftools.2Frust-demangler.60.20compiler-team.23754)) + - "Extract rustc stable hasher into it's own crate" [compiler-team#755](https://github.com/rust-lang/compiler-team/issues/755) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Extract.20rustc.20stable.20hasher.20into.20it.27s.20own.E2.80.A6.20compiler-team.23755)) +- MCPs blocked on unresolved concerns + - merge: [Add `--print host-triple` to print host target triple (rust#125579)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133192548) + - @_**|119009** @_**|125250** @_**|426609** @_**|232957** + - concerns: [triple vs tuple (by lcnr)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133938172) + - 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** + - concerns: [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) + - "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) + - merge: [Stabilize `--env-set` option (rust#119926)](https://github.com/rust-lang/rust/pull/119926#issuecomment-1898766442) + - @_**|119009** @_**|124288** @_**|123586** @_**|125250** @_**|119031** @_**|124287** @_**|116118** + - concerns: [other-rustc-vars (by petrochenkov)](https://github.com/rust-lang/rust/pull/119926#issuecomment-1900703005) +- Finalized FCPs (disposition merge) + - "Collect relevant item bounds from trait clauses for nested rigid projections" [rust#120752](https://github.com/rust-lang/rust/pull/120752) +- Other teams finalized FCPs + - "Collect relevant item bounds from trait clauses for nested rigid projections" [rust#120752](https://github.com/rust-lang/rust/pull/120752) + +### WG checkins + +None + +## 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: "Only compute `specializes` query if (min)specialization is enabled in the crate of the specializing impl" [rust#126139](https://github.com/rust-lang/rust/pull/126139) + - Authored by compiler-errors + - Fixes #125197 + - Mentioned [last week](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202024-06-13/near/444474760): missed the beta backport, are we going to stable backport? + +- :beta: "Add pub struct with allow(dead_code) into worklist" [rust#126315](https://github.com/rust-lang/rust/pull/126315) + - Authored by mu001999 + - Fixes #126289, A P-medium lint regression + +- :stable: "defrost `RUST_MIN_STACK=ice rustc hello.rs`" [rust#125302](https://github.com/rust-lang/rust/pull/125302) + - Authored by workingjubilee + - Fixes #126431, a panic when setting the env var `RUST_MIN_STACK` incorrectly + - author [suggests](https://github.com/rust-lang/rust/pull/125302#issuecomment-2166824981) stable backport, if a dot release is planned + +- :stable: "Closures are recursively reachable" [rust#125996](https://github.com/rust-lang/rust/pull/125996) + - Authored by tmiasko + - Fixes #126012, a P-medium missing MIR optimization, [reported by tmiasko](https://github.com/rust-lang/rust/pull/125996#issuecomment-2148927340) (seems to not have received other reports in the wild) + - This fix lost the previous beta backport train so nominated for stable (if a point release is planned) + + +[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) +- [67 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) + - [37 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, 1 P-high, 2 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, 36 P-high, 100 P-medium, 17 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) +- None new + +[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 new + +## Performance logs + +> [triage logs for 2024-06-18](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-06-18.md) + +Regressions outnumbered the improvements this week, but most of the regressions were deemed worth it for one reason or another. Overall, compiler performance didn't end up changing very much. + +Triage done by **@rylev**. +Revision range: [b5b13568..c2932aaf](https://perf.rust-lang.org/?start=b5b13568fb5da4ac988bde370008d6134d3dfe6c&end=c2932aaf9d20acbc9259c762f1a06f8767c6f13f&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.4% | [0.2%, 1.0%] | 63 | +| Regressions (secondary) | 0.7% | [0.2%, 2.4%] | 70 | +| Improvements (primary) | -0.6% | [-1.2%, -0.2%] | 8 | +| Improvements (secondary) | -1.1% | [-5.2%, -0.2%] | 7 | +| All (primary) | 0.3% | [-1.2%, 1.0%] | 71 | + + +5 Regressions, 2 Improvements, 7 Mixed; 2 of them in rollups +58 artifact comparisons made in total + +#### Regressions + +Print `token::Interpolated` with token stream pretty printing. [#125174](https://github.com/rust-lang/rust/pull/125174) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3ea5e236ecb4c5f22437059f82d3915d311e4ec0&end=d0227c6a19c2d6e8dceb87c7a2776dc2b10d2a04&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 9 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.3% | [0.2%, 0.4%] | 9 | +- No discussion of the perf run done before merging, so I asked the author/reviewer for their thoughts. +- It seems like most libc benchmarks were negatively impacted while no other benchmarks were. I'm not quite sure why that would be. + + +Add `TyCtxt::is_lang_item`, use it in the compiler [#126491](https://github.com/rust-lang/rust/pull/126491) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9239d3eb2b08bfdff30c86cdd9ce32687e488f5d&end=8217b412a235407243f2516ebc859e7b3af8345a&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 10 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.3% | [0.2%, 0.4%] | 10 | +- The change was deemed worth it despite the perf regression. + + +Indicate in `non_local_defs` lint that the macro needs to change [#125722](https://github.com/rust-lang/rust/pull/125722) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8217b412a235407243f2516ebc859e7b3af8345a&end=1d1356d0f67131f97b4f1631a24cd10d7dbcca42&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 6 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.2% | [0.2%, 0.2%] | 6 | +- Only the diesel benchmark is affected, which is somewhat expected as it triggers the lint many many times (over 150 times). + + +Rollup of 6 pull requests [#126605](https://github.com/rust-lang/rust/pull/126605) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=11380368dc53d0b2fc3a627408818eff1973ce9a&end=04ab7b2be0db3e6787f5303285c6b2ee6279868d&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.3% | [0.3%, 0.4%] | 6 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.3% | [0.3%, 0.4%] | 6 | +- The benchmarks impacted seem to now swing wildly back and forth with every run so this isn't a perf regression per say. + + +Migrate `inaccessible-temp-dir`, `output-with-hyphens` and `issue-10971-temps-dir` `run-make` tests to `rmake` [#126279](https://github.com/rust-lang/rust/pull/126279) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=59e2c01c2217a01546222e4d9ff4e6695ee8a1db&end=c2932aaf9d20acbc9259c762f1a06f8767c6f13f&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.3% | [0.3%, 0.3%] | 6 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.3% | [0.3%, 0.3%] | 6 | +- This has to be noise, this PR only modified tests. + + +#### Improvements + +Migrate `link-arg`, `link-dedup` and `issue-26092` `run-make` tests to `rmake` format [#125500](https://github.com/rust-lang/rust/pull/125500) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=04ab7b2be0db3e6787f5303285c6b2ee6279868d&end=59e2c01c2217a01546222e4d9ff4e6695ee8a1db&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.4%, -0.3%] | 6 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.4% | [-0.4%, -0.3%] | 6 | + + +Migrate `extern-flag-fun`, `incremental-debugger-visualiser` and `incremental-session-fail` `run-make` tests to `rmake.rs` [#126490](https://github.com/rust-lang/rust/pull/126490) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c2932aaf9d20acbc9259c762f1a06f8767c6f13f&end=67cfc3a558a54e351d14120099bf3158812b4130&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.3% | [-0.4%, -0.3%] | 6 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.3% | [-0.4%, -0.3%] | 6 | + + +#### Mixed + +Add `SingleUseConsts` mir-opt pass [#125910](https://github.com/rust-lang/rust/pull/125910) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b5b13568fb5da4ac988bde370008d6134d3dfe6c&end=fa1681c9f6a66f0240c46c98bfef6209c9d6df23&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.4% | [0.3%, 0.4%] | 2 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 4 | +| Improvements (secondary) | -2.3% | [-2.9%, -1.7%] | 2 | +| All (primary) | -0.1% | [-0.4%, 0.4%] | 6 | +- Wash on instruction counts, but nice binary size wins. The cycles improvements on tt-muncher is noise returning back to normal. + + +Make `ObligationEmittingRelation`s emit `Goal` rather than `Obligation` [#126130](https://github.com/rust-lang/rust/pull/126130) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9a7bf4ae947feddac27007cbe26d161f4ff5a910&end=76c73827dcd0b363e60b22c3cef64bde4171bf17&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 0.4% | [0.1%, 0.6%] | 14 | +| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.2% | [-0.2%, -0.2%] | 1 | +- I'm asssuming the perf regression was deemed acceptable since these only occurred in stress tests? + + +Tait must be constrained if in sig [#113169](https://github.com/rust-lang/rust/pull/113169) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bdb1b7f5d9715cc96cb437134eff93fa229defd1&end=02c7a5921e3de5c2b3ecb2e0082c1dafce0729a1&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.7% | [0.7%, 0.7%] | 1 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.3% | [-0.4%, -0.3%] | 2 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.0% | [-0.4%, 0.7%] | 3 | +- Probably noise + we need the fix + + +Extend SCC construction to enable extra functionality [#125069](https://github.com/rust-lang/rust/pull/125069) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8337ba9189de188e2ed417018af2bf17a57d51ac&end=8cf5101d77cd9eeb12751c563d8098aba2c604d0&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.2% | [0.2%, 0.3%] | 6 | +| Regressions (secondary) | 0.5% | [0.1%, 1.0%] | 10 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -0.3% | [-0.3%, -0.3%] | 2 | +| All (primary) | 0.2% | [0.2%, 0.3%] | 6 | +- The perf regressions were brought down since the first perf run, but there's still instruction count regressions in primary benchmarks here (albeit not large ones). I asked the author/reviewer for thoughts. + + +Remove superfluous UbChecks from `SliceIndex` methods [#126299](https://github.com/rust-lang/rust/pull/126299) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bc3618f31ea3866e6abea6995ec3979d12ffc65d&end=cd0c944b0750db887291bc25f20a05f8f31a8195&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.4% | [0.2%, 0.6%] | 4 | +| Regressions (secondary) | 0.8% | [0.5%, 1.3%] | 5 | +| Improvements (primary) | -0.4% | [-0.6%, -0.2%] | 3 | +| Improvements (secondary) | -0.6% | [-0.8%, -0.4%] | 7 | +| All (primary) | 0.1% | [-0.6%, 0.6%] | 7 | +- Perf is largely a wash and was expected to have far reach consequences since it changes how slices are codegened. + + +rustc_span: Optimize more hygiene operations using `Span::map_ctxt` [#126543](https://github.com/rust-lang/rust/pull/126543) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d7f6ebacee13b6c03623c4b74197280454ede8de&end=6b65c30f8e0f6c18aa5f32cbad869b1d036c7851&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 | +| Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 3 | +| Improvements (primary) | -1.1% | [-1.4%, -0.3%] | 4 | +| Improvements (secondary) | -0.3% | [-0.3%, -0.2%] | 3 | +| All (primary) | -0.8% | [-1.4%, 0.2%] | 5 | +- Improvements outweigh the regressions which all seemed to be reversed sometime soon after this landed. + + +Rollup of 3 pull requests [#126581](https://github.com/rust-lang/rust/pull/126581) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e23ae72ac7a393961886ea62df065ebb6def7d51&end=3baa20b783474330adb7ba7b3ddb02ac9facdf49&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 1.3% | [1.3%, 1.3%] | 1 | +| Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 6 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.3% | [-0.4%, -0.2%] | 6 | +- Regression might be noise (and isn't big enough to care about even if it isn't) + +## Nominated Issues + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- "in asm!() using a local numeric label made of all 0's and 1's gives a confusing error" [rust#94426](https://github.com/rust-lang/rust/issues/94426) + - nominated by @**Josh Triplett** + - (assumed for suggesting what the behaviour here should be) + - issue reporter comments: + > As per Rust By Example, we use 2: as a local label there to work around an LLVM bug that mistakes labels like 0:, 1:, or 10: for binary. This example works. However, if we don't know about this rule, and we try to use 0: instead, the error we get is confusing + +[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 + +- "Stop using LLVM struct types for array/pointer offset GEPs" [rust#122325](https://github.com/rust-lang/rust/pull/122325) (last review activity: 3 months ago) + - cc @**Nikita Popov** +- "Apply dllimport in ThinLTO for -Z dylib-lto" [rust#122790](https://github.com/rust-lang/rust/pull/122790) (last review activity: 3 months ago) + - cc @**Wesley Wiser** +- "[WIP] Enforce may-define-must-define for ATPITs" [rust#123046](https://github.com/rust-lang/rust/pull/123046) (last review activity: 2 months ago) + - cc: @**aliemjay** +- "CFI: Fix fn items, closures, and Fn trait objects" [rust#123082](https://github.com/rust-lang/rust/pull/123082) (last review activity: 2 months ago) + - cc @**Michael Goulet (compiler-errors)** + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/PfNc4XsWTbmI-XxbcooiGw) diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-06-27.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-06-27.md new file mode 100644 index 00000000..8f747d4e --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-06-27.md @@ -0,0 +1,353 @@ +--- +title: T-compiler Meeting Agenda 2024-06-27 +tags: [weekly, ' rustc'] + +--- + +--- +tags: weekly, rustc +type: docs +note_id: PfNc4XsWTbmI-XxbcooiGw +--- + +# T-compiler Meeting Agenda 2024-06-27 + +## 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!) + - "Add `-C embed-source` (DWARFv5 source code embedding extension)" [compiler-team#764](https://github.com/rust-lang/compiler-team/issues/764) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20.60-C.20embed-source.60.20.28DWARFv5.20source.20cod.E2.80.A6.20compiler-team.23764)) +- 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) + - "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: 5 months ago) + - concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318) + - "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: 4 months ago) + - "Partial compilation using MIR-only rlibs" [compiler-team#738](https://github.com/rust-lang/compiler-team/issues/738) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Partial.20compilation.20using.20MIR-only.20rlibs.20compiler-team.23738)) (last review activity: 2 months ago) + - "Add Hotpatch flag" [compiler-team#745](https://github.com/rust-lang/compiler-team/issues/745) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20Hotpatch.20flag.20compiler-team.23745)) (last review activity: about 40 days ago) +- Pending FCP requests (check your boxes!) + - merge: [sanitizers: stabilize core sanitizers (i.e., AddressSanitizer, LeakSanitizer, MemorySanitizer, ThreadSanitizer) (rust#123617)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2135121317) + - @_**|119009** @_**|125250** @_**|124287** @_**|426609** + - no pending concerns + - merge: [Remove the `missing_copy_implementations` lint. (rust#126293)](https://github.com/rust-lang/rust/pull/126293#issuecomment--2132638472) + - @_**|119009** @_**|125250** @_**|426609** @_**|123856** @_**|116118** + - no pending concerns +- Things in FCP (make sure you're good with it) + - "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)) + - "Promote wasm32-wasip2 to a Tier 2 target" [compiler-team#760](https://github.com/rust-lang/compiler-team/issues/760) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20wasm32-wasip2.20to.20a.20Tier.202.20target.20compiler-team.23760)) + - "Promote Mac Catalyst targets to Tier 2" [compiler-team#761](https://github.com/rust-lang/compiler-team/issues/761) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Promote.20Mac.20Catalyst.20targets.20to.20Tier.202.20compiler-team.23761)) + - "Change `-Z asm_comments` to `-Z verbose_asm`, stop stripping handwritten assembly comments" [compiler-team#762](https://github.com/rust-lang/compiler-team/issues/762) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Change.20.60-Z.20asm_comments.60.20to.20.60-Z.20verbose_a.E2.80.A6.20compiler-team.23762)) + - "Remove `Nonterminal` and `TokenKind::Interpolated`" [compiler-team#763](https://github.com/rust-lang/compiler-team/issues/763) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Remove.20.60Nonterminal.60.20and.20.60TokenKind.3A.3AInte.E2.80.A6.20compiler-team.23763)) + - "Remove the `box_pointers` lint." [rust#126018](https://github.com/rust-lang/rust/pull/126018) +- Accepted MCPs + - "Fully rustfmt `use` declarations" [compiler-team#750](https://github.com/rust-lang/compiler-team/issues/750) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.28My.20major.20change.20proposal.29.20compiler-team.23750)) + - "Remove `src/tools/rust-demangler`" [compiler-team#754](https://github.com/rust-lang/compiler-team/issues/754) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Remove.20.60src.2Ftools.2Frust-demangler.60.20compiler-team.23754)) + - "Extract rustc stable hasher into it's own crate" [compiler-team#755](https://github.com/rust-lang/compiler-team/issues/755) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Extract.20rustc.20stable.20hasher.20into.20it.27s.20own.E2.80.A6.20compiler-team.23755)) + - "Contracts: Experimental attributes and language intrinsics" [compiler-team#759](https://github.com/rust-lang/compiler-team/issues/759) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Contracts.3A.20Experimental.20attributes.20and.20la.E2.80.A6.20compiler-team.23759)) +- MCPs blocked on unresolved concerns + - merge: [Add `--print host-triple` to print host target triple (rust#125579)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133192548) + - @_**|119009** @_**|125250** @_**|426609** @_**|232957** + - concerns: [triple vs tuple (by lcnr)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133938172) + - 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** + - concerns: [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) + - "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) + - merge: [Stabilize `--env-set` option (rust#119926)](https://github.com/rust-lang/rust/pull/119926#issuecomment-1898766442) + - @_**|119009** @_**|124288** @_**|123586** @_**|125250** @_**|119031** @_**|124287** @_**|116118** + - concerns: [other-rustc-vars (by petrochenkov)](https://github.com/rust-lang/rust/pull/119926#issuecomment-1900703005) +- Finalized FCPs (disposition merge) + - "Collect relevant item bounds from trait clauses for nested rigid projections" [rust#120752](https://github.com/rust-lang/rust/pull/120752) + - "allow overwriting the output of `rustc --version`" [rust#124339](https://github.com/rust-lang/rust/pull/124339) + - "Allow constraining opaque types during various unsizing casts" [rust#125610](https://github.com/rust-lang/rust/pull/125610) +- Other teams finalized FCPs + - "Collect relevant item bounds from trait clauses for nested rigid projections" [rust#120752](https://github.com/rust-lang/rust/pull/120752) + - "Allow constraining opaque types during various unsizing casts" [rust#125610](https://github.com/rust-lang/rust/pull/125610) + +### WG checkins + +None + +## 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: "Properly gate `safe` keyword in pre-expansion" [rust#126757](https://github.com/rust-lang/rust/pull/126757) + - Authored by compiler-errors + - Gates `safe` keyword that leaked in beta channel by mistake, should mitigate #126755 + - slight perf. regression, triaged as less important than this merging this change + +- 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) +- [70 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) + - [39 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, 2 P-high, 2 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, 35 P-high, 100 P-medium, 17 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) +- "Regression in nightly-2024-05-27" [rust#126117](https://github.com/rust-lang/rust/issues/126117) +- "`safe` keyword is not feature-gated" [rust#126755](https://github.com/rust-lang/rust/issues/126755) + - fixed by beta backport of #126757 + +[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+) +- "regression: trait bound not satisfied" [rust#125194](https://github.com/rust-lang/rust/issues/125194) + - @**lcnr** does it need a new backport? @_**apiraino** slightly confused by the timeline of the backport of #119820 and #126006 +- "Varargs are completely unchecked if passed as generics" [rust-lang/61275](https://github.com/rust-lang/rust/issues/61275) + - Very old issue, possibly not even a regression + - Marked P-high now after @**Jubilee** did some minimization and analysis + - More thoughts from @**Jubilee** [on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/245100-t-compiler.2Fwg-prioritization.2Falerts/topic/.2361275.20Varargs.20are.20completely.20unchecked.20if.20passed.20as.20generi.E2.80.A6/near/446573615) + +## Performance logs + +> [triage logs](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-06-23.md) + +Mostly a number of improvements driven by [MIR inliner improvements], with a small number +benchmarks having a significant regression due to improvements in +[sort algorithms], which are runtime improvements at the cost of usually slight or +neutral compile time regressions, with outliers in a few cases. + +[MIR inliner improvements]: https://github.com/rust-lang/rust/pull/126578 +[sort algorithms]: https://github.com/rust-lang/rust/pull/124032 + +Triage done by **@simulacrum**. +Revision range: [c2932aaf..c3d7fb39](https://perf.rust-lang.org/?start=c2932aaf9d20acbc9259c762f1a06f8767c6f13f&end=c3d7fb398569407350abe044e786bc7890c90397&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 2.6% | [0.2%, 16.4%] | 36 | +| Regressions (secondary) | 1.4% | [0.1%, 5.0%] | 31 | +| Improvements (primary) | -0.8% | [-1.6%, -0.2%] | 184 | +| Improvements (secondary) | -0.9% | [-3.4%, -0.3%] | 138 | +| All (primary) | -0.2% | [-1.6%, 16.4%] | 220 | + + +4 Regressions, 5 Improvements, 3 Mixed; 2 of them in rollups +48 artifact comparisons made in total + +#### Regressions + +Rollup of 10 pull requests [#126655](https://github.com/rust-lang/rust/pull/126655) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4e63822fc4e2ca675dd28bb3f332f7fd4f3f8126&end=a1ca449981e3b8442e358026437b7bedb9a1458e&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.3% | [0.2%, 0.3%] | 6 | +| Regressions (secondary) | 0.5% | [0.2%, 0.9%] | 8 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.3% | [0.2%, 0.3%] | 6 | + +Slight instruction count regressions, but mostly in somewhat noisy benchmarks. +It looks like performance went back to previous levels in the next few commits. + +Replace sort implementations [#124032](https://github.com/rust-lang/rust/pull/124032) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=433355166d769afc9c19f761cc7efc4d152e9a2c&end=684b3553f70148ded97a80371c2405984d4f6aa7&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 2.1% | [0.2%, 18.0%] | 51 | +| Regressions (secondary) | 1.6% | [0.4%, 3.9%] | 8 | +| Improvements (primary) | -0.3% | [-0.3%, -0.3%] | 1 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 2.0% | [-0.3%, 18.0%] | 52 | + +This change was extensively benchmarked, and the regressions were known ahead +of time. Runtime improvements are considered worth the regressions, which are +limited to just a few benchmarks. (Extensive effort was also put in to minimize +the compile time and binary size costs). + +Properly gate `safe` keyword in pre-expansion [#126757](https://github.com/rust-lang/rust/pull/126757) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7a08f84627ff3035de4d66ff3209e5fc93165dcb&end=4e6de37349c7838df095b085a2640cb6a007c96a&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.2% | [0.2%, 0.3%] | 4 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.2% | [0.2%, 0.3%] | 4 | + +Looks like a minimal regression (maybe spurious/bimodality) and the change is +clearly needed. Marking as triaged. + + Generalize `{Rc,Arc}::make_mut()` to unsized types. [#116113](https://github.com/rust-lang/rust/pull/116113) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ac47dbad504b892bc0f3be8fa097537c6e0544a3&end=f944afe3807104803976484e7ee3aff49b6ac070&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.8% | [0.3%, 2.2%] | 13 | +| Regressions (secondary) | 0.9% | [0.9%, 0.9%] | 1 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.8% | [0.3%, 2.2%] | 13 | + +Regressions are mostly in doc benchmarks, seem likely to be just new docs due +to extra stuff in the standard library. + +#### Improvements + +Migrate `extern-flag-fun`, `incremental-debugger-visualiser` and `incremental-session-fail` `run-make` tests to `rmake.rs` [#126490](https://github.com/rust-lang/rust/pull/126490) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c2932aaf9d20acbc9259c762f1a06f8767c6f13f&end=67cfc3a558a54e351d14120099bf3158812b4130&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.3% | [-0.4%, -0.3%] | 6 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.3% | [-0.4%, -0.3%] | 6 | + + +Rework `feature(precise_capturing)` to represent `use<...>` as a syntactical bound [#126049](https://github.com/rust-lang/rust/pull/126049) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f873ae029e3ee2bbb8bc70a7ef3f1a06c22b0eac&end=c1f62a7c35349438ea9728abbe1bcf1cebd426b7&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 7 | +| Improvements (secondary) | -0.4% | [-0.6%, -0.2%] | 12 | +| All (primary) | -0.2% | [-0.2%, -0.2%] | 7 | + + +Fix duplicated attributes on nonterminal expressions [#126678](https://github.com/rust-lang/rust/pull/126678) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3186d17d56f9803b739a2c0aabd23aafd8791485&end=894f7a4ba6554d3797404bbf550d9919df060b97&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.5%, -0.2%] | 7 | +| Improvements (secondary) | -0.7% | [-0.7%, -0.6%] | 3 | +| All (primary) | -0.4% | [-0.5%, -0.2%] | 7 | + + +Trying to address an incremental compilation issues [#126409](https://github.com/rust-lang/rust/pull/126409) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1208eddaff59c98e37574c860de6f68aa404958f&end=1d96de2a20e963abb8923dfa3c6175517dfb9d2c&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 21 | +| Improvements (secondary) | -0.3% | [-0.3%, -0.2%] | 15 | +| All (primary) | -0.3% | [-0.4%, -0.2%] | 21 | + + +Rollup of 3 pull requests [#126838](https://github.com/rust-lang/rust/pull/126838) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f944afe3807104803976484e7ee3aff49b6ac070&end=a0f01c3c1067aecb3d1ad88621bb4d63d0a2d289&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.9%, -0.2%] | 50 | +| Improvements (secondary) | -0.4% | [-0.9%, -0.2%] | 19 | +| All (primary) | -0.4% | [-0.9%, -0.2%] | 50 | + + +#### Mixed + +[perf] More span update benchmarking [#126591](https://github.com/rust-lang/rust/pull/126591) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=67cfc3a558a54e351d14120099bf3158812b4130&end=737e42308c6e957575692965d73b17937f936f28&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.3% | [0.3%, 0.4%] | 5 | +| Regressions (secondary) | 2.3% | [1.4%, 3.6%] | 6 | +| Improvements (primary) | -0.3% | [-0.3%, -0.3%] | 1 | +| Improvements (secondary) | -0.3% | [-0.4%, -0.2%] | 14 | +| All (primary) | 0.2% | [-0.3%, 0.4%] | 6 | + +Triaged to be mostly just inlining noise: +https://github.com/rust-lang/rust/pull/126591#issuecomment-2175875210 + +Account for things that optimize out in inlining costs [#126578](https://github.com/rust-lang/rust/pull/126578) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a9c8887c7d548abc6c3e87f7d6fa02a0e95880bd&end=7a08f84627ff3035de4d66ff3209e5fc93165dcb&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 1.4% | [0.4%, 2.0%] | 6 | +| Regressions (secondary) | 1.4% | [0.3%, 4.1%] | 16 | +| Improvements (primary) | -0.6% | [-1.5%, -0.2%] | 183 | +| Improvements (secondary) | -0.9% | [-4.6%, -0.2%] | 121 | +| All (primary) | -0.5% | [-1.5%, 2.0%] | 189 | + +Mostly an improvement for the majority of benchmarks, including some slight runtime improvements. + +More ptr metadata gvn [#126541](https://github.com/rust-lang/rust/pull/126541) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4e6de37349c7838df095b085a2640cb6a007c96a&end=e32ea4822ba3f7c9054a7fb5345232388cc50c4b&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -1.0% | [-1.4%, -0.6%] | 2 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.6% | [-1.4%, 0.2%] | 3 | + +Slight improvements on `full` builds, slight regression in incremental for +cargo. In general fairly neutral, only a few benchmarks affected. + +## Nominated Issues + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- "in asm!() using a local numeric label made of all 0's and 1's gives a confusing error" [rust#94426](https://github.com/rust-lang/rust/issues/94426) + - nominated by @**Josh Triplett** + - Quite old issue (2022), recently owned by @**asquared31415** and will be fixed in #126922 + - [Comment](https://github.com/rust-lang/rust/issues/94426#issuecomment-2189894270): + > Documenting something that isn't explicitly stated here: this is an issue specifically related to the use of Intel syntax, because (AFAICT) LLVM doesn't have this issue for AT&T syntax. + > This seems like something that, eventually, we could try to get a fix for into LLVM. We would need an assembly dialect option that either handles binary numbers differently or handles backwards labels differently. + +[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 + +- "Remove -Zfuel" [rust-lang115293](https://github.com/rust-lang/rust/pull/115293) + - cc @**cjgillot** for when you have time to bring this to completion +- "Various rustc_codegen_ssa cleanups" [rust#123237](https://github.com/rust-lang/rust/pull/123237) (last review activity: 2 months ago) + - cc @**matthiaskrgr** +- "Add test for fn pointer duplication." [rust#123714](https://github.com/rust-lang/rust/pull/123714) (last review activity: 2 months ago) + - cc: @**RalfJ** +- "Silence unnecessary "missing `dyn`" errors and tweak E0746 suggestions" [rust#122957](https://github.com/rust-lang/rust/pull/122957) (last review activity: 2 months ago) + - cc: @**oli** +- "Give RPITITs variances, so they can (not) capture lifetimes" [rust#124029](https://github.com/rust-lang/rust/pull/124029) (last review activity: 2 months ago) + - cc @**Michael Goulet (compiler-errors)** self-assigned, unsure about current status +- "Update AST validation module docs" [rust#124091](https://github.com/rust-lang/rust/pull/124091) (last review activity: 2 months ago) + - cc @**Esteban Küber** +- "Move alignment checks to codegen" [rust#117473](https://github.com/rust-lang/rust/pull/117473) (last review activity: about 42 days ago) + - cc @**oli**, I think +- "Suggest borrowing on fn argument that is `impl AsRef`" [rust#124599](https://github.com/rust-lang/rust/pull/124599) (last review activity: about 55 days ago) + - cc: @**Wesley Wiser** + +## Next week's WG checkins + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/b8aoULbjSOiPk2z64V-ncA)