T-compiler Meeting Agenda 2022-03-10
Announcements
- Tomorrow time:2022-03-10T10:00:00-05:00 monthly Compiler Team Planning meeting ( link)
- Reminder: if you see a PR/issue that seems like there might be legal implications due to copyright/IP/etc, please let the Core team know (or at least message @pnkfelix or @Wesley Wiser so we can pass it along).
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “Implement
Clone
for generators” compiler-team#494 - “Add
import_name_type
parameter to#[link]
” compiler-team#495 - “Removing codegen logic for
nvptx-nvidia-cuda
(32-bit target)” compiler-team#496
- “Implement
- Old MCPs (not seconded, take a look)
- “Accept
pc
in place ofunknown
andunknown
in place ofpc
forx86_64
andi?86
targets” compiler-team#441 (last review activity: 8 months ago) - “Make
-Z binary-dep-depinfo
the default behavior” compiler-team#464 (last review activity: 5 months ago) - “Tier 3 target proposal: riscv64gc-linux-android (Android target for
riscv64gc
)” compiler-team#472 (last review activity: 3 months ago) - “
-Dwarnings
to cover all warnings” compiler-team#473 (last review activity: 3 months ago) - “Build-time execution sandboxing” compiler-team#475 (last review activity: 2 months ago)
- “Dealing with type/const ambiguities” compiler-team#480 (last review activity: about 48 days ago)
- “Accept
- Pending FCP requests (check your boxes!)
- “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
- “Stabilize native library modifier syntax and the
whole-archive
modifier specifically” rust#93901
- Things in FCP (make sure you’re good with it)
- “allow arbitrary inherent impls in the standard library” compiler-team#487
- “Increase the minimum linux-gnu versions” compiler-team#493
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- “Stabilize const_fn_fn_ptr_basics, const_fn_trait_bound, and const_impl_trait” rust#93827
WG checkins
- @_WG-async-foundations by @nikomatsakis and @tmandry (previous checkin)
wg-async has started an “async reading club”, every 2 weeks on Mondays. Check out the link to learn more.
- @_WG-traits (generic associated types) by @nikomatsakis and @Jack Huey (previous checkin)
A few PRs have landed
- Associated type where clause move rust#90076
- Normalization in fulfill rust#90887
- Normalize all obligation and expected trait refs in the same place rust#94108
- GATs in rustdoc rust#94009
Road to stabilization
- Only 3 untriaged GATs issues remain (but Jack’s taken a look at all, just need a look from Niko)
- Still working on a “shiny future” design for a GATified Iterator (and maybe other traits)
- Need to go through current tests and issues, in order to document current behavior, what works, what doesn’t
- Finally, need to write stabilization report and related docs
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Check method input expressions once” rust#94438
- pr by @Michael Goulet (compiler-errors) , already merged
- beta-backport decision was waiting on rust#94596, which is now merged
- :beta: “Do not recover from
Ty?
in macro parsing” rust#94593- pr author @Esteban Küber, already merged
- pr fixes rust#94510, follow up for rust#92746
- :beta: “Delay bug in expr adjustment when check_expr is called multiple times” rust#94596
- pr author @Michael Goulet (compiler-errors), already merged
- fixes rust#94516
- beta-backport nominated by @Esteban Küber
- :beta: “Downgrade
#[test]
on macro call to warning” rust#94624- pr author @Esteban Küber, already merged
- fixes rust#94508, (regression discovered in crater run)
- :beta: “Update LLVM submodule” rust#94764
- pr author @Nikita Popov
- assigned to @nagisa for review
- fixes a number of issues from LLVM 14: rust#89609, rust#93923, rust#94032
- relevant Zulip topic
- No stable nominations for
T-compiler
this time.
T-rustdoc beta / T-rustdoc stable
- No backport nominations for
T-rustdoc
this time.
:back: / :shrug: / :hand:
PRs S-waiting-on-team
- “Allow struct and enum to contain inner attrs” rust#84414
- assigned to @Vadim Petrochenkov
- PR discussion progress seemed to stop last year
- is this waiting on
T-lang
?
- “Make specifying repr optional for fieldless enums” rust#88203
- Felix mentioned this PR for a t-lang mtg proposal
- also waiting on
t-lang
?
- “Stabilize native library modifier syntax and the
whole-archive
modifier specifically” rust#93901- @Vadim Petrochenkov nominated for T-compiler discussion
- PR is pending FCP request
Oldest PRs waiting for review
- “Make AST->HIR lowering incremental” rust#88186 (last review activity: 6 months ago)
- pr author @cjgillot pushed changes and resolved conflicts
- cc: assignee @mw
- “RFC-2841: add codegen flag export symbols from executable” rust#85673 (last review activity: 6 months ago)]
- pr seems to be ready for review (latest comments from last year)
- review assigned to @nikomatsakis and @bjorn3
- “Allow use of AddressSanitizer on Windows by linking to existing libraries” rust#89369 (last review activity: 4 months ago)
- assigned to @Wesley Wiser
- latest discussion in T-compiler led to the conclusion that a Windows / ASAN expert was better suited to have a look here
- github comment and (zulip discussion)
- checking if there’s anything new since then
- “Improve
unsafe
diagnostic” rust#91133 (last review activity: 3 months ago)- cc: assigned reviewer @Esteban Küber
- “Change several HashMaps to IndexMap to improve incremental hashing performance” rust#90253 (last review activity: 2 months ago)
- author replied to comments, pr now has updated perf results
- cc: assigned reviewer @cjgillot
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- [67 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3A T-compiler+label%3AP-high)
- 0 P-critical, 0 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
- [1 P-critical, 43 P-high, 83 P-medium, 11 P-low regression-from-stabl e-to-stable](https://github.com/rust-lang/rust/labels/regressi on-from-stable-to-stable)
P-critical
- “Binary crashes when statically linked with LTO turned on” rust#94564
- No
P-critical
issues forT-rustdoc
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 pretty smooth week. All three regressions were small, and two were isolated to rustdoc alone.
Triage done by @pnkfelix. Revision range: f0c4da49983aa699f715caf681e3154b445fb60b..10dccdc7fcbdc64ee9efe2c1ed975ab8c1d61287
3 Regressions, 3 Improvements, 1 Mixed; 2 of them in rollups 30 Untriaged Pull Requests 53 comparisons made in total
Regressions
Rollup of 9 pull requests #94541
- Arithmetic mean of relevant regressions: 1.5%
- Largest regression in instruction counts: 3.9% on
full
builds ofdeeply-nested-async check
- After looking at the performance data, it seems like the regressions to
deeply-nested-async
are isolated to some slowdown incheck_mod_privacy
. - But AFAICT nothing in this rollup should have affected
check_mod_privacy
. - Chalking this up to optimization noise; marked as triaged.
Support GATs in Rustdoc #94009
- Arithmetic mean of relevant regressions: 0.8%
- Largest regression in instruction counts: 1.1% on
full
builds ofctfe-stress-4 doc
- Already marked as triaged by rustdoc team; this change makes rustdoc track more data, which inevitably leads to perf regressions.
rustdoc: Stop textually replacing Self
in doc links before resolving them #93805
- Arithmetic mean of relevant regressions: 0.3%
- Arithmetic mean of all relevant changes: 0.3%
- Largest regression in instruction counts: 1.0% on
full
builds ofserde doc
- rustdoc team did not expect a regression here.
- it looks like collect-intra-doc-links got slower. not clear why, though.
- slowdown was solely observed in
serde doc
. posted some theories and marked as triaged.
Improvements
- remove obligation dedup from
impl_or_trait_obligations
#84944 - Introduce
ConstAllocation
. #94597 - Rollup of 6 pull requests #94761
Mixed
Reopen 91719 #94570
- Arithmetic mean of relevant regressions: 0.5%
- Arithmetic mean of relevant improvements: -1.4%
- Arithmetic mean of all relevant changes: -1.0%
- Largest improvement in instruction counts: -6.9% on
full
builds ofdeeply-nested-async check
- Largest regression in instruction counts: 1.3% on
incr-full
builds ofpiston-image opt
- Already triaged by workingjubilee when they r+‘ed it.
Nags requiring follow up
No nags requiring follow up
Nominated Issues
no_mangle
/used
static is only present in output when in reachable module" rust#47384- @inquisitivecrystal suggested nomination (zulip comment)
- pointing to @Josh Triplett github comment
- the Wg-prio zulip topic has more context
- “rustc hangs and takes increasing amounts of memory when compiling
json
crate as dependency” rust#89647- @Nikita Popov self-assigned issue
- … and just closed it now as fixed by rust#94764
- “rustc_apfloat: Double::mul_add_r panic with specific values” rust#93225
- nominated by @wesley wiser for discussion (comment)
- “Stabilize native library modifier syntax and the
whole-archive
modifier specifically” rust#93901- @Vadim Petrochenkov nominated for T-compiler discussion
- PR is pending FCP request
- (discussed in present meeting)
- No nominated RFCs for
T-compiler
this time.