T-compiler Meeting Agenda 2024-07-18
Announcements
- Next week release of next stable Rust 1.80
- Is there interest/capacity to pick a topic from this list and schedule a meeting?
- by the way, 40 P-high unassigned isues
- 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 time:2024-07-18T22:00:00+01:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- No new proposals this time.
- Old MCPs (not seconded, take a look)
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 6 months ago)
- concern: added-complexity-to-frontend
- “Target families for executable format” compiler-team#716 (Zulip) (last review activity: 5 months ago)
- “Partial compilation using MIR-only rlibs” compiler-team#738 (Zulip) (last review activity: 3 months ago)
- “Add Hotpatch flag” compiler-team#745 (Zulip) (last review activity: 2 months ago)
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: 6 months ago)
- Pending FCP requests (check your boxes!)
- merge: sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)
- no pending checkboxes
- concerns: stabilization-scope (by wesleywiser)
- Note: @Wesley Wiser you approved the MCP, is your recorded concern still standing?
- merge: Disallow setting some built-in cfg via set the command-line (rust#126158)
- @|116083 @|125250 @|119031 @|232957
- no pending concerns
- merge: Remove the
missing_copy_implementationslint. (rust#126293)- @|125250 @|426609 @|123856
- no pending concerns
- merge: sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets (rust#123617)
- Things in FCP (make sure you’re good with it)
- “Implement lint against ambiguous negative literals” rust#121364
- Accepted MCPs
- “Add
-Z embed-source(DWARFv5 source code embedding extension)” compiler-team#764 (Zulip) - “MCP: Alternate cargo freshness algorithm, unstable flag to annotate depinfo file with checksums and file sizes” compiler-team#765 (Zulip)
- “Add
- MCPs blocked on unresolved concerns
- merge: Add
--print host-tripleto print host target triple (rust#125579)- @|125250 @|232957
- concerns: triple vs tuple (by lcnr)
- with regard to the naming question (“tuple” or “triple”), there’s a Zulip topic
- merge: Add a new
--build-idflag to rustc (compiler-team#635)- @|125250 @|116107 @|125294 @|123856
- concerns: other-existing-options (by petrochenkov) option-name (by wesleywiser)
- “Retire the mailing list and make all decisions on zulip” compiler-team#649 (Zulip)
- concern: automatic-sync
- merge: Stabilize
--env-setoption (rust#119926)- @|119009 @|124288 @|123586 @|125250 @|119031 @|124287 @_|116118
- concerns: other-rustc-vars (by petrochenkov)
- merge: Add
- Finalized FCPs (disposition merge)
- No new finished FCP (disposition merge) this time.
- Other teams finalized FCPs
- “Fix ambiguous cases of multiple & in elided self lifetimes” rust#117967
- “offset_from: always allow pointers to point to the same address” rust#124921
WG checkins
None
Backport nominations
T-compiler beta / T-compiler stable
- No beta nominations for
T-compilerthis time. - No stable nominations for
T-compilerthis time.
- No beta nominations for
T-typesthis time. - No stable nominations for
T-typesthis time.
PRs S-waiting-on-team
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 68 T-compiler P-high issues
- 0 P-critical, 2 P-high, 2 P-medium, 2 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 6 P-medium, 2 P-low regression-from-stable-to-nightly
- 0 P-critical, 35 P-high, 100 P-medium, 17 P-low regression-from-stable-to-stable
P-critical
- No
P-criticalissues forT-compilerthis time.
- No
P-criticalissues forT-typesthis time.
P-high regressions
- No new beta regressions (#127339 fixed by #127568 now beta-backport accepted and #127342 fixed downstream)
Unassigned P-high nightly regressions
- No unassigned
P-highnightly regressions this time.
Performance logs
Fairly quite week with the only pure regressions being small and coming from correctness fixes. The biggest single change came from turning off the -Zenforce-type-length-limit check which had positive impacts across many different benchmarks since the compiler is doing strictly less work.
Triage done by @rylev. Revision range: a2d58197..5572759b
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.2%, 0.7%] | 12 |
| Regressions (secondary) | 0.4% | [0.2%, 0.9%] | 45 |
| Improvements (primary) | -0.7% | [-1.5%, -0.2%] | 37 |
| Improvements (secondary) | -3.3% | [-13.5%, -0.4%] | 21 |
| All (primary) | -0.4% | [-1.5%, 0.7%] | 49 |
2 Regressions, 3 Improvements, 2 Mixed; 1 of them in rollups 56 artifact comparisons made in total
Regressions
Fix regression in the MIR lowering of or-patterns #127028 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.7% | [0.3%, 1.2%] | 3 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.7% | [0.3%, 1.2%] | 3 |
- Given this is a correctness fix, and the regressions seem in line with previous historical performance (i.e., it regressed back to a previous baseline), I think it’s safe to call this triaged
Avoid follow-up errors and ICEs after missing lifetime errors on data structures #127311 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.2%, 0.4%] | 8 |
| Regressions (secondary) | 0.3% | [0.2%, 0.4%] | 16 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.3% | [0.2%, 0.4%] | 8 |
- Instruction counts go up, cycles do not (deeply nested multi is probably just noise in mono collection). In any case, this is a correctness fix so it seems like a small perf hit would be acceptable in any case.
Improvements
Fix Parser::look_ahead #127636 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.3% | [-0.3%, -0.2%] | 3 |
| Improvements (secondary) | -2.4% | [-2.4%, -2.4%] | 1 |
| All (primary) | -0.3% | [-0.3%, -0.2%] | 3 |
Gate the type length limit check behind a nightly flag #127670 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.6% | [-1.4%, -0.2%] | 28 |
| Improvements (secondary) | -1.1% | [-1.5%, -0.4%] | 8 |
| All (primary) | -0.6% | [-1.4%, -0.2%] | 28 |
find_field does not need to be a query. #127718 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -7.5% | [-13.5%, -2.7%] | 9 |
| All (primary) | - | - | 0 |
Mixed
Rollup of 7 pull requests #127580 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | 2.6% | [2.6%, 2.6%] | 1 |
| Improvements (primary) | -0.6% | [-1.0%, -0.2%] | 9 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -0.6% | [-1.0%, -0.2%] | 9 |
- Noise
Only track mentioned places for jump threading #127087 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.4%, 0.6%] | 3 |
| Regressions (secondary) | 1.1% | [0.2%, 1.6%] | 7 |
| Improvements (primary) | -0.6% | [-1.3%, -0.2%] | 6 |
| Improvements (secondary) | -0.6% | [-2.0%, -0.3%] | 8 |
| All (primary) | -0.2% | [-1.3%, 0.6%] | 9 |
- The perf impact was expected given the pre-merge runs and is less severe than it was pre-merge.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “Remove unnecessary impl sorting in queries and metadata” rust#120812 (last review activity: 5 months ago)
- cc: @cjgillot
- “Stop using LLVM struct types for array/pointer offset GEPs” rust#122325 (last review activity: 4 months ago)
- cc: @Nikita Popov (author replied to your comment from last March)
Next week’s WG checkins
None
Next meetings’ agenda draft: hackmd link