T-compiler Meeting Agenda 2025-01-09
Announcements
- T-lang have scheduled a C++ interop design meeting on time:2025-02-26T17:30:00Z and they want anyone interested/with opinions from compiler to attend
- Today release of Rust stable 1.84 :tada: and blog post
- 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
- @_davidtwco office hours time:2025-01-10T17:00:00+01:00
MCPs/FCPs
Note: there are a few MCP in FCP status that technically can be closed as accepted. Due to the overlapping holidays in western timezones, we allowed a bit more time for people to look at them. We’re going to close them soon :-)
- New MCPs (take a look, see if you like them!)
- “Rename “dylib” crate type to “rdylib” (keep old name but deprecate it), and maybe do the same for “staticlib” → “cstaticlib”” compiler-team#825 (Zulip)
- “Add new targets for Cygwin (and MSYS2)” compiler-team#826 (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: 3 months ago)
- “Add Hotpatch flag” compiler-team#745 (Zulip) (last review activity: 3 months ago)
- “Policy change around adding new unstable flags” compiler-team#787 (Zulip) (last review activity: 2 months ago)
- “Normalize FileCheck directives” compiler-team#789 (Zulip) (last review activity: 2 months ago)
- “Create an avr-unknown-none target” compiler-team#800 (Zulip) (last review activity: 2 months ago)
- “Demote
i686-pc-windows-gnu
” compiler-team#822 (Zulip) (last review activity: about 13 days ago) - “Add amdgpu target” compiler-team#823 (Zulip) (last review activity: about 1 days ago)
- Pending FCP requests (check your boxes!)
- “sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets” rust#123617
- Things in FCP (make sure you’re good with it)
- “Relink, don’t rebuild” compiler-team#790 (Zulip)
- “Use debuginfo for short backtrace printing” compiler-team#818 (Zulip)
- “Policy: rustc can be run on case-insensitive filesystems but works in a case-sensitive way” compiler-team#819 (Zulip)
- “T-compiler Supplemental Tool Policy (Linker Scripts, etc.)” compiler-team#820 (Zulip)
- “const-eval: detect more pointers as definitely not-null” rust#133700
- “remove support for the (unstable) #[start] attribute” rust#134299
- Accepted MCPs
- No new accepted proposals this time.
- MCPs blocked on unresolved concerns
- “Retire the mailing list and make all decisions on zulip” compiler-team#649 (Zulip)
- concern: automatic-sync
- “setup typos check in CI (for rust repo)” compiler-team#817 (Zulip) (last review activity: about 22 days ago)
- concern: contributor friction
- “Add
evex512
target feature for AVX10” compiler-team#778 (Zulip) (last review activity: about 35 days ago)- concern: design-around-naming-scheme
- “Retire the mailing list and make all decisions on zulip” compiler-team#649 (Zulip)
- Finalized FCPs (disposition merge)
- “Add
--print host-tuple
to 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-call
target features” rust#131080 - “Lint on combining
#[no_mangle]
and#[export_name]
” rust#131558
- “Add
- Other teams finalized FCPs
- “Add lint against function pointer comparisons” rust#118833
- “Fixup Windows verbatim paths when used with the
include!
macro” rust#125205 - “Allow dropping
dyn Trait
principal” rust#126660 - “atomics: allow atomic and non-atomic reads to race” rust#128778
- “Lint against getting pointers from immediately dropped temporaries” rust#128985
- “Do not consider match/let/ref of place that evaluates to
!
to diverge, disallow coercions from them too” rust#129392 - “Make deprecated_cfg_attr_crate_type_name a hard error” rust#129670
- “Stabilize expr_2021 fragment specifier in all editions” rust#129972
- “Check elaborated projections from dyn don’t mention unconstrained late bound lifetimes” rust#130367
- “Finish stabilization of
result_ffi_guarantees
” rust#130628 - “Stabilize const
ptr::write*
andmem::replace
” rust#130954 - “Stabilize s390x inline assembly” rust#131258
- “Stabilize Arm64EC inline assembly” rust#131781
- “Always display first line of impl blocks even when collapsed” rust#132155
- “rework winnowing to sensibly handle global where-bounds” rust#132325
- “mark is_val_statically_known intrinsic as stably const-callable” rust#132449
- “
--nocapture
doesn’t follow common CLI conventions, making it a stumbling block to people debugging failures” rust#133073 - “Fix ICE when multiple supertrait substitutions need assoc but only one is provided” rust#133392
- “Stabilize
asm_goto
feature gate” rust#133870 - “Stabilize
feature(trait_upcasting)
” rust#134367
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Run borrowck tests on BIDs and emit tail-expr-drop-order lints for violations” rust#134523
- Authored by dingxiangfei2009
- (TIL) “BID” stands for “backward-incompatible drop statements generated exclusively when edition migration is run” (link and link)
- Fixes a lint so that it triggers the lint on edition 2024. Perf. run almost neutral.
- Backport nominated by @_Michael Goulet (compiler-errors) to have this lint trigger actually trigger on 2024 edition (comment)
- 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
- “const-eval: detect more pointers as definitely not-null” rust#133700
- changes just approved by T-lang (comment), on @RalfJ/ @lcnr purview (IIUC)
- Issues in progress or waiting on other teams
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 58 T-compiler P-high issues
- 1 P-critical, 0 P-high, 0 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 1 P-medium, 1 P-low regression-from-stable-to-nightly
- 0 P-critical, 34 P-high, 100 P-medium, 20 P-low regression-from-stable-to-stable
P-critical
- “Rustc strips all symbols on MacOS when strip = “debuginfo” is specified, but not when strip = “symbols” is specified” rust#135028
- Fixed by #135034, beta backport approved on Zulip (thanks @nora (Noratrieb) )
- 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
A quiet week with not much going on. A small regression was caused by a bugfix related to traits, but it was somewhat offset by a cargo update that brought a small perf. win.
Triage done by @kobzol. Revision range: 93722f7e..0f1e965f
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.4% | [0.1%, 1.1%] | 20 |
Regressions (secondary) | 0.4% | [0.1%, 2.5%] | 19 |
Improvements (primary) | -0.4% | [-1.6%, -0.2%] | 8 |
Improvements (secondary) | -1.3% | [-1.7%, -0.2%] | 13 |
All (primary) | 0.1% | [-1.6%, 1.1%] | 28 |
0 Regressions, 2 Improvements, 4 Mixed; 4 of them in rollups 51 artifact comparisons made in total
Improvements
Rollup of 4 pull requests #135059 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.2% | [-0.2%, -0.1%] | 5 |
Improvements (secondary) | - | - | 0 |
All (primary) | -0.2% | [-0.2%, -0.1%] | 5 |
Rollup of 7 pull requests #135086 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.3% | [-0.4%, -0.2%] | 7 |
Improvements (secondary) | - | - | 0 |
All (primary) | -0.3% | [-0.4%, -0.2%] | 7 |
Mixed
Update cargo #135089 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 0.9% | [0.9%, 0.9%] | 1 |
Improvements (primary) | -0.1% | [-0.2%, -0.1%] | 38 |
Improvements (secondary) | -0.3% | [-0.6%, -0.1%] | 35 |
All (primary) | -0.1% | [-0.2%, -0.1%] | 38 |
- Many small improvements and only a tiny regression.
- Marked as triaged.
Project to TyKind::Error
when there are unconstrained non-lifetime (ty/const) impl params #135057 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.2% | [0.1%, 0.3%] | 76 |
Regressions (secondary) | 0.3% | [0.0%, 0.7%] | 39 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -1.0% | [-1.0%, -1.0%] | 1 |
All (primary) | 0.2% | [0.1%, 0.3%] | 76 |
- Small performance loss, but this was a bugfix, so it was deemed justifiable.
- Marked as triaged.
Rollup of 6 pull requests #135101 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.7% | [0.7%, 0.8%] | 4 |
Regressions (secondary) | 0.7% | [0.3%, 2.2%] | 4 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -1.3% | [-1.8%, -0.2%] | 13 |
All (primary) | 0.7% | [0.7%, 0.8%] | 4 |
- The
deep-vector
benchmark changes were most likely caused by #135046. - Marked as triaged.
Rollup of 3 pull requests #135140 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.5% | [0.5%, 0.6%] | 2 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -1.7% | [-1.7%, -1.7%] | 1 |
Improvements (secondary) | -0.4% | [-0.4%, -0.4%] | 2 |
All (primary) | -0.2% | [-1.7%, 0.6%] | 3 |
- Only tiny changes, and the combined result is a wash.
- Marked as triaged.
Nominated Issues
- “Built-in attributes are treated differently vs prelude attributes, unstable built-in attributes can name-collide with stable macro, and built-in attributes can break back-compat” rust#134963
- nominated by @Jieyou Xu (also T-lang nominated)
- Questions for T-compiler (in opening comment):
- Built-in attributes like
#[coverage(..)]
are handled differently versus prelude attributes like#[test]
, including name resolution. - Current feature-gating of unstable built-in attributes is insufficient: adding a new unstable built-in attribute gated behind a feature gate (e.g.
#[coverage]
) can still break stable code without any feature gates (e.g. use of a user-defined macro of the same name as the newly added built-in attribute). - (also for T-lang) Stabilization of a built-in attribute can break backwards compatibility: old code can be broken by addition of a new built-in attribute.
- Built-in attributes like
- No I-compiler-nominated RFCs this time.
Oldest PRs waiting for review
- None this week
Next meeting’s agenda draft: hackmd link