T-compiler Meeting Agenda 2024-02-01
Announcements
- No T-compiler meeting according to the calendar file
- Feb 8th, Rust 1.76 stable release
- There’s Rustc Dev Guide reading club initiative in case you want to join, more info here
- Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let us know (or at least message @davidtwco or @Wesley Wiser so we can pass it along).
Other WG meetings (calendar link)
- Types Team: ITE (Impl Trait Everywhere) Triage time:2024-02-01T22:00:00+01:00
- Stable MIR Weekly Meeting time:2024-02-01T16:00:00+01:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Target families for executable format” compiler-team#716 (Zulip)
- “Promote tier 3 arm64e-apple-darwin target to tier 2” compiler-team#717 (Zulip)
- “Add
--emit=
to emit nothing” compiler-team#718 (Zulip)
- Old MCPs (stale MCP might be closed as per MCP procedure)
- None at this time
- Old MCPs (not seconded, take a look)
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 15 days ago)
- concern: added-complexity-to-frontend
- “Introduce perma-unstable
wasm-c-abi
flag” compiler-team#703 (Zulip) (last review activity: about 47 days ago) - “Support patchable-function-entry” compiler-team#704 (Zulip) (last review activity: about 47 days ago)
- “Add hygiene attributes to compile expanded source code” compiler-team#692 (Zulip) (last review activity: about 15 days ago)
- Pending FCP requests (check your boxes!)
- “Add a new
--build-id
flag to rustc” compiler-team#635 (Zulip)- concern: option-name
- concern: other-existing-options
- “Retire the mailing list and make all decisions on zulip” compiler-team#649 (Zulip)
- concern: automatic-sync
- concern: single-point-of-failure-via-stream-archival
- “Stabilize
--json=unused-externs(-silent)
” compiler-team#674 (Zulip) - “Support overriding
warnings
level for a specific lint via command line” rust#113307 - “Update Windows platform support” rust#115141
- “Stabilize Wasm target features that are in phase 4 and 5” rust#117457
- “Stabilize
--env-set
option” rust#119926
- “Add a new
- Things in FCP (make sure you’re good with it)
- “Add a stable flag to enable/disable codegen UB checks” compiler-team#625 (Zulip)
- “Stabilize
--json=unused-externs(-silent)
” compiler-team#674 (Zulip) - “Semantics of
-Cinstrument-coverage=all
” compiler-team#690 (Zulip) - “New Tier-3 target:
wasm32-wasi-preview2
” compiler-team#694 (Zulip) - “Provide option to shorten symbol names by replacing them with a digest” compiler-team#705 (Zulip)
- “uplift some -Zverbose calls and rename to -Zverbose-internals” compiler-team#706 (Zulip)
- “Add -Z direct-access-external-data” compiler-team#707 (Zulip)
- “Promote tier 3
*-pc-windows-gnullvm
targets to tier 2” compiler-team#710 (Zulip) - “Unstably support MIR-only rlibs” compiler-team#713 (Zulip)
- Accepted MCPs
- “Smooth the renaming transition of
wasm32-wasi
” compiler-team#695 (Zulip)
- “Smooth the renaming transition of
- Finalized FCPs (disposition merge)
- No new finished FCP (disposition merge) this time.
@T-compiler/meeting Reminder to not forget giving a glance at MCPs in the FCP phase (if there are any in your area of expertise/interest). Thanks! (@apiraino wonders if at some point we should establish a protocol to close FCPs with longstanding unresolved concerns)
WG checkins
-
@_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081
Most notable changes
- Document unsafety checking #1847
- Add guide for rustdoc search implementation #1846
- Add a chapter on editions. #1835
- Replace experts map with reviewers from triagebot #1831
- Explain the important concepts of exhaustiveness checking #1830
- Update how-to-build-and-run.md #1828
- Emphasize that the experts map is not up to date #1826
- Update documentation for coverage tests #1823
- add a new type system invariant #1822
- Add explanations on how to run rustc_codegen_gcc tests #1821
- notification groups: add information about how to ping them #1818
- Add some documentation for unsizing #1817
Most notable WIPs
-
Impl Trait initiative by @oli
Currently preparing an “impl trait in associated types” stabilization report along with a roadmap for type-alias-impl-trait. Targetting next month for providing the report to T-lang.
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Fold arithmetic identities in GVN” rustc#119670
- perf. fix from #111344
This PR implements a few arithmetic folds for unary and binary operations. This should take care of the missed optimizations introduced by #116012.
- perf. fix from #111344
- :beta: “Correct paths for hexagon-unknown-none-elf platform doc” rust#120533
- Not merged. Fixes paths in platform docs for a tier 3 target (
hexagon-unknown-none-elf
) - Maybe superseded by #117601? That could make it faster to the next beta build artifact (comment)
- nominated after request from an interested party for this target (comment)
“it was wrong when initially submitted”. Following the procedure from the baseline will result in confusing link errors. […] probably not critical to backport, but I’d prefer it if possible.
- Not merged. Fixes paths in platform docs for a tier 3 target (
- No stable nominations for
T-compiler
this time.
- No beta nominations for
T-types
this time. - No stable nominations for
T-types
this time.
PRs S-waiting-on-team
- Other issues in progress or waiting on other teams
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 60 T-compiler P-high issues
- 0 P-critical, 0 P-high, 2 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 2 P-medium, 2 P-low regression-from-stable-to-nightly
- 0 P-critical, 38 P-high, 100 P-medium, 16 P-low regression-from-stable-to-stable
P-critical
- No
P-critical
issues forT-compiler
this time.
- No
P-critical
issues forT-types
this time.
P-high regressions
- No
P-high
beta regressions this time.
Unassigned P-high nightly regressions
- No unassigned
P-high
nightly regressions this time.
Performance logs
This was a very quiet week with only one PR having any real impact on overall compiler performance. The removal of the internal StructuralEq
trait saw a roughly 0.4% improvement on average across nearly 50 real-world benchmarks.
Triage done by @rylev. Revision range: d6b151fc7..5c9c3c7
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.5% | [0.3%, 0.7%] | 5 |
Regressions (secondary) | 0.5% | [0.2%, 1.4%] | 10 |
Improvements (primary) | -0.5% | [-1.5%, -0.2%] | 48 |
Improvements (secondary) | -2.3% | [-7.7%, -0.4%] | 36 |
All (primary) | -0.4% | [-1.5%, 0.7%] | 53 |
0 Regressions, 4 Improvements, 4 Mixed; 3 of them in rollups 37 artifact comparisons made in total
Regressions
None? :big_smile:
Improvements
Only use dense bitsets in dataflow analyses #116152 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.4% | [-0.5%, -0.2%] | 5 |
Improvements (secondary) | -0.8% | [-1.1%, -0.4%] | 2 |
All (primary) | -0.4% | [-0.5%, -0.2%] | 5 |
const-eval interning: get rid of type-driven traversal #119044 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.9% | [-1.1%, -0.8%] | 3 |
Improvements (secondary) | -3.8% | [-8.0%, -0.6%] | 14 |
All (primary) | -0.9% | [-1.1%, -0.8%] | 3 |
Remove all ConstPropNonsense #119627 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.4% | [-0.6%, -0.2%] | 11 |
Improvements (secondary) | -0.5% | [-0.5%, -0.5%] | 3 |
All (primary) | -0.4% | [-0.6%, -0.2%] | 11 |
remove StructuralEq trait #116167 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.3% | [0.3%, 0.3%] | 1 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.4% | [-0.6%, -0.2%] | 48 |
Improvements (secondary) | -1.3% | [-3.0%, -0.3%] | 23 |
All (primary) | -0.4% | [-0.6%, 0.3%] | 49 |
Mixed
Rollup of 10 pull requests #120335 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.4% | [0.3%, 0.8%] | 9 |
Regressions (secondary) | 0.7% | [0.6%, 0.9%] | 2 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.7% | [-0.7%, -0.7%] | 1 |
All (primary) | 0.4% | [0.3%, 0.8%] | 9 |
- Small regressions in doc benchmarks
- Most likely caused by addings
AsyncFn
family of traits. - Author has been pinged, but it’s probably acceptable cost given that we’re documenting more.
Rollup of 9 pull requests #120375 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 0.3% | [0.3%, 0.4%] | 3 |
Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 6 |
Improvements (secondary) | - | - | 0 |
All (primary) | -0.2% | [-0.2%, -0.2%] | 6 |
- Small number of improvements outweigh the small number of regressions and so it’s not really worth investigating further.
Rollup of 12 pull requests #120401 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 0.6% | [0.5%, 1.1%] | 7 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -3.1% | [-3.1%, -3.1%] | 1 |
All (primary) | - | - | 0 |
- Very small regressions in match stress test is not worth investigating
Merge into larger interval set #120024 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.3% | [0.2%, 0.4%] | 14 |
Regressions (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.3% | [-0.3%, -0.2%] | 2 |
All (primary) | 0.3% | [0.2%, 0.4%] | 14 |
- The reviewer decided that the performance hit here was worth it given that we are now protecting against truly extreme cases that the perf benchmark suite doesn’t test against.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- TODO
Next week’s WG checkins
- @_WG-llvm by @nagisa and @Nikita Popov
- @_WG-mir-opt by @oli
Next meetings' agenda draft: hackmd link