T-compiler Meeting Agenda 2025-05-01
Announcements
- Question(jieyouxu): what’s the process for promoting a Tier 2 w/out host tools target to Tier 2 w/ host tools? Also the forge docs on target promotion between tiers might be inaccurate (Tier 3 -> Tier 2 vs Tier 2 -> Tier 1).
- 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
- WG-async design meeting time:2025-05-01T19:00:00+02:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Introduce debug information to statements in MIR” compiler-team#867 (Zulip)
- “Flags for retpoline mitigation” compiler-team#868 (Zulip)
- “Flags for mitigating straight line speculation” compiler-team#869 (Zulip)
- “Promote Solaris Targets to Tier 2 with Host Tools” compiler-team#870 (Zulip)
- “Add support for specifying split-debuginfo=unpacked output directory” compiler-team#871 (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: 7 months ago)
- “Add Hotpatch flag” compiler-team#745 (Zulip) (last review activity: 6 months ago)
- “Policy change around adding new unstable flags” compiler-team#787 (Zulip) (last review activity: 6 months ago)
- “setup typos check in CI (for rust repo)” compiler-team#817 (Zulip) (last review activity: about 47 days ago)
- “Rename “dylib” crate type to “rdylib” (keep old name but deprecate it), and maybe do the same for “staticlib” → “cstaticlib”” compiler-team#825 (Zulip) (last review activity: 3 months ago)
- “Compile UI tests as libraries by default” compiler-team#842 (Zulip) (last review activity: about 54 days ago)
- “Basic target naming rules” compiler-team#850 (Zulip) (last review activity: about 40 days ago)
- “Add one more “late metadata”/“digest” file to rlib archives” compiler-team#853 (Zulip) (last review activity: about 40 days ago)
- “Unify ui test inline error annotation style” compiler-team#859 (Zulip) (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
- “Warn about C-style octal literals” rust#131309
- “Add
target_env = "macabi"andtarget_env = "sim"” rust#139451
- Things in FCP (make sure you’re good with it)
- “Extend
--printrequests with output format suffixes” compiler-team#860 (Zulip) - “Tier 3 target proposal: bare-metal loongarch32” compiler-team#865 (Zulip)
- “Extend
- Accepted MCPs
- “compiletest: Make diagnostic kind mandatory on line annotations” compiler-team#862 (Zulip)
- MCPs blocked on unresolved concerns
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- concern: inhibit-opts
- concern: lose-debuginfo-data
- concern: impl-at-mir-level
- “Add
-C hint-mostly-unusedoption” compiler-team#829 (Zulip) (last review activity: 3 months ago) - “Run the UI test suite with multiple editions” compiler-team#861 (Zulip) (last review activity: about 13 days ago)
- concern: edition-directive-meaning
- “Promote tier 3 riscv32 ESP-IDF targets to tier 2” compiler-team#864 (Zulip) (last review activity: about 10 days ago)
- “Proposal for Adapt Stack Protector for Rust” compiler-team#841 (Zulip)
- Finalized FCPs (disposition merge)
- “Add
--print host-tupleto print host target tuple” rust#125579 - “make unsupported_calling_conventions a hard error” rust#129935
- “Fix ICE when passing DefId-creating args to legacy_const_generics.” rust#130443
- “Stabilize WebAssembly
multivalue,reference-types, andtail-calltarget features” rust#131080 - “Lint on combining
#[no_mangle]and#[export_name]” rust#131558 - “Stabilize
-Zdwarf-versionas-Cdwarf-version” rust#136926
- “Add
- Other teams finalized FCPs
- “Split elided_lifetime_in_paths into tied and untied” rust#120808
- “Implement a lint for implicit autoref of raw pointer dereference - take 2” rust#123239
- “lexer: Treat more floats with empty exponent as valid tokens” rust#131656
- “Stabilize let chains in the 2024 edition” rust#132833
- “Remove backticks from
ShouldPanic::YesWithMessage’sTrFailedMsg” rust#136160 - “Make closure capturing have consistent and correct behaviour around patterns” rust#138961
- “make abi_unsupported_vector_types a hard error” rust#139309
- “check types of const param defaults” rust#139646
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “set subsections_via_symbols for ld64 helper sections” rust#139752
- Authored by usamoi
- (fixes a linking error on macOS), addresses #139744
- prev. discussion
- :beta: “Fix linking statics on Arm64EC” rust#140176
- Authored by dpaoliello
- Reviewed and nominated by @Wesley Wiser (thanks)
- Fixes a serious linking regression #138541 on
aarch64-pc-windows-msvc(tier 2) (comment)
- 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
- 60 T-compiler P-high issues
- 0 P-critical, 3 P-high, 1 P-medium, 2 P-low regression-from-stable-to-beta
- 0 P-critical, 1 P-high, 1 P-medium, 0 P-low regression-from-stable-to-nightly
- 0 P-critical, 31 P-high, 100 P-medium, 21 P-low regression-from-stable-to-stable
P-critical
- No
P-criticalissues forT-compilerthis time.
- No
P-criticalissues forT-typesthis time.
P-high regressions
- “ICE:
expr in place where literal is expected (builtin attr parsing)” rust#137687- Work in progress by @_Jana Dönszelmann (comment)
- “regression:
error[E0284]: type annotations needed;cannot infer typein trait declaration” rust#140019- Fixed by #138941 (thanks @_*Michael (compiler-errors) Goulet ) and beta backport accepted
- “regression: error: attempted to repeat an expression containing no syntax variables matched as repeating at this depth” rust#140221
Unassigned P-high nightly regressions
- None new
Performance logs
Strange week with lots of noise peeking through the performance runs. The only really significant change was a performance improvement that comes from allowing out of order encoding of the dep graph.
Triage done by @rylev. Revision range: 8f2819b0..25cdf1f6
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.5% | [0.1%, 3.0%] | 77 |
| Regressions (secondary) | 0.6% | [0.1%, 2.4%] | 77 |
| Improvements (primary) | -0.7% | [-1.3%, -0.2%] | 106 |
| Improvements (secondary) | -0.7% | [-1.2%, -0.2%] | 29 |
| All (primary) | -0.2% | [-1.3%, 3.0%] | 183 |
4 Regressions, 2 Improvements, 4 Mixed; 2 of them in rollups 38 artifact comparisons made in total
Regressions
Refactor git change detection in bootstrap #138591 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.3%] | 13 |
| Regressions (secondary) | 0.3% | [0.2%, 0.6%] | 42 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.2% | [-0.2%, 0.3%] | 14 |
- Looks like noise.
Properly stall coroutine witnesses in new solver #138845 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.1%, 0.4%] | 25 |
| Regressions (secondary) | 0.4% | [0.1%, 0.6%] | 48 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.2% | [-0.2%, 0.4%] | 26 |
- The regressions are small enough that this isn’t a huge concern, and the regressions themselves might be due to some underlying perf instability.
Implement a lint for implicit autoref of raw pointer dereference - take 2 #123239 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 1.8% | [0.3%, 3.6%] | 6 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 1.8% | [0.3%, 3.6%] | 6 |
- Perf regression reversed in https://github.com/rust-lang/rust/pull/140406
Async drop codegen #123948 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.4% | [0.2%, 0.6%] | 12 |
| Regressions (secondary) | 1.0% | [0.2%, 2.4%] | 28 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.4% | [0.2%, 0.6%] | 12 |
- Ask the author and reviewer whether this is worth pursuing more after their initial perf investigation.
Improvements
Remove token::{Open,Close}Delim #139897 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | - | - | 0 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.4% | [-0.6%, -0.2%] | 14 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | -0.4% | [-0.6%, -0.2%] | 14 |
Rollup of 8 pull requests #140165 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.3%, -0.1%] | 17 |
| Improvements (secondary) | -0.3% | [-0.6%, -0.2%] | 48 |
| All (primary) | -0.2% | [-0.3%, 0.2%] | 18 |
Mixed
Clippy subtree update #139983 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | -0.2% | [-0.3%, -0.1%] | 7 |
| Improvements (secondary) | -0.3% | [-0.6%, -0.2%] | 36 |
| All (primary) | -0.1% | [-0.3%, 0.2%] | 8 |
- The small regression is fine in light of the larger and more numerous improvements.
Rollup of 8 pull requests #140256 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
| Regressions (secondary) | - | - | 0 |
| Improvements (primary) | - | - | 0 |
| Improvements (secondary) | -0.3% | [-0.6%, -0.2%] | 23 |
| All (primary) | 0.2% | [0.2%, 0.2%] | 1 |
- The single regression looks to be noise.
set subsections_via_symbols for ld64 helper sections #139752 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.2%, 0.3%] | 2 |
| Regressions (secondary) | 0.3% | [0.2%, 0.6%] | 30 |
| Improvements (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
| Improvements (secondary) | - | - | 0 |
| All (primary) | 0.1% | [-0.2%, 0.3%] | 3 |
- Not sure where the regressions are coming from since this should only impact macOS.
Allow out of order dep graph node encoding #139756 (Comparison Link)
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions (primary) | 0.3% | [0.3%, 0.3%] | 7 |
| Regressions (secondary) | 0.4% | [0.2%, 0.6%] | 15 |
| Improvements (primary) | -0.7% | [-1.3%, -0.3%] | 115 |
| Improvements (secondary) | -0.8% | [-1.4%, -0.2%] | 27 |
| All (primary) | -0.7% | [-1.3%, 0.3%] | 122 |
- Perf improvements massively outweigh the regressions.
Nominated Issues
- No I-compiler-nominated issues this time.
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- “rustc_target: RISC-V
Zfinxis incompatible with{ILP32,LP64}[FD]ABIs” rust#138872 (last review activity: about 34 days ago)- cc @Jubilee
- “Fix
PostBorrowckAnalysisfor old solver” rust#135899 (last review activity: about 35 days ago)- cc: @lcnr (unless it’s waiting on something)
- “Emit warning while outputs is not exe and prints linkage info” rust#138139 (last review activity: about 52 days ago)
- cc: @Chris Denton
- “Fix split index calculation in
check_type_alias_where_clause_location” rust#138037 (last review activity: about 53 days ago)- cc: @Boxy
- “Add ignore value suggestion in closure body” rust#135562 (last review activity: 3 months ago)
- cc: @Esteban Küber
Next meetings’ agenda draft: hackmd link