diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-01.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-01.md new file mode 100644 index 00000000..897d51a8 --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-01.md @@ -0,0 +1,417 @@ +--- +tags: weekly, rustc +type: docs +note_id: hJCBlVJDQt-MIuhs6RM4Sw +--- + +# T-compiler Meeting Agenda 2024-08-01 + +## 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 + + - (TIP) get them from https://github.com/rust-lang/calendar + +## 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: 6 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: 6 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: 3 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: 2 months ago) +- Pending FCP requests (check your boxes!) + - None +- Things in FCP (make sure you're good with it) + - "Disallow setting some built-in cfg via set the command-line" [rust#126158](https://github.com/rust-lang/rust/pull/126158) +- Accepted MCPs + - No new accepted proposals this time. +- MCPs blocked on unresolved concerns + - merge: [sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2135121317) + - no pending checkboxes + - concerns: [stabilization-scope (by wesleywiser)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2192330122) + - 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) + - merge: [Add `--print host-triple` to print host target triple (rust#125579)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133192548) + - @_**|232957** + - concerns: [triple vs tuple (by lcnr)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133938172) +- Finalized FCPs (disposition merge) + - "Fix supertrait associated type unsoundness" [rust#126090](https://github.com/rust-lang/rust/pull/126090) + - "Graciously handle `Drop` impls introducing more generic parameters than the ADT" [rust#127220](https://github.com/rust-lang/rust/pull/127220) +- Other teams finalized FCPs + - "Fix supertrait associated type unsoundness" [rust#126090](https://github.com/rust-lang/rust/pull/126090) + - "Graciously handle `Drop` impls introducing more generic parameters than the ADT" [rust#127220](https://github.com/rust-lang/rust/pull/127220) + +### 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: "Disable jump threading of float equality" [rust#128271](https://github.com/rust-lang/rust/pull/128271) + - Authored by Noratrieb + - fixes #128243, critical unsoundness related to the Jump threading MIR opt + +- :beta: "Revert recent changes to dead code analysis" [rust#128404](https://github.com/rust-lang/rust/pull/128404) + - Authored by compiler-errors + - reverts a bunch of changes causing false diags on linting, fixes #128272, #126169 + - Not yet merged but r'ed by @**pnkfelix** + +- :stable: "Disable jump threading of float equality" [rust#128271](https://github.com/rust-lang/rust/pull/128271) + - Authored by Noratrieb + - see above. stable nominated by @**Ben Kimock (Saethlin)** (inferred intent: "if a dot release happens") + + +[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 + +- [1 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical) + - [0 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee) +- [67 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, 0 P-high, 3 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) +- [0 P-critical, 1 P-high, 5 P-medium, 2 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) +- [0 P-critical, 36 P-high, 100 P-medium, 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) +- "Jump threading MIR opt unsoundly uses bitpattern equality for floats" [rust#128243](https://github.com/rust-lang/rust/issues/128243) + - fixed by #128271, PR backport nominated + +[T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types) +- No `P-critical` issues for `T-types` this time. + +### P-high regressions + +[P-high beta regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-beta+label%3AP-high+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core) +- No `P-high` beta regressions this time. + +[Unassigned P-high nightly regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-nightly+label%3AP-high+no%3Aassignee+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core+) +- "Generated WebAssembly unexpectedly requires reference types" [rust#128475](https://github.com/rust-lang/rust/issues/128475) + - rustc basically produces code not compliant with wasm 1.0 spec (but this has been going on for a while, see comment on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/245100-t-compiler.2Fwg-prioritization.2Falerts/topic/.23128475.20Generated.20WebAssembly.20unexpectedly.20requires.20referen.E2.80.A6/near/455595917)) + - possibly this can downgraded (waiting for some WASM experts to chime in) + +## Performance logs + +> [triage logs 2024-07-30](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-07-30.md) + +There were some notable regressions this week. Some of them are being +addressed via follow-up PRs (such as the change to whitespace +diagnostic reporting), and some via reverts (such as the dead code +analysis that tried to flag pub structs without pub constructors). A +few regressions have not yet been addressed. See report for details. + +Triage done by **@pnkfelix**. +Revision range: [9629b90b..7e3a9718](https://perf.rust-lang.org/?start=9629b90b3f7dd8f5626ec9d3b42556f39f09e214&end=7e3a971870f23c94f7aceb53b490fb37333150ff&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 1.3% | [0.2%, 6.1%] | 43 | +| Regressions (secondary) | 1.9% | [0.1%, 10.4%] | 46 | +| Improvements (primary) | -1.0% | [-3.9%, -0.2%] | 27 | +| Improvements (secondary) | -1.6% | [-6.8%, -0.2%] | 43 | +| All (primary) | 0.4% | [-3.9%, 6.1%] | 70 | + + +5 Regressions, 6 Improvements, 6 Mixed; 8 of them in rollups +65 artifact comparisons made in total + +#### Regressions + +Do not use global caches if opaque types can be defined [#126024](https://github.com/rust-lang/rust/pull/126024) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d24930ceb473b7b361d108d573308e3529cb5ef7&end=2ccafed862f6906707a390caf180449dd64cad2e&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 3.4% | [1.6%, 5.5%] | 6 | +| Regressions (secondary) | 3.1% | [0.4%, 5.4%] | 11 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 3.4% | [1.6%, 5.5%] | 6 | + +* This PR says it is fixing a soundness problem. (Its not clear to me if the wrong issue was linked; the linked one is an ICE that was not actually resolved.) +* All six of the regressions are to hyper: {check,debug,opt} x {incr-full, full}. +* we probably should just accept this cost + +Rollup of 5 pull requests [#128169](https://github.com/rust-lang/rust/pull/128169) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e7d66eac5e8e8f60370c98d186aee9fa0ebd7845&end=004e155c46a2083d4f73212cc47a6f7fb98fcbd1&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.9% | [0.2%, 3.0%] | 26 | +| Regressions (secondary) | 0.5% | [0.3%, 2.2%] | 13 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.9% | [0.2%, 3.0%] | 26 | + +* the bulk of the regressions are to syn (i.e. 8 out of the 9 that are > 1%). +* this was due to a change in how diagnostics handle certain "whitespace" characters (PR #127528); there is a revert proposed in PR #128179, but there is also a PR to address the issue itself as a followup in PR #128200 +* not marking as triaged until either PR #128179 or PR #128200 is landed. + +Rollup of 7 pull requests [#128186](https://github.com/rust-lang/rust/pull/128186) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=54be9ad5eb47207d155904f6c912a9526133f75f&end=eb10639928a2781cf0a12440007fbcc1e3a6888f&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.3% | [0.2%, 0.5%] | 11 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.3% | [0.2%, 0.5%] | 11 | + +* already marked as triaged + +Rollup of 9 pull requests [#128253](https://github.com/rust-lang/rust/pull/128253) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7c2012d0ec3aae89fefc40e5d6b317a0949cda36&end=8b6b8574f6f2fcc71ec500a52d7bf74fdaff0ed6&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.5% | [0.4%, 0.5%] | 3 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.5% | [0.4%, 0.5%] | 3 | + +* regressed incr-full for bitmaps-{check,opt} and typenum-check +* seems like noise from the graph over time; marking as triaged. + + +Document 0x10.checked_shl(BITS - 1) does not overflow [#128255](https://github.com/rust-lang/rust/pull/128255) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a526d7ce45fd2284e0e7c7556ccba2425b9d25e5&end=ad3c5a330173a4a6446c1ed90c72a3f5f9106888&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.5% | [0.5%, 0.6%] | 4 | +| Regressions (secondary) | 2.2% | [2.2%, 2.2%] | 1 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.5% | [0.5%, 0.6%] | 4 | + +* noise, already marked as triaged + +#### Improvements + +Remove unnecessary impl sorting in queries and metadata [#120812](https://github.com/rust-lang/rust/pull/120812) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=92c6c03805408a1a261b98013304e9bbf59ee428&end=0f8534e79e4cfbda7421017047d1f5021235b0ac&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -1.2% | [-2.1%, -0.4%] | 2 | +| Improvements (secondary) | -0.3% | [-0.4%, -0.3%] | 2 | +| All (primary) | -1.2% | [-2.1%, -0.4%] | 2 | + + +rustdoc: clean up and fix ord violations in item sorting [#128146](https://github.com/rust-lang/rust/pull/128146) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6106b05b27988f4b946d7af219a6db95fb4477a1&end=c1a6199e9d92bb785c17a6d7ffd8b8b552f79c10&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.7% | [-1.6%, -0.2%] | 4 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.7% | [-1.6%, -0.2%] | 4 | + + +Rollup of 6 pull requests [#128195](https://github.com/rust-lang/rust/pull/128195) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=eb10639928a2781cf0a12440007fbcc1e3a6888f&end=aa877bc71c8c8082122bee23d17c8669f30f275d&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.5%, -0.4%] | 5 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.4% | [-0.5%, -0.4%] | 5 | + +* (just noise I think) + +Switch from `derivative` to `derive-where` [#127042](https://github.com/rust-lang/rust/pull/127042) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7120fdac7a6e55a5e4b606256042890b36067052&end=2f26b2a99ab976c43d12cf57ef4a3a2c82ede286&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.2% | [-0.3%, -0.2%] | 16 | +| Improvements (secondary) | -0.5% | [-0.6%, -0.4%] | 8 | +| All (primary) | -0.2% | [-0.3%, -0.2%] | 16 | + + +Always set `result` during `finish()` in debug builders [#127946](https://github.com/rust-lang/rust/pull/127946) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8b6b8574f6f2fcc71ec500a52d7bf74fdaff0ed6&end=a526d7ce45fd2284e0e7c7556ccba2425b9d25e5&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.5% | [-0.6%, -0.5%] | 6 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | -0.5% | [-0.6%, -0.5%] | 6 | + +* (just noise I think) + +Rollup of 6 pull requests [#128313](https://github.com/rust-lang/rust/pull/128313) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=188ddf4d6a694fa263c2ff8be8f8eade659599d6&end=2cbbe8b8bb2be672b14cf741a2f0ec24a49f3f0b&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -1.0% | [-1.1%, -1.0%] | 2 | +| Improvements (secondary) | -0.9% | [-1.9%, -0.2%] | 10 | +| All (primary) | -1.0% | [-1.1%, -1.0%] | 2 | + + +#### Mixed + +Try to fix ICE from re-interning an AllocId with different allocation contents [#127442](https://github.com/rust-lang/rust/pull/127442) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ee0fd6caf770e8b3baa403b4da3ef0c7e274dc21&end=ae7b1c191695f351e69ef7ad32c0897048bba73e&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 0.8% | [0.2%, 2.5%] | 4 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -0.7% | [-1.4%, -0.3%] | 7 | +| All (primary) | - | - | 0 | + +* the regressions are to secondary benchmarks and this is fixing a subtle ICE that arises from a race condition (and may actually represent a chance of miscompilation, maybe?) +* marked as triaged + +Rollup of 8 pull requests [#128155](https://github.com/rust-lang/rust/pull/128155) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c1a6199e9d92bb785c17a6d7ffd8b8b552f79c10&end=e7d66eac5e8e8f60370c98d186aee9fa0ebd7845&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.5% | [0.2%, 0.8%] | 6 | +| Regressions (secondary) | 0.9% | [0.7%, 1.0%] | 7 | +| Improvements (primary) | -0.5% | [-0.6%, -0.4%] | 4 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.1% | [-0.6%, 0.8%] | 10 | + +* regressions are to hyper and exa. Mostly in hyper check-full, check-incr-full, and debug-incr-full. +* bulk of time might be from spike in time spent in `mir_const_qualif` query ? +* not marking as triaged, (though it is, to be clear, a relatively minor regression). + +Allow optimizing `u32::from::`. [#124905](https://github.com/rust-lang/rust/pull/124905) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ad3c5a330173a4a6446c1ed90c72a3f5f9106888&end=3942254d00bf95cd5920980f85ebea57a1e6ce2a&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.2% | [0.2%, 0.3%] | 4 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.1% | [-0.2%, 0.3%] | 5 | + + +* regressions are to image opt {full, incr-full}, cargo opt {full, incr-full}, and syn opt incr-unchanged +* It appears that its due to extra time spent in LLVM opt, especially lto optimize, which makes sense given that this is meant to be enabling LLVM to attempt more such optimizations? +* marked as triaged. + +Rollup of 3 pull requests [#128301](https://github.com/rust-lang/rust/pull/128301) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1b51d80027919563004918eaadfa0d890ac0eb93&end=78c857394ec8c01f06cb1df260c51178180a40e5&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 2.1% | [2.1%, 2.1%] | 1 | +| Improvements (primary) | -0.2% | [-0.3%, -0.2%] | 2 | +| Improvements (secondary) | -1.6% | [-3.0%, -0.2%] | 2 | +| All (primary) | -0.2% | [-0.3%, -0.2%] | 2 | + +* sole regression is to secondary benchmark coercions debug-full. +* seems like noise. +* marked as triaged + + Perform instsimplify before inline to eliminate some trivial calls [#128265](https://github.com/rust-lang/rust/pull/128265) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=56c698c71130de6fe55ba703a161405b6145b90e&end=4db3d12e6f395babed53dee1d209a5c8699a5ae6&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 1.2% | [0.2%, 2.6%] | 4 | +| Regressions (secondary) | 0.5% | [0.5%, 0.5%] | 1 | +| Improvements (primary) | -0.5% | [-0.8%, -0.2%] | 12 | +| Improvements (secondary) | -0.3% | [-0.4%, -0.3%] | 2 | +| All (primary) | -0.0% | [-0.8%, 2.6%] | 16 | + +* main primary regressions are to ripgrep opt full and image opt-full +* these changes were anticipated during review, seems likely result of changes to inlining decisions +* marked as triaged + +Rollup of 6 pull requests [#128360](https://github.com/rust-lang/rust/pull/128360) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=612a33f20b9b2c27380edbc4b26a01433ed114bc&end=368e2fd458a22d0cc133d0c254f2612ee999744f&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.6% | [0.4%, 0.7%] | 4 | +| Regressions (secondary) | 4.4% | [0.3%, 12.0%] | 10 | +| Improvements (primary) | -0.3% | [-0.3%, -0.3%] | 4 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.1% | [-0.3%, 0.7%] | 8 | + + +* primary regressions are to doc-full for html5ever, stm32f4, libc, and typenum +* those are presumably due to PR [#126247](https://github.com/rust-lang/rust/issues/126247); pnkfelix thinks the above not worth further investigation +* however, Kobzol has pointed out that the secondary regressions are significant, and has identified the root cause as PR [#128104](https://github.com/rust-lang/rust/issues/128104) +* we are in any case planning to revert the changes to dead code analysis (see PR [#128404](https://github.com/rust-lang/rust/issues/128404)) which should address those regressions. +* marked as triaged. + +## Nominated topics for discussions + +- Bjorn asks about \x01 in symbol names (on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/.5Cx01.20in.20symbol.20names/near/454506090)) +- @**pnkfelix** asks Compiler team members to have a look and share an opinion about removing/muting some lints from the rustc benchmarks runs (see [Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/247081-t-compiler.2Fperformance/topic/Updating.20benchmarks.20to.20remove.20loads.20of.20lint.20warnings/near/441241153)) + > Jakub says: Recently, our rustc-perf benchmarks started emitting many lints [rustc-perf#1819](https://github.com/rust-lang/rustc-perf/issues/1819). I don't think that it's good to disable these lints (or their output) during benchmarking, but over time if we accrue too many lints in the benchmarks, they will probably stop being realistic (most crates probably don't generate thousands of lints/warnings). It hasn't been three years yet ([doc link](https://github.com/rust-lang/rustc-perf/tree/master/collector/compile-benchmarks#update-policy)), but I wonder if we should start thinking about doing another round of mass benchmark update, to make sure that they don't generate so many warnings. + +## Nominated Issues + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- "Async drop codegen" [rust#123948](https://github.com/rust-lang/rust/pull/123948) + - Review was assigned [last week](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202024-07-25/near/453962767) to Vadim who commented (on [github](https://github.com/rust-lang/rust/pull/123948#issuecomment-2250464974)) not having enough context. + - So, any taker for this review? 😅 + +[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- No I-compiler-nominated RFCs this time. + +### Oldest PRs waiting for review + +[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc+label%3AS-waiting-on-review+draft%3Afalse+label%3AT-compiler) +- "Consistently use the highest bit of vector masks when converting to i1 vectors" [rust#104693](https://github.com/rust-lang/rust/pull/104693) (last review activity: 13 months ago) + - cc @**Wesley Wiser** (this is a *very* old PR, unsure who was actually reviewing this, there are comments from many people) +- "sess: stabilize `-C stack-protector=all`" [rust#121742](https://github.com/rust-lang/rust/pull/121742) + - Unsure if this blocked on this [comment](https://github.com/rust-lang/rust/issues/114903#issuecomment-2123296641) + - cc @**davidtwco** @**Nikita Popov** +- "Simplify match based on the cast result of `IntToInt`" [rust#127324](https://github.com/rust-lang/rust/pull/127324) (last review activity: about 24 days ago) + - cc @**cjgillot** + +## Next week's WG checkins + +None + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/8PHAmxDiTwiyWL202LNelw) diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-08.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-08.md new file mode 100644 index 00000000..e1a46a30 --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-08.md @@ -0,0 +1,380 @@ +--- +title: T-compiler Meeting Agenda 2024-08-08 +tags: [weekly, ' rustc'] + +--- + +--- +tags: weekly, rustc +type: docs +note_id: 8PHAmxDiTwiyWL202LNelw +--- + +# T-compiler Meeting Agenda 2024-08-08 + +## Announcements + +- A Rust 1.80.1 will be out (with stable backports from last week): [blog post](https://github.com/rust-lang/blog.rust-lang.org/blob/4375ceaf547eeab0710f7e0591e56ea991842262/posts/2024-08-08-Rust-1.80.1.md). +- Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @_**davidtwco** or @_**Wesley Wiser** so we can pass it along). + +### Other WG meetings +- Types Team: ITE (Impl Trait Everywhere) Triage +- wg-rust-analyzer steering meeting on Zulip (https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Steering.20meeting) +- wg-macros triage meeting Zulip (https://rust-lang.zulipchat.com/#narrow/stream/410876-wg-macros.2Ftriage) + +## MCPs/FCPs + +- New MCPs (take a look, see if you like them!) + - "Don't track `--emit=` options as part of crate SVH" [compiler-team#769](https://github.com/rust-lang/compiler-team/issues/769) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Don.27t.20track.20.60--emit.3D.60.20options.20as.20part.20of.20.E2.80.A6.20compiler-team.23769)) +- 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: 6 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: 3 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: 2 months ago) +- Pending FCP requests (check your boxes!) + - merge: [sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2135121317) + - no pending checkboxes + - concerns: [stabilization-scope (by wesleywiser)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2192330122) + - merge: [Add `--print host-triple` to print host target triple (rust#125579)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133192548) + - @_**|232957** + - concerns (basically lifted because no consensus was found): [triple vs tuple (by lcnr)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133938172) +- Things in FCP (make sure you're good with it) + - No FCP requests this time. +- Accepted MCPs + - No new accepted proposals this time. +- MCPs blocked on unresolved concerns + - "Add hygiene attributes to compile expanded source code" [compiler-team#692](https://github.com/rust-lang/compiler-team/issues/692) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20option.20to.20compile.20expanded.20ASTs.20for.20h.E2.80.A6.20compiler-team.23692)) (last review activity: 6 months ago) + - concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318) + - 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) +- Finalized FCPs (disposition merge) + - "Enforce supertrait outlives obligations hold when confirming impl" [rust#124336](https://github.com/rust-lang/rust/pull/124336) + - "Disallow setting some built-in cfg via set the command-line" [rust#126158](https://github.com/rust-lang/rust/pull/126158) + - "turn `invalid_type_param_default` into a `FutureReleaseErrorReportInDeps`" [rust#127655](https://github.com/rust-lang/rust/pull/127655) +- Other teams finalized FCPs + - "Enforce supertrait outlives obligations hold when confirming impl" [rust#124336](https://github.com/rust-lang/rust/pull/124336) + - "turn `invalid_type_param_default` into a `FutureReleaseErrorReportInDeps`" [rust#127655](https://github.com/rust-lang/rust/pull/127655) + - "Stabilize unsafe extern blocks (RFC 3484)" [rust#127921](https://github.com/rust-lang/rust/pull/127921) + +### 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: "Do not apply `#[do_not_recommend]` if the feature flag is not set" [rust#128674](https://github.com/rust-lang/rust/pull/128674) + - Authored by weiznich + - nominated preemptively (still a work in progress) + +- :beta: "Normalize when equating `dyn` tails in MIR borrowck" [rust#128694](https://github.com/rust-lang/rust/pull/128694) + - Authored by compiler-errors + - Fixes #128621 a P-high regression + +- 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) +- "Stabilize `extended_varargs_abi_support`" [rust#116161](https://github.com/rust-lang/rust/pull/116161) +- "Better errors with bad/missing identifiers in MBEs" [rust#118939](https://github.com/rust-lang/rust/pull/118939) +- "Uplift `clippy::invalid_null_ptr_usage` lint" [rust#119220](https://github.com/rust-lang/rust/pull/119220) +- "Rename `AsyncIterator` back to `Stream`, introduce an AFIT-based `AsyncIterator` trait" [rust#119550](https://github.com/rust-lang/rust/pull/119550) +- "Initial support for auto traits with default bounds" [rust#120706](https://github.com/rust-lang/rust/pull/120706) +- "Disallow deriving (other than Copy/Clone) on types with unnamed fields" [rust#121270](https://github.com/rust-lang/rust/pull/121270) +- "Emit a warning if a `match` is too complex" [rust#122685](https://github.com/rust-lang/rust/pull/122685) +- [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) + - [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) + - [37 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee) +- [1 P-critical, 0 P-high, 3 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) +- [0 P-critical, 1 P-high, 5 P-medium, 2 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) +- [0 P-critical, 36 P-high, 100 P-medium, 16 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) +- "ICE: `adding a def'n for node-id NodeId(18) and def kind AnonConst but a previous def'n exists`" [rust#128016](https://github.com/rust-lang/rust/issues/128016) + - Can be fixed by #128760 in beta + - Note: that patch points to `rust:beta` branch but it is not `beta-nominated`. Should it be? + +[T-types](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AP-critical+label%3AT-types) +- No `P-critical` issues for `T-types` this time. + +### P-high regressions + +[P-high beta regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-beta+label%3AP-high+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core) +- No `P-high` beta regressions this time. + +[Unassigned P-high nightly regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-nightly+label%3AP-high+no%3Aassignee+-label%3AT-infra+-label%3AT-libs+-label%3AT-libs-api+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core+) +- "Generated WebAssembly unexpectedly requires reference types" [rust#128475](https://github.com/rust-lang/rust/issues/128475) + - Alex Chrichton prepared #128511 to document this behaviour. "Fixing" this would very complicated and involves LLVM. + +## Performance logs + +> [triage logs 2024-08-06](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-08-06.md) + +This week saw several large improvements caused mostly by the [update to LLVM 19](https://github.com/rust-lang/rust/pull/127513). There were some regressions in several pull requests, but most of them were immediately fixed in a follow-up PR. + +Triage done by **@kobzol**. +Revision range: [7e3a9718..8c7e0e16](https://perf.rust-lang.org/?start=7e3a971870f23c94f7aceb53b490fb37333150ff&end=8c7e0e160831866bc1a40691a39455aac21271c0&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:---------------:|:-----:| +| Regressions (primary) | 1.0% | [0.2%, 3.8%] | 91 | +| Regressions (secondary) | 1.9% | [0.2%, 19.2%] | 104 | +| Improvements (primary) | -4.4% | [-15.8%, -0.3%] | 120 | +| Improvements (secondary) | -3.3% | [-10.4%, -0.2%] | 70 | +| All (primary) | -2.1% | [-15.8%, 3.8%] | 211 | + + +6 Regressions, 3 Improvements, 5 Mixed; 4 of them in rollups +51 artifact comparisons made in total + +#### Regressions + +Rollup of 7 pull requests [#128413](https://github.com/rust-lang/rust/pull/128413) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f8060d282d42770fadd73905e3eefb85660d3278&end=249cf71f11a29b3fb68e8a35969569d8bb7958ee&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.6% | [0.2%, 1.9%] | 28 | +| Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 7 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.6% | [0.2%, 1.9%] | 28 | + +- The regression was caused by https://github.com/rust-lang/rust/pull/128357. +- The regression should be fixed by https://github.com/rust-lang/rust/pull/128550. +- Marked as triaged. + +Rollup of 6 pull requests [#128469](https://github.com/rust-lang/rust/pull/128469) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=28a58f2fa7f0c46b8fab8237c02471a915924fe5&end=71b211609605590423a68ba3f503e53404d4fdb4&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.3% | [0.2%, 0.7%] | 10 | +| Regressions (secondary) | 1.0% | [0.2%, 2.1%] | 36 | +| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 | +| Improvements (secondary) | -2.5% | [-2.5%, -2.5%] | 1 | +| All (primary) | 0.3% | [-0.2%, 0.7%] | 11 | + +- The regression was caused by https://github.com/rust-lang/rust/pull/128443. +- The regression was later fixed in https://github.com/rust-lang/rust/pull/128544. +- Marked as triaged. + +Rewrite binary search implementation [#128254](https://github.com/rust-lang/rust/pull/128254) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2cec7a85ed4868c90194a2187d2751788e298197&end=19326022d243f487b5752661cd9b597d620a489e&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.5% | [0.2%, 1.7%] | 16 | +| Regressions (secondary) | 6.2% | [0.2%, 19.5%] | 6 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -4.1% | [-4.1%, -4.1%] | 1 | +| All (primary) | 0.5% | [0.2%, 1.7%] | 16 | + +- This PR optimized the standard library implementation of binary search. +- The regression is caused by LLVM spending more time in optimizing the new binary search, because it is now more amenable to unrolling and other optimizations. +- Marked as triaged. + +Rollup of 7 pull requests [#128614](https://github.com/rust-lang/rust/pull/128614) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bbf60c897e18a72923129c63ff33ce2de2968815&end=64ebd39da5ec28caa3bd7cbb3f22f5949432fe2b&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 0.8% | [0.4%, 1.3%] | 10 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | - | - | 0 | + +- The regression was caused by https://github.com/rust-lang/rust/pull/127921. +- The compiler now performs more work, so a small regression is expected. +- Marked as triaged. + +Update the stdarch submodule [#128466](https://github.com/rust-lang/rust/pull/128466) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8f63e9f8732d8688f2b5e1c816569f65ee185c7e&end=b389b0ab72cb0aa9acf4df0ae0c0e12090782da9&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.7% | [0.2%, 2.6%] | 13 | +| Regressions (secondary) | 1.0% | [0.2%, 4.3%] | 32 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.7% | [0.2%, 2.6%] | 13 | + +- Small regression on several benchmarks, caused by the standard library becoming larger. +- Marked as triaged. + +Enforce supertrait outlives obligations hold when confirming impl [#124336](https://github.com/rust-lang/rust/pull/124336) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=83e9b93c90bcd7f52d17d09b52e3a2eff707c46a&end=2b78d920964e1d70927bcd208529bda0e11120d0&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.6% | [0.2%, 1.5%] | 95 | +| Regressions (secondary) | 1.8% | [0.2%, 4.2%] | 38 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.6% | [0.2%, 1.5%] | 95 | + +- Medium regression on a lot of primary benchmarks. +- Not marking as triaged yet, investigation ongoing. + +#### Improvements + +Rollup of 6 pull requests [#128504](https://github.com/rust-lang/rust/pull/128504) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e60ebb2f2c1facba87e7971798f3cbdfd309cd23&end=a886938671e1fde9d7271dce8ca3d6938bae9d2e&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -0.4% | [-0.5%, -0.3%] | 12 | +| All (primary) | - | - | 0 | + + +Delegation: second attempt to improve perf [#128441](https://github.com/rust-lang/rust/pull/128441) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=64ebd39da5ec28caa3bd7cbb3f22f5949432fe2b&end=8f63e9f8732d8688f2b5e1c816569f65ee185c7e&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.4% | [-0.7%, -0.2%] | 9 | +| Improvements (secondary) | -0.5% | [-1.1%, -0.1%] | 9 | +| All (primary) | -0.4% | [-0.7%, -0.2%] | 9 | + +Check divergence value first before doing span operations in `warn_if_unreachable` [#128544](https://github.com/rust-lang/rust/pull/128544) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ebd08d8ed5c8904de8700def78adc1dbd5727684&end=ab1527f1d6560168f9fd36fa8cd7ba677c1d36ad&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -0.3% | [-0.5%, -0.2%] | 21 | +| Improvements (secondary) | -1.0% | [-2.1%, -0.2%] | 34 | +| All (primary) | -0.3% | [-0.5%, -0.2%] | 21 | + + +#### Mixed + +Delegation: support generics for delegation from free functions [#125929](https://github.com/rust-lang/rust/pull/125929) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e69c19ea0b8cf29ab8188a0eb5e899655464a1ff&end=1ddedbaa5919b7b3e70d984660e21e844c615c97&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.4% | [0.2%, 0.8%] | 11 | +| Regressions (secondary) | 0.5% | [0.1%, 1.2%] | 10 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -0.3% | [-0.4%, -0.2%] | 2 | +| All (primary) | 0.4% | [0.2%, 0.8%] | 11 | + +- The regression was resolved in https://github.com/rust-lang/rust/pull/128441. +- Marked as triaged. + +Update to LLVM 19 [#127513](https://github.com/rust-lang/rust/pull/127513) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e552c168c72c95dc28950a9aae8ed7030199aa0d&end=0b5eb7ba7bd796fb39c8bb6acd9ef6c140f28b65&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:---------------:|:-----:| +| Regressions (primary) | 1.3% | [0.2%, 3.6%] | 13 | +| Regressions (secondary) | 0.9% | [0.2%, 3.4%] | 37 | +| Improvements (primary) | -3.2% | [-15.8%, -0.2%] | 172 | +| Improvements (secondary) | -2.6% | [-10.5%, -0.2%] | 82 | +| All (primary) | -2.9% | [-15.8%, 3.6%] | 185 | + +- This was a large performance increase caused by an update to LLVM 19. +- Improvement far outweigh the regressions. +- Marked as triaged. + +Accelerate GVN a little [#126991](https://github.com/rust-lang/rust/pull/126991) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=99322d84c4e216940621c356787331d8ae362326&end=28a58f2fa7f0c46b8fab8237c02471a915924fe5&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.3% | [0.3%, 0.3%] | 1 | +| Regressions (secondary) | 2.1% | [2.1%, 2.1%] | 1 | +| Improvements (primary) | -0.4% | [-0.4%, -0.3%] | 2 | +| Improvements (secondary) | -0.7% | [-1.0%, -0.4%] | 6 | +| All (primary) | -0.2% | [-0.4%, 0.3%] | 3 | + +- More improvements than regressions. +- Marked as triaged. + +Revert recent changes to dead code analysis [#128404](https://github.com/rust-lang/rust/pull/128404) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ad0a2b7180c06514370c4c7a7a73ee75158e88fa&end=1f47624f9abad7974afe1c016a4e8b07f4254ee4&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:---------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 1.1% | [0.7%, 1.7%] | 9 | +| Improvements (primary) | -0.4% | [-1.2%, -0.2%] | 47 | +| Improvements (secondary) | -2.9% | [-10.7%, -0.2%] | 15 | +| All (primary) | -0.4% | [-1.2%, -0.2%] | 47 | + +- More improvements than regressions. +- Marked as triaged. + +Change output normalization logic to be linear against size of output [#128200](https://github.com/rust-lang/rust/pull/128200) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c9687a95a602091777e28703aa5abf20f1ce1797&end=8c7e0e160831866bc1a40691a39455aac21271c0&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 0.4% | [0.3%, 0.5%] | 6 | +| Improvements (primary) | -0.9% | [-2.6%, -0.2%] | 19 | +| Improvements (secondary) | -0.5% | [-0.7%, -0.3%] | 10 | +| All (primary) | -0.9% | [-2.6%, -0.2%] | 19 | + +- This PR fixed a small regression from https://github.com/rust-lang/rust/pull/127528. +- More improvements than regressions. +- Marked as triaged. + +## Nominated Issues + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- "ill-typed unused FFI declarations can cause UB" [rust#46188](https://github.com/rust-lang/rust/issues/46188) + - nominated by @**RalfJ** ([comment](https://github.com/rust-lang/rust/issues/46188#issuecomment-2268730910)) + - Attempted to write a patch in #128247 but ultimately hard to fix (related [Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/187780-t-compiler.2Fwg-llvm/topic/Fixing.20codegen.20for.20multiple.20different.20imports.20of.20the.20same.20fn)). I am also increasingly skeptical whether LLVM will cope well with functions declared as `@func_name = external global [0 x i8]` -- aren't functions special e.g. in how they are treated by the linker on some platforms, and other things like that? Also this will hit entirely untested codepaths in LLVM. + - How to best resolve this issue? Re-consider priority? +- "Tracking Issue for the C-cmse-nonsecure-call ABI" [rust#81391](https://github.com/rust-lang/rust/issues/81391) + - nominated by @**Jieyou Xu** ([comment](https://github.com/rust-lang/rust/issues/81391#issuecomment-2267314513)): + - also nominated for T-lang + - Does this need an MCP/FCP for stabilization, or does this need further design? + - Does this need a joint T-compiler/T-lang FCP? + - We should help the people working on cmse-related things to find knowledgeable reviewers / domain experts who can help reviewing the changes, or otherwise provide advice on how to split related PRs for easier reviewing. + - Are cmse-related efforts being tracked anywhere? +- "[DRAFT] #[contracts::requires(...)]" [rust#128045](https://github.com/rust-lang/rust/pull/128045) + - nominated by @**Jieyou Xu** ([comment](https://github.com/rust-lang/rust/pull/128045#issuecomment-2267121847)): looking for a reviewer familiar with attribute handling / HIR/MIR changes + - The current challenge seems to be that existing attribute handling only supports a "single path segment", i.e. `#[contracts()]` but not `#[contracts::requires()]`. We also can't trivially reuse existing `register_attr!` or visitor because they impose strict limits on the `` and require it to be very primitive (like literals or identifiers or simple lists) but does not support arbitrary expressions like `x > 0`. To support the arbitrary inner expression (in that it may not necessarily be a valid rust expression), it may require relaxing that restriction, but it may raise further parsing/grammar questions. It's not clear what's the best path forward here. + +[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- No I-compiler-nominated RFCs this time. + +### Oldest PRs waiting for review + +[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc+label%3AS-waiting-on-review+draft%3Afalse+label%3AT-compiler) +- "Implement unification of const abstract impls" [rust#104803](https://github.com/rust-lang/rust/pull/104803) (last review activity: 12 months ago) + - this is assigned to Oli which is now on vacation (and removed themself from a number of pending reviews). If anyone wants to pick it up here ... +- "Do not eagerly reject inference vars when trying to resolve method calls." [rust#126316](https://github.com/rust-lang/rust/pull/126316) (last review activity: about 53 days ago) + - cc @**lcnr** + +## Next week's WG checkins + +None + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/pxKZfm4kToGkN9V1pC8L1Q) diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-15.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-15.md new file mode 100644 index 00000000..28a45c41 --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-15.md @@ -0,0 +1,302 @@ +--- +tags: weekly, rustc +type: docs +note_id: pxKZfm4kToGkN9V1pC8L1Q +--- + +# T-compiler Meeting Agenda 2024-08-15 + +## Announcements + +- Today released dot release 1.80.1: https://blog.rust-lang.org/2024/08/08/Rust-1.80.1.html +- Also published list of Project Goals 2024! https://blog.rust-lang.org/2024/08/12/Project-goals.html +- 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 +- wg-rust-analyzer steering meeting on Zulip (https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Steering.20meeting) +- wg-macros triage meeting Zulip (https://rust-lang.zulipchat.com/#narrow/stream/410876-wg-macros.2Ftriage) + +## MCPs/FCPs + +- New MCPs (take a look, see if you like them!) + - "Don't track `--emit=` options as part of crate SVH" [compiler-team#769](https://github.com/rust-lang/compiler-team/issues/769) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Don.27t.20track.20.60--emit.3D.60.20options.20as.20part.20of.20.E2.80.A6.20compiler-team.23769)) + - "Opt-in flag for absolute paths in diagnostics" [compiler-team#770](https://github.com/rust-lang/compiler-team/issues/770) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Opt-in.20flag.20for.20absolute.20paths.20in.20diagnos.E2.80.A6.20compiler-team.23770)) + - "`--msrv=version` option so the compiler can take MSRV into account when linting" [compiler-team#772](https://github.com/rust-lang/compiler-team/issues/772) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.60-C.20msrv.3Dversion.60.20option.20so.20the.20compiler.20.E2.80.A6.20compiler-team.23772)) + - "Enable `deny(unreachable_pub)` on `rustc_*` crates" [compiler-team#773](https://github.com/rust-lang/compiler-team/issues/773) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.28My.20major.20change.20proposal.29.20compiler-team.23773)) +- 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: 7 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: 6 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: 4 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: 3 months ago) +- Pending FCP requests (check your boxes!) + - merge: [sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2135121317) + - no pending checkboxes + - concerns: [stabilization-scope (by wesleywiser)](https://github.com/rust-lang/rust/pull/123617#issuecomment-2192330122) +- Things in FCP (make sure you're good with it) + - "Stabilize `raw_ref_op` (RFC 2582)" [rust#127679](https://github.com/rust-lang/rust/pull/127679) +- Accepted MCPs + - No new accepted proposals this time. +- MCPs blocked on unresolved concerns + - 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: [Add `--print host-triple` to print host target triple (rust#125579)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133192548) + - @_**|232957** + - concerns: [triple vs tuple (by lcnr)](https://github.com/rust-lang/rust/pull/125579#issuecomment-2133938172) +- Finalized FCPs (disposition merge) + - "Disallow setting some built-in cfg via the command-line" [rust#126158](https://github.com/rust-lang/rust/pull/126158) +- Other teams finalized FCPs + - "Enforce supertrait outlives obligations hold when confirming impl" [rust#124336](https://github.com/rust-lang/rust/pull/124336) + - "turn `invalid_type_param_default` into a `FutureReleaseErrorReportInDeps`" [rust#127655](https://github.com/rust-lang/rust/pull/127655) + - "Stabilize unsafe extern blocks (RFC 3484)" [rust#127921](https://github.com/rust-lang/rust/pull/127921) + - "Unify run button display with "copy code" button and with mdbook buttons" [rust#128394](https://github.com/rust-lang/rust/pull/128394) + +### 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:"Do not apply `#[do_not_recommend]` if the feature flag is not set" [rust#128674](https://github.com/rust-lang/rust/pull/128674) + - Authored by weiznich + - Adds additional checks for the feature flag (as apparently it is possible to use this on a beta compiler without feature flags). + - Fixes an issue reported on Bevy ([link](https://github.com/bevyengine/bevy/issues/14591#issuecomment-2266213084)) + - Michael suggests backporting either this or #128912 ([comment](https://github.com/rust-lang/rust/pull/128674#issuecomment-2285081667)) + +- :beta:"Store `do_not_recommend`-ness in impl header" [rust#128912](https://github.com/rust-lang/rust/pull/128912) + - Authored by compiler-errors + - Alternate approach to #128674: + > This only affects the error path, but it's still strange and probably not something we want users to rely on implicitly. + > It's less flexible, but also less invasive. Hopefully it's also performant. + +- :beta:"Revert #125915 on beta" [rust#128760](https://github.com/rust-lang/rust/pull/128760) + - Authored by BoxyUwU + - Fixes #128016 (P-critical), reverts #125915: + > This reverts commit #125915 on beta preventing #128016 from reaching stable. This breaks the `argon2rs` crate which causes a fair amount of downstream breakage of random projects. I don't think its necessarily a huge deal but this was an incredibly clean revert and it does prevent breakage of code that used to work so I think this is worth it. + +- :beta:"derive(SmartPointer): register helper attributes" [rust#128925](https://github.com/rust-lang/rust/pull/128925) + - Authored by dingxiangfei2009 + - Fixes #128888, P-high beta regression found by a crater run + +- :beta:"Fix bug in `Parser::look_ahead`." [rust#128994](https://github.com/rust-lang/rust/pull/128994) + - Authored by nnethercote + - Fixes #128895, P-high beta regression found by a crater run + +- 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) +- "[crater] Make `missing_fragment_specifier` an unconditional error" [rust#128425](https://github.com/rust-lang/rust/pull/128425) + - See issue nominated for discussion +- [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) + - [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) + - [39 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, 3 P-high, 3 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) +- [0 P-critical, 1 P-high, 5 P-medium, 2 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) +- [0 P-critical, 36 P-high, 100 P-medium, 16 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) +- "ICE: `adding a def'n for node-id NodeId(18) and def kind AnonConst but a previous def'n exists`" [rust#128016](https://github.com/rust-lang/rust/issues/128016) + - Reverted in beta by #128760 + - Will be fixed by #128844 +- "regression: adding a def'n for node-id NodeId(597) and def kind AnonConst but a previous def'n exists" [rust#128901](https://github.com/rust-lang/rust/issues/128901) + - Can't find a discussion but since it's a duplicate of #128016, assumed it will be fixed by #128760 + +[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: overflow evaluating the requirement" [rust#128887](https://github.com/rust-lang/rust/issues/128887) + - Breaking change introduced in #126128, which could be accepted ([comment](https://github.com/rust-lang/rust/issues/128887#issuecomment-2283315016)) +- "regression: expected one of `!`, `(`, `+`, `::`, `<`, `>`, or `as`, found `:`" [rust#128895](https://github.com/rust-lang/rust/issues/128895) + - fixed by #128994 (nominated for beta backport) + +[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+) +- "Generated WebAssembly unexpectedly requires reference types" [rust#128475](https://github.com/rust-lang/rust/issues/128475) + - (discussed last week) + - Alex Chrichton authored #128511 + +## Performance logs + +> [triage logs for 2024-08-13](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-08-13.md) + +A big week for compiler performance brought on mostly by statically linking the std library into `rustc_driver` instead of dynamic linking. This overshadows all other improvements and regressions that were seen this week. + +Triage done by **@rylev**. +Revision range: [8c7e0e16..9cb1998e](https://perf.rust-lang.org/?start=8c7e0e160831866bc1a40691a39455aac21271c0&end=9cb1998ea15e179482504e07cad8fa121e169a32&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -1.3% | [-2.9%, -0.2%] | 217 | +| Improvements (secondary) | -1.4% | [-4.9%, -0.2%] | 196 | +| All (primary) | -1.3% | [-2.9%, -0.2%] | 217 | + + +2 Regressions, 2 Improvements, 2 Mixed; 1 of them in rollups +35 artifact comparisons made in total + +#### Regressions + +Rollup of 7 pull requests [#128768](https://github.com/rust-lang/rust/pull/128768) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2f3dc46465c04d10cb74d34b1bd80c3ebfdc05bf&end=6a2cd0d50c9b7e1243d948641758c76d1f22e25e&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.4% | [0.4%, 0.4%] | 1 | +| Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 11 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.4% | [0.4%, 0.4%] | 1 | +- All docs regressions caused by [#128417](https://github.com/rust-lang/rust/pull/128417) which is simply just documenting more. + + +Stabilize `min_exhaustive_patterns` [#122792](https://github.com/rust-lang/rust/pull/122792) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=48090b11b52bd841fa89082cdaa4c139f11995f7&end=8291d68d926cedcdc77973e4c68f0828156d5bd8&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.8% | [0.3%, 1.5%] | 13 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.8% | [0.3%, 1.5%] | 13 | +- Seems this has a negative impact on the performance of coherence checking which I imagine is expected. +- Confirming with the author/reviewer. + + +#### Improvements + +Cache supertrait outlives of impl header for soundness check [#128746](https://github.com/rust-lang/rust/pull/128746) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7347f8e4e007fbb3712364bc174476f5f55a6da4&end=48090b11b52bd841fa89082cdaa4c139f11995f7&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 | +| Regressions (secondary) | 0.0% | [0.0%, 0.0%] | 1 | +| Improvements (primary) | -0.5% | [-1.3%, -0.2%] | 69 | +| Improvements (secondary) | -1.8% | [-3.8%, -0.2%] | 30 | +| All (primary) | -0.5% | [-1.3%, 0.2%] | 70 | + + +Link `std` statically in `rustc_driver` [#122362](https://github.com/rust-lang/rust/pull/122362) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5e5ec8af1b34a71fbf0063586a70bae7460a892a&end=9cb1998ea15e179482504e07cad8fa121e169a32&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | - | - | 0 | +| Improvements (primary) | -1.0% | [-2.0%, -0.2%] | 229 | +| Improvements (secondary) | -1.0% | [-2.0%, -0.2%] | 222 | +| All (primary) | -1.0% | [-2.0%, -0.2%] | 229 | + + +#### Mixed + +Only walk ribs to collect possibly shadowed params if we are adding params in our new rib [#128550](https://github.com/rust-lang/rust/pull/128550) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=86e7875c13f048ed03d413aa83215df94f0467e8&end=0d65e5a1806db2662ba6a34d89c3b4bc506fb59a&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 2.2% | [2.2%, 2.2%] | 1 | +| Improvements (primary) | -0.6% | [-2.0%, -0.2%] | 31 | +| Improvements (secondary) | -0.3% | [-0.3%, -0.2%] | 6 | +| All (primary) | -0.6% | [-2.0%, -0.2%] | 31 | +- Regression seems to be noise. + + +Apply "polymorphization at home" to RawVec [#126793](https://github.com/rust-lang/rust/pull/126793) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9cb1998ea15e179482504e07cad8fa121e169a32&end=ba33d7b0ae7e8081a59ca8f768202290c6903405&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.5% | [0.2%, 1.6%] | 98 | +| Regressions (secondary) | 0.4% | [0.1%, 1.2%] | 125 | +| Improvements (primary) | -1.0% | [-3.5%, -0.2%] | 51 | +| Improvements (secondary) | -1.3% | [-2.9%, -0.3%] | 13 | +| All (primary) | -0.0% | [-3.5%, 1.6%] | 149 | +- "there's a bunch of instruction regressions -- improvements too, but fewer of those -- but looking at cycles, wall time, bootstrap, and binary size it looks consistently great. And the overall approach is good, so there should be space to get smaller improvements with tweaks to things like mir inlining" + +## Nominated Issues + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- "ill-typed unused FFI declarations can cause UB" [rust#46188](https://github.com/rust-lang/rust/issues/46188) + - Discussed last week but didn't finish ([comment](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202024-08-08/near/457394621)) + - Discussion can resume from [here](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202024-08-08/near/457396215) about landing #128247 as a mitigation + - Should be a T-lang discussion? +- "[crater] Make `missing_fragment_specifier` an unconditional error" [rust#128425](https://github.com/rust-lang/rust/pull/128425) + - Nominated by @**Trevor Gross** ([comment](https://github.com/rust-lang/rust/pull/128425#issuecomment-2287923502)) + - Asks to evaluate the fallout of making this an error ([comment](https://github.com/rust-lang/rust/pull/128425#issuecomment-2287923502)) +- "type_id is not sufficiently collision-resistant" [rust#129014](https://github.com/rust-lang/rust/issues/129014) + - authored and nominated by @**RalfJ** + - See opening comment +- "Tracking Issue for the C-cmse-nonsecure-call ABI" [rust#81391](https://github.com/rust-lang/rust/issues/81391) + - nominated by @**Jieyou Xu** ([comment](https://github.com/rust-lang/rust/issues/81391#issuecomment-2267314513)): + - also nominated for T-lang + - Does this need an MCP/FCP for stabilization, or does this need further design? + - Does this need a joint T-compiler/T-lang FCP? + - We should help the people working on cmse-related things to find knowledgeable reviewers / domain experts who can help reviewing the changes, or otherwise provide advice on how to split related PRs for easier reviewing. + - Are cmse-related efforts being tracked anywhere? +- "[DRAFT] #[contracts::requires(...)]" [rust#128045](https://github.com/rust-lang/rust/pull/128045) + - nominated by @**Jieyou Xu** ([comment](https://github.com/rust-lang/rust/pull/128045#issuecomment-2267121847)): looking for a reviewer familiar with attribute handling / HIR/MIR changes + - Felix left a [comment](https://github.com/rust-lang/rust/pull/128045#issuecomment-2269302031): this is no longer "ready for review" -- the review feedback has made it clear that this should not land as-is + - The current challenge seems to be that existing attribute handling only supports a "single path segment", i.e. `#[contracts()]` but not `#[contracts::requires()]`. We also can't trivially reuse existing `register_attr!` or visitor because they impose strict limits on the `` and require it to be very primitive (like literals or identifiers or simple lists) but does not support arbitrary expressions like `x > 0`. To support the arbitrary inner expression (in that it may not necessarily be a valid rust expression), it may require relaxing that restriction, but it may raise further parsing/grammar questions. It's not clear what's the best path forward here. + +[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 + +Skipping this week + +## Next week's WG checkins + +None + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/YJn8yQCVTfqDpW_nVTUfow) diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-22.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-22.md new file mode 100644 index 00000000..5c639470 --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-22.md @@ -0,0 +1,247 @@ +--- +tags: weekly, rustc +type: docs +note_id: YJn8yQCVTfqDpW_nVTUfow +--- + +# T-compiler Meeting Agenda 2024-08-22 + +## 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 +- wg-rust-analyzer steering meeting on Zulip (https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Steering.20meeting) +- wg-macros triage meeting Zulip (https://rust-lang.zulipchat.com/#narrow/stream/410876-wg-macros.2Ftriage) + +## 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: 6 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: 4 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: 3 months ago) + - "Don't track `--emit=` options as part of crate SVH" [compiler-team#769](https://github.com/rust-lang/compiler-team/issues/769) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Don.27t.20track.20.60--emit.3D.60.20options.20as.20part.20of.20.E2.80.A6.20compiler-team.23769)) (last review activity: about 6 days ago) + - "Opt-in flag for absolute paths in diagnostics" [compiler-team#770](https://github.com/rust-lang/compiler-team/issues/770) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Opt-in.20flag.20for.20absolute.20paths.20in.20diagnos.E2.80.A6.20compiler-team.23770)) (last review activity: about 6 days ago) + - "`--msrv=version` option so the compiler can take MSRV into account when linting" [compiler-team#772](https://github.com/rust-lang/compiler-team/issues/772) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.60-C.20msrv.3Dversion.60.20option.20so.20the.20compiler.20.E2.80.A6.20compiler-team.23772)) (last review activity: about 6 days ago) +- Pending FCP requests (check your boxes!) + - "sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets" [rust#123617](https://github.com/rust-lang/rust/pull/123617) + - "Add `--print host-triple` to print host target triple" [rust#125579](https://github.com/rust-lang/rust/pull/125579) + - "Don't warn empty branches unreachable before edition 2024" [rust#129103](https://github.com/rust-lang/rust/pull/129103) +- Things in FCP (make sure you're good with it) + - "Enable `deny(unreachable_pub)` on `rustc_*` crates" [compiler-team#773](https://github.com/rust-lang/compiler-team/issues/773) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.28My.20major.20change.20proposal.29.20compiler-team.23773)) +- Accepted MCPs + - No new accepted proposals this time. +- MCPs blocked on unresolved concerns + - "Add hygiene attributes to compile expanded source code" [compiler-team#692](https://github.com/rust-lang/compiler-team/issues/692) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20option.20to.20compile.20expanded.20ASTs.20for.20h.E2.80.A6.20compiler-team.23692)) (last review activity: 7 months ago) + - concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318) + - "Add a new `--build-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20a.20new.20.60--build-id.60.20flag.20to.20rustc.20compiler-team.23635)) + - concern: [option-name](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1785349936) + - concern: [other-existing-options](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1779597156) + - "Retire the mailing list and make all decisions on zulip" [compiler-team#649](https://github.com/rust-lang/compiler-team/issues/649) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Retire.20the.20mailing.20list.20and.20make.20all.20deci.E2.80.A6.20compiler-team.23649)) + - concern: [automatic-sync](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1618902660) +- Finalized FCPs (disposition merge) + - No new finished FCP (disposition merge) this time. +- Other teams finalized FCPs + - "Stabilize opaque type precise capturing (RFC 3617)" [rust#127672](https://github.com/rust-lang/rust/pull/127672) + - "Stabilize `unsafe_attributes`" [rust#128771](https://github.com/rust-lang/rust/pull/128771) + +### 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) +- No beta nominations for `T-compiler` this time. +- 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 + +- [2 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) + - [39 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, 2 P-high, 3 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) +- [0 P-critical, 1 P-high, 7 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, 16 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) +- "ICE: `adding a def'n for node-id NodeId(18) and def kind AnonConst but a previous def'n exists`" [rust#128016](https://github.com/rust-lang/rust/issues/128016) + - Reverted in beta by #128760 + - First attempt to fix was in #128844 (now closed), new plan is described in issue #129023 (cc @**Noah Lev (camelid)**) + - PR with a feature gate option by @_**Boxy** in #129246, @_**Vadim Petrochenkov** prefers reverting ([comment](https://github.com/rust-lang/rust/pull/129246#issuecomment-2299050629)) #125915 + - Discussion in progress +- "regression: adding a def'n for node-id NodeId(597) and def kind AnonConst but a previous def'n exists" [rust#128901](https://github.com/rust-lang/rust/issues/128901) + - Basically same reasoning as above + +[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: overflow evaluating the requirement" [rust#128887](https://github.com/rust-lang/rust/issues/128887) + - Discussed [last week](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202024-08-15/near/462565514), seems fine to accept that breakage + +[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+) +- "Generated WebAssembly unexpectedly requires reference types" [rust#128475](https://github.com/rust-lang/rust/issues/128475) + - "this change is expected". Documentation PR in progress in #128511 (I-compiler-nominated; see below for the nomination) + +## Performance logs + +> [triage logs for 2024-08-19](https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-08-19.md) + +A fairly noisy week (though most of that has been dropped from this report). +Overall we saw several improvements, and ended the week on a net positive. +Memory usage is down around 1.5-3% over the course of the week, primarily due +to [RawVec polymorphization](https://github.com/rust-lang/rust/pull/126793) and +[CloneToUninit impl expansion](https://github.com/rust-lang/rust/pull/126877). + +Triage done by **@simulacrum**. +Revision range: [9cb1998e..4fe1e2bd](https://perf.rust-lang.org/?start=9cb1998ea15e179482504e07cad8fa121e169a32&end=4fe1e2bd5bf5a6f1cb245f161a5e9d315766f103&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.4% | [0.2%, 1.7%] | 124 | +| Regressions (secondary) | 0.5% | [0.1%, 1.4%] | 103 | +| Improvements (primary) | -1.3% | [-4.3%, -0.2%] | 50 | +| Improvements (secondary) | -1.4% | [-3.3%, -0.2%] | 15 | +| All (primary) | -0.1% | [-4.3%, 1.7%] | 174 | + +1 Regressions, 1 Improvements, 3 Mixed; 1 of them in rollups +53 artifact comparisons made in total + +#### Regressions + +Fix problems with assoc expr token collection [#128725](https://github.com/rust-lang/rust/pull/128725) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4b7d074d766d00a32fa8b2e4fa3813dd7d4d64e6&end=be0ea0c99a00bc365d9f80f1c90f747967a2e152&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:----:|:------------:|:-----:| +| Regressions (primary) | 0.3% | [0.2%, 0.3%] | 5 | +| Regressions (secondary) | 0.3% | [0.2%, 0.5%] | 5 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | - | - | 0 | +| All (primary) | 0.3% | [0.2%, 0.3%] | 5 | + +Appears to be a real change in behavior (pre-merge showed fewer regressions) +but this is a correctness fix, so accepting them. + +#### Improvements + +Rework MIR inlining debuginfo so function parameters show up in debuggers. [#128861](https://github.com/rust-lang/rust/pull/128861) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=026e9ed3f0c5b3ee6233fd23b5e497cb94cf6434&end=3139ff09e9d07f7700f8d15ed25a231e29c43627&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 2.3% | [2.3%, 2.3%] | 1 | +| Improvements (primary) | -1.2% | [-1.4%, -1.1%] | 6 | +| Improvements (secondary) | -1.2% | [-1.3%, -1.2%] | 2 | +| All (primary) | -1.2% | [-1.4%, -1.1%] | 6 | + +An improvement on many current benchmarks; the one regression is a spurious change. + +#### Mixed + +Apply "polymorphization at home" to RawVec [#126793](https://github.com/rust-lang/rust/pull/126793) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=41dd149fd6a6a06795fc6b9f54cb49af2f61775f&end=13f8a57cfb57d527abe797230beabb64758bb888&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.5% | [0.2%, 1.5%] | 89 | +| Regressions (secondary) | 0.4% | [0.1%, 1.3%] | 96 | +| Improvements (primary) | -1.1% | [-3.8%, -0.2%] | 54 | +| Improvements (secondary) | -1.2% | [-2.9%, -0.3%] | 13 | +| All (primary) | -0.1% | [-3.8%, 1.5%] | 143 | + +An improvement on many current benchmarks, though some regressions. Overall a +net positive. Also reduced memory usage by about 1% for many of our benchmarks, +which is a great win! + +Support reading thin archives in ArArchiveBuilder [#128936](https://github.com/rust-lang/rust/pull/128936) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3139ff09e9d07f7700f8d15ed25a231e29c43627&end=d2b5aa6552c8acf67f38a2ad92062a32ec542f08&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 14 | +| Regressions (secondary) | 0.4% | [0.4%, 0.4%] | 1 | +| Improvements (primary) | - | - | 0 | +| Improvements (secondary) | -2.3% | [-2.3%, -2.3%] | 1 | +| All (primary) | 0.3% | [0.2%, 0.4%] | 14 | + +Regressions looks genuine, though relatively rare in our benchmark suite. It +might be worth doing some profiling of the Rust archive writer to see if +there's opportunities for optimization since it presumably hasn't received much +attention so far. + +Rollup of 6 pull requests [#129202](https://github.com/rust-lang/rust/pull/129202) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9b318d2e93ce35e7ba32d8cfa96a1dbe63a7bed1&end=0f26ee4fd95a1c046582dfb18892f520788e2c2c&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:------------------------:|:-----:|:--------------:|:-----:| +| Regressions (primary) | - | - | 0 | +| Regressions (secondary) | 0.6% | [0.1%, 2.2%] | 5 | +| Improvements (primary) | -0.9% | [-1.7%, -0.3%] | 4 | +| Improvements (secondary) | -1.4% | [-2.2%, -0.6%] | 2 | +| All (primary) | -0.9% | [-1.7%, -0.3%] | 4 | + +Regression on match-stress looks genuine but likely doesn't merit deeper +investigation given that this is in a rollup (and I don't see obvious +match-stress-implicating PRs in the list). + +## Nominated Issues + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- "[DRAFT] #[contracts::requires(...)]" [rust#128045](https://github.com/rust-lang/rust/pull/128045) + - nominated by @**Jieyou Xu** ([comment](https://github.com/rust-lang/rust/pull/128045#issuecomment-2267121847)): + - Currently our attribute infra don't support `#[namespaced::attr()]`, without falling back to raw token handling. @apiraino & jieyouxu: this should be a design meeting. + - Looking for suitable reviewers for the attribute handling -> HIR/MIR lowering parts. jieyouxu can help look at attribute handling, but would like another reviewer to look at the HIR/MIR parts (since oli is now on leave). +- "Document WebAssembly target feature expectations" [rust#128511](https://github.com/rust-lang/rust/pull/128511) + - nominated by @**Jieyou Xu** + - Context: [LLVM 19 update](https://github.com/rust-lang/rust/pull/127513) caused wasm proposals (think target features but in wasm) to become enabled-by-default (`reference-types` and `multivalue`) -> noticed by user in https://github.com/rust-lang/rust/issues/128475. + - Expected that more wasm proposals will become enabled-by-default over time. + - PR amends target docs for Tier 2 targets `wasm32-unknown-unknown`, `wasm32-wasip1-threads`, `wasm32-wasip1`, `wasm32-wasip2` + - Amends baseline enabled-by-default wasm proposals + - Documents how to produce Minimal Viable Product (MVP) wasm without these wasm proposals. + - Does it need an FCP signoff? + - What's a path forward with respect to more wasm proposals (see [comment](https://github.com/rust-lang/rust/pull/128511#issuecomment-2298009886)) becoming enabled-by-default in future LLVM updates, causing the wasm32 target baseline expectations to be follow? +- "type_id is not sufficiently collision-resistant" [rust#129014](https://github.com/rust-lang/rust/issues/129014) + - Meeting proposal opened in [compiler-team#774](https://github.com/rust-lang/compiler-team/issues/774) +- "Emit specific message for time<=0.3.35" [rust#129343](https://github.com/rust-lang/rust/pull/129343) + - nominated by @**Jieyou Xu** + - Context: `time` inference regression + - PR would add targeted detection logic for `time` involving the regressed method and emit a note to recommend updating `time` + - Current impl does not try to probe for time version (otherwise we'd have to probe Cargo.toml etc.) + - Do we want to merge this crate-specific diagnostic note? + - Alternative: full revert of #99969 by @**Esteban Küber** in #129379 but ... it's complicated (see [comment](https://github.com/rust-lang/rust/pull/129379#issuecomment-2304349704)) +- "Revert "alloc: implement FromIterator for Box"" [rust#129379](https://github.com/rust-lang/rust/pull/129379) + - See point above. tbh @_**apiraino** agrees with @_**Josh Stone (cuviper)** in [comment](https://github.com/rust-lang/rust/pull/129379#issuecomment-2303431546) that this is a t-libs-api decision + +[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 + +Skipping this week + +## Next week's WG checkins + +None + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/exhhhyzVQj2DC6qLuLFG4g) diff --git a/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-29.md b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-29.md new file mode 100644 index 00000000..5bd9755a --- /dev/null +++ b/content/minutes/triage-meeting/T-compiler Meeting Agenda 2024-08-29.md @@ -0,0 +1,156 @@ +--- +tags: weekly, rustc +type: docs +note_id: exhhhyzVQj2DC6qLuLFG4g +--- + +# T-compiler Meeting Agenda 2024-08-29 + +## Announcements + +- Next week stable Rust 1.81 is out +- 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 + +- None + +## 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: 6 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: 4 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: 3 months ago) + - "Don't track `--emit=` options as part of crate SVH" [compiler-team#769](https://github.com/rust-lang/compiler-team/issues/769) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Don.27t.20track.20.60--emit.3D.60.20options.20as.20part.20of.20.E2.80.A6.20compiler-team.23769)) (last review activity: about 13 days ago) + - "Opt-in flag for absolute paths in diagnostics" [compiler-team#770](https://github.com/rust-lang/compiler-team/issues/770) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Opt-in.20flag.20for.20absolute.20paths.20in.20diagnos.E2.80.A6.20compiler-team.23770)) (last review activity: about 13 days ago) +- Pending FCP requests (check your boxes!) + - "sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets" [rust#123617](https://github.com/rust-lang/rust/pull/123617) + - "Add `--print host-triple` to print host target triple" [rust#125579](https://github.com/rust-lang/rust/pull/125579) +- Things in FCP (make sure you're good with it) + - "`--hint-msrv=version` option so the compiler can take MSRV into account when linting" [compiler-team#772](https://github.com/rust-lang/compiler-team/issues/772) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.60-C.20msrv.3Dversion.60.20option.20so.20the.20compiler.20.E2.80.A6.20compiler-team.23772)) + - "Don't warn empty branches unreachable for now" [rust#129103](https://github.com/rust-lang/rust/pull/129103) +- Accepted MCPs + - "Enable `deny(unreachable_pub)` on `rustc_*` crates" [compiler-team#773](https://github.com/rust-lang/compiler-team/issues/773) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/.28My.20major.20change.20proposal.29.20compiler-team.23773)) +- MCPs blocked on unresolved concerns + - "Add hygiene attributes to compile expanded source code" [compiler-team#692](https://github.com/rust-lang/compiler-team/issues/692) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20option.20to.20compile.20expanded.20ASTs.20for.20h.E2.80.A6.20compiler-team.23692)) (last review activity: 7 months ago) + - concern: [added-complexity-to-frontend](https://github.com/rust-lang/compiler-team/issues/692#issuecomment-1845169318) + - "Add a new `--build-id` flag to rustc" [compiler-team#635](https://github.com/rust-lang/compiler-team/issues/635) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Add.20a.20new.20.60--build-id.60.20flag.20to.20rustc.20compiler-team.23635)) + - concern: [option-name](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1785349936) + - concern: [other-existing-options](https://github.com/rust-lang/compiler-team/issues/635#issuecomment-1779597156) + - "Retire the mailing list and make all decisions on zulip" [compiler-team#649](https://github.com/rust-lang/compiler-team/issues/649) ([Zulip](https://rust-lang.zulipchat.com/#narrow/stream/233931-xxx/topic/Retire.20the.20mailing.20list.20and.20make.20all.20deci.E2.80.A6.20compiler-team.23649)) + - concern: [automatic-sync](https://github.com/rust-lang/compiler-team/issues/649#issuecomment-1618902660) +- Finalized FCPs (disposition merge) + - No new finished FCP (disposition merge) this time. +- Other teams finalized FCPs + - "stabilize const_fn_floating_point_arithmetic" [rust#128596](https://github.com/rust-lang/rust/pull/128596) + - "Lint at `deny-by-default` against references to `static mut`" [rust#128794](https://github.com/rust-lang/rust/issues/128794) + - "Non-exhaustive structs may be empty" [rust#128934](https://github.com/rust-lang/rust/pull/128934) + +### 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:"Emit specific message for time<=0.3.35" [rust#129343](https://github.com/rust-lang/rust/pull/129343) + - Authored by estebank + - Discussed extensively last week, it's a ad-hoc diag message to hint at the recent libs breakage when using (or pulling) the `time` crate + - Note: this patch injects a [ticking timebomb](https://github.com/rust-lang/rust/pull/129343/files#diff-bdfd572a68289bb48bc930d5e66952517d3b87b9cfe3a498b3a326de00edd9fdR635-R640) that will trigger a compile error on 1.89 when we - hopefully - assume the ecosystem has upgraded the dependency on that crate + +- :beta:"Use a reduced recursion limit in the MIR inliner's cycle breaker" [rust#129714](https://github.com/rust-lang/rust/pull/129714) + - Authored by saethlin + - fixes a p-high regression from a recent crater run (though a bit flaky to reproduce) + - as @**Ben Kimock (Saethlin)** [points out](https://github.com/rust-lang/rust/pull/129714#issue-2493149084), "this probably papers over #128887, but primarily I'm opening this PR because multiple compiler people have thought about making this change which probably means it's a good idea." + +- 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 + +- [1 t-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical) + - [0 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee) +- [66 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) + - [38 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee) +- [1 P-critical, 1 P-high, 3 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) +- [0 P-critical, 0 P-high, 6 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, 16 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: adding a def'n for node-id NodeId(597) and def kind AnonConst but a previous def'n exists" [rust#128901](https://github.com/rust-lang/rust/issues/128901) + - Solved by #128760 (included in #129033, merged straight in beta) + +[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: overflow evaluating the requirement" [rust#128887](https://github.com/rust-lang/rust/issues/128887) + - solved by #129714 (beta backport above) + +[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 + +Will be posted later today + +## Nominated Issues + +[T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- "Remove `HasLocalDecls`." [rust#129681](https://github.com/rust-lang/rust/pull/129681) + - T-compiler is called to judge if this a useful change (a counter-argument is expressed f.e. by @**Michael (compiler-errors) Goulet** in [comment](https://github.com/rust-lang/rust/pull/129681#pullrequestreview-2266247994)) +- "Tracking issue for release notes of #128034: exhaustiveness: Explain why a given pattern is considered unreachable" [rust#129574](https://github.com/rust-lang/rust/issues/129574) +- "Tracking issue for release notes of #125834: treat `&raw (const|mut) UNSAFE_STATIC` implied deref as safe" [rust#129578](https://github.com/rust-lang/rust/issues/129578) + - These new tracking issues are automatically created by a new internal tool geared at improving the release notes workflow. + - I am unsure though if the `I-compiler-nominated` is really useful here at this time (see @_**apiraino** comments [here](https://rust-lang.zulipchat.com/#narrow/stream/241545-t-release/topic/release.20note.20changes/near/465964613)). + - How this could work: PR author adds some verbiage for the release notes + blog post. Around release date `T-*` can review if the release notes of changes relevant to them are complete and clear. + - Opinions? + + +[RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-compiler-nominated) +- No I-compiler-nominated RFCs this time. + +### Oldest PRs waiting for review + +[T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc+label%3AS-waiting-on-review+draft%3Afalse+label%3AT-compiler) +- "Consistently use the highest bit of vector masks when converting to i1 vectors" [rust#104693](https://github.com/rust-lang/rust/pull/104693) + - cc: @**Wesley Wiser** (though not 100% sure) +- "add error message for c# style named arguments" [rust#118733](https://github.com/rust-lang/rust/pull/118733) (last review activity: 8 months ago) + - 29-08-2024 cc: @**Esteban Küber** +- "Apply dllimport in ThinLTO for -Z dylib-lto" [rust#122790](https://github.com/rust-lang/rust/pull/122790) + - cc @**Wesley Wiser** +- "Issue 83060 fix" [rust#119798](https://github.com/rust-lang/rust/pull/119798) (last review activity: 4 months ago) + - cc @**Wesley Wiser** + +## Next week's WG checkins + +None + +Next meetings' agenda draft: [hackmd link](https://hackmd.io/68SAwhUVRmC5oPTrsheiBg)