T-compiler Meeting Agenda 2022-11-10
Announcements
- Types Team: Review #103491 at time:2022-11-11T11:00:00-05:00
- 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).
Other WG meetings
- [Types team] Shallow subtyping weekly meeting at time:2022-11-14T10:00:00-05:00
- [wg-traits] GATs Sync at time:2022-11-14T16:00:00-05: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)
- “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: 6 months ago)
- “Add
#[alias]
attribute to allow symbol aliasing” compiler-team#526 (last review activity: 3 months ago) - “Use RangeInclusive in SpanData instead of lo/hi” compiler-team#534 (last review activity: 2 months ago)
- " Promote
i586-unknown-linux-gnu
to Tier 2 with Host Tools " compiler-team#543 (last review activity: 2 months ago) - “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: 2 months ago)
- “MCP: Flag to disable extended error info.” compiler-team#550 (last review activity: about 43 days ago)
- “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: 2 months ago)
- “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 16 days ago)
- “Introduce a
#[rustc::*]
tool attribute namespace and provide a stable#[rustc::on_unimplemented]
attribute” compiler-team#560 (last review activity: about 22 days ago) - “
-Z instrument-xray
option” compiler-team#561 (last review activity: about 22 days ago) - “Redefine dropck in terms of bound-like constructs” compiler-team#563 (last review activity: about 6 days ago)
- Pending FCP requests (check your boxes!)
- “Change
bindings_with_variant_name
to deny-by-default” rust#104154
- “Change
- Things in FCP (make sure you’re good with it)
- “Raise minimum supported macOS and iOS versions” compiler-team#556
- “Custom THIR -> MIR parser for testing purposes” compiler-team#564
- “Support enum as type of static variable with #[linkage]” compiler-team#565
- “Change the global default for
download-ci-llvm
toif-available
” compiler-team#566 - “Unreserve braced enum variants in value namespace” rust#103578
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
- “Make
Sized
coinductive, again” rust#100386 - “Handle projections as uncovered types during coherence check” rust#100555
- “Elaborate supertrait obligations when deducing closure signatures” rust#101834
- “make const_err a hard error” rust#102091
- “make unaligned_reference a hard error” rust#102513
- “make
order_dependent_trait_objects
show up in future-breakage reports” rust#102635 - “Stabilize raw-dylib for non-x86” rust#102793
- “Use
token::Lit
inast::ExprKind::Lit
.” rust#102944
WG checkins
-
Types team by @nikomatsakis and @Jack Huey (previous checkin):
- GATs stable: https://blog.rust-lang.org/2022/10/28/gats-stabilization.html
- Refactor rustc trait system initiative accepted: https://github.com/rust-lang/types-team/issues/58
- Meetup planned for Nov 30-Dec 2 for types team members
- We’re planning to do roadmap planning
- Potentially doing some zoom sessions with different groups; any suggestions welcome!
-
@_WG-mir-opt by @oli (previous checkin):
Checkin text
Backport nominations
T-compiler stable / T-compiler beta
- :beta: “Don’t silently eat label before block in block-like expr” rust#103986
- nominated by @Michael Goulet (compiler-errors) (comment)
- an easy fix for #103983, better if removed asap
- :beta: “Use
nominal_obligations_without_const
in wf for FnDef” rust#104180- Fixes #104155,
P-critical
- Fixes #104155,
- :stable: “Don’t silently eat label before block in block-like expr” rust#103986
- in case a 1.65.1 was discussed for other important stable backports (if any)
T-rustdoc stable / T-rustdoc beta
- No beta nominations for
T-rustdoc
this time. - No stable nominations for
T-rustdoc
this time.
:back: / :shrug: / :hand:
PRs S-waiting-on-team
- “Support endianness mark in test case check files” rust#104135
- Most of this PR seems to be for T-infra but there are some small bits also in
./tools/compiletest/src
- Most of this PR seems to be for T-infra but there are some small bits also in
- (other hidden issues in progress or waiting on other teams, details here)
Oldest PRs waiting for review
- “Refactor metadata emission to avoid visiting HIR” rust#98867 (last review activity: 4 months ago)
- ping @cjgillot (self-assigned)
- “Fix implied outlives bounds logic for projections” rust#101680 (last review activity: about 59 days ago)
- ping @Esteban Küber on comment but otherwise ping @aliemjay ?
- “Implement the
+whole-archive
modifier forwasm-ld
” rust#102215 (last review activity: about 46 days ago)- ping @Esteban Küber
Issues of Note
Short Summary
- 2 T-compiler P-critical issues
- 62 T-compiler P-high issues
- 2 P-critical, 0 P-high, 2 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 2 P-high, 3 P-medium, 0 P-low regression-from-stable-to-nightly
- 2 P-critical, 39 P-high, 82 P-medium, 7 P-low regression-from-stable-to-stable
P-critical
- “ld64.lld: error: too many personalities (4) for compact unwind to encode” rust#102754
- Waiting for T-release on including a mention about this (comment)
- unsure if in the end an action was taken
- “Rust update from 1.63 to 1.64 introduce lifetime problem on build” rust#103141
- #103141 previously discussed and should be in stable (left a comment about that)
- 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 relatively noisy week (most of those have been dropped below, and comments left on GitHub), but otherwise a quiet one in terms of performance changes, with essentially no significant changes occuring.
Triage done by @simulacrum. Revision range: 822f8c22f540b12f296d844ad5bf39aaa47bfeb4..57d3c58ed6e0faf89a62411f96c000ffc9fd3937
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.2% | [0.2%, 1.8%] | 13 |
Regressions (secondary) | 1.2% | [0.2%, 2.1%] | 47 |
Improvements (primary) | -1.5% | [-4.0%, -0.2%] | 21 |
Improvements (secondary) | -1.8% | [-3.9%, -0.3%] | 61 |
All (primary) | -0.4% | [-4.0%, 1.8%] | 34 |
2 Regressions, 2 Improvements, 3 Mixed; 3 of them in rollups 39 artifact comparisons made in total
Regressions
Rollup of 6 pull requests #103998 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 2.5% | [0.3%, 3.9%] | 6 |
Regressions (secondary) | 1.4% | [0.4%, 3.5%] | 43 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -1.3% | [-1.5%, -1.0%] | 2 |
All (primary) | 2.5% | [0.3%, 3.9%] | 6 |
Appears to be a genuine regression. Mostly limited to smaller benchmarks, so most likely just a slight increase in the minimum work rustc does. Suspected to be due to the changes in sysroot detection; have enqueued a build to try and find out.
std: sync “Dependencies of the backtrace
crate” with backtrace
#103934 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.4% | [0.9%, 1.8%] | 10 |
Regressions (secondary) | 1.5% | [0.3%, 3.3%] | 47 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 1.4% | [0.9%, 1.8%] | 10 |
Some of this may be noise, but it’s also possible that the newer dependencies are doing slightly different things causing some regressions – it’s possible we’re computing backtraces somewhere, and even modulo that, the changes to the standard library may cause different inlining decisions, etc.
Improvements
Make rustdoc Item::visibility computed on-demand #103690 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.8% | [-1.7%, -0.4%] | 11 |
Improvements (secondary) | -1.6% | [-2.7%, -0.6%] | 23 |
All (primary) | -0.8% | [-1.7%, -0.4%] | 11 |
Rollup of 7 pull requests #103962 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.2% | [-0.3%, -0.2%] | 6 |
Improvements (secondary) | -0.4% | [-0.4%, -0.3%] | 4 |
All (primary) | -0.2% | [-0.3%, -0.2%] | 6 |
Mixed
Revert “ci: Bring back ninja for dist builders” #103846 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 2.5% | [2.5%, 2.5%] | 1 |
Improvements (primary) | -1.7% | [-7.4%, -0.2%] | 19 |
Improvements (secondary) | -2.0% | [-6.6%, -0.2%] | 71 |
All (primary) | -1.7% | [-7.4%, -0.2%] | 19 |
This change was reverted precisely due to the performance regression it introduced, so this is no surprise.
Rollup of 5 pull requests #104017 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.4% | [1.4%, 1.4%] | 1 |
Regressions (secondary) | 0.5% | [0.3%, 0.8%] | 2 |
Improvements (primary) | -1.0% | [-3.2%, -0.3%] | 13 |
Improvements (secondary) | -2.3% | [-3.1%, -0.6%] | 19 |
All (primary) | -0.9% | [-3.2%, 1.4%] | 14 |
Minor regressions in two secondary benchmarks and in libc don’t seem to warrant further investigation, especially given the general improvement across the board.
Some tracing and comment cleanups #103975 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 1.0% | [0.2%, 1.5%] | 3 |
Regressions (secondary) | 1.9% | [0.3%, 4.2%] | 13 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -0.6% | [-0.6%, -0.6%] | 3 |
All (primary) | 1.0% | [0.2%, 1.5%] | 3 |
Most of the regressions are probably noise, so this change is likely actually an improvement or neutral.
Nominated Issues
- “libcompiler-builtins contains DWARF5 debuginfo in 1.62.0” rust#98746
- (from previous meeting): nominated by @pnkfelix, slipped prioritization and went unnoticed (was not labelled as regression)
- comment with some context
- “Upgrade mingw-w64 on CI” rust#100178
- here is some context on versions: comment
- nominated by @cuviper (comment) for weighing in the compatibility point of view, also considering the upcoming LLVM16 comment
- provides a summary of options
- “Remove save-analysis.” rust#101841
- from last week: nominated by Wesley to decide when landing this (comment) and allow other tooling to migrate to
rust-analyzer
Zulip discussion
- from last week: nominated by Wesley to decide when landing this (comment) and allow other tooling to migrate to
- “Android NDK r25b changes will break developers using r22b or older” rust#103673
- First comment has a lot of useful context
- Nominated by @simulacrum (comment), suggests a rollback of #102332 or tweak the new min. version threshold
- Discussed also on Zulip
- @apiraino: maybe an FCP? perhaps worth mentioning that the suggested new Android NDK min. version would be a jump (
r15c
->r25b
) to the latest LTS (released in Oct. 2022)
- “Panic on invalid usages of
MaybeUninit::uninit().assume_init()
” rust#100423- @RalfJ provides great summary in this comment
- “const eval interpreter step limit being hit on nightly for long-running while loop” rust#103814
#[const_eval_limit]
is now on nightly, people are tripping over it (comments in #93481)- @pnkfelix says: the lang team did discuss #103877 yesterday, and I think we managed to convince niko that shifting from a hard error to a lint is reasonable
- Felix mentions for context also #67217
- No nominated RFCs for
T-compiler
this time.
Next week’s WG checkins
- @_WG-polymorphization by @davidtwco
- @_WG-rls2.0 by @Lukas Wirth