T-compiler Meeting Agenda 2022-12-22
Announcements
- 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 (calendar link)
- [Types team] Shallow subtyping weekly meeting at time:2022-12-26T10:00:00-05:00
- [wg-traits] GATs Sync at time:2022-12-26T16:00:00-05:00
MCPs/FCPs
- New MCPs (take a look, see if you like them!)
- “New tier-2 target for
wasm32-wasi
+ threads” compiler-team#574
- “New tier-2 target for
- Old MCPs (not seconded, take a look)
- “Add
#[alias]
attribute to allow symbol aliasing” compiler-team#526 (last review activity: 5 months ago) - " Promote
i586-unknown-linux-gnu
to Tier 2 with Host Tools " compiler-team#543 (last review activity: 3 months ago) - “Lower baseline expectations for i686 unix-like targets” compiler-team#548 (last review activity: 3 months ago)
- “configurable rustc timeout for compiletest tests” compiler-team#554 (last review activity: 3 months ago)
- “Rustc Contributor Program Major Change Proposal” compiler-team#557 (last review activity: about 58 days ago)
- “Introduce a
#[rustc::*]
tool attribute namespace and provide a stable#[rustc::on_unimplemented]
attribute” compiler-team#560 (last review activity: 2 months ago) - “
-Z instrument-xray
option” compiler-team#561 (last review activity: 2 months ago) - “Upgrade
*-linux-musl
targets to musl 1.2” compiler-team#572 (last review activity: about 0 days ago)
- “Add
- Pending FCP requests (check your boxes!)
- “Add
SEMICOLON_IN_EXPRESSIONS_FROM_MACROS
to future-incompat report” rust#103418 - “Add deployment-target –print flag for Apple targets” rust#105354
- “Add
- Things in FCP (make sure you’re good with it)
- “Move tests out of src” compiler-team#573
- “Change
bindings_with_variant_name
to deny-by-default” rust#104154
- Accepted MCPs
- “Arbitrary annotations in compiletest” compiler-team#513
- “New tier-3 targets for OpenHarmony” compiler-team#568
- Finalized FCPs (disposition merge)
- “Tracking issue for the “efiapi” calling convention” rust#65815
- “Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error” rust#84022
- “Encode spans relative to the enclosing item – enable by default” rust#84762
- “Make
Sized
coinductive, again” rust#100386 - “Elaborate supertrait obligations when deducing closure signatures” rust#101834
- “Don’t normalize in AstConv” rust#101947
- “make const_err a hard error” rust#102091
- “Stabilize default_alloc_error_handler” rust#102318
- “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 - “Remove drop order twist of && and || and make them associative” rust#103293
- “Unreserve braced enum variants in value namespace” rust#103578
- “Remove const eval limit and implement an exponential backoff lint instead” rust#103877
- “Stabilize native library modifier
verbatim
” rust#104360 - “Expand a style-guide principle: readability in plain text” rust#104506
- “Find the right lower bound region in the scenario of partial order relations” rust#104765
WG checkins
None this week
Backport nominations
T-compiler stable / T-compiler beta
- :beta: “Switch
#[track_caller]
back to a no-op unless feature gate is enabled” rust#104741- nominated by @Michael Goulet (compiler-errors) (comment), r’ed and rolled up
- Fixes rust#104588, a
P-medium
regression - Also fixes a regression introduced in rust#104219 (same issue, stable-to-beta regression)
- :beta: “Don’t copy symbols from dylibs with
-Zdylib-lto
” rust#105800- backport nominated by @lqd
- patch addresses rust#105637 a
P-critical
regression impacting bug reports on ICEs
- :beta: “Revert “Replace usage of
ResumeTy
in async lowering withContext
”” rust#105915- nominated by @Michael Goulet (compiler-errors)
- Reverts #105250 and fixes #105501 (
P-critical
issue)
- :stable: “Don’t copy symbols from dylibs with
-Zdylib-lto
” rust#105800- (see beta-backport)
T-types stable / T-compiler beta
- :beta: “Add
IMPLIED_BOUNDS_ENTAILMENT
lint rust#105575
T-rustdoc beta / T-rustdoc stable
- No backport nominations for
T-rustdoc
this time.
:back: / :shrug: / :hand:
PRs S-waiting-on-team
- (other hidden issues in progress or waiting on other teams, details here)
Oldest PRs waiting for review
- “Only specify
--target
by default for-Zgcc-ld=lld
on wasm” rust#101792 (last review activity: 2 months ago)- cc @Vadim Petrochenkov
- “feat: add
expansion_growth_limit
attr as another expansion limit " rust#103029 (last review activity: 2 months ago)- would probably re-roll a review assignment
- “Add
SEMICOLON_IN_EXPRESSIONS_FROM_MACROS
to future-incompat report” rust#103418 (last review activity: about 57 days ago)- T-compiler proposed FCP
- “Migrating rustc_infer to session diagnostics (part 3)” rust#101936 (last review activity: about 49 days ago)
- cc @davidtwco
- “Parse unnamed struct and union fields” rust#99754 (last review activity: about 40 days ago)
- cc @cjgillot
Issues of Note
Short Summary
- 1 T-compiler P-critical issues
- 47 T-compiler P-high issues
- 1 P-critical, 0 P-high, 1 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 2 P-high, 4 P-medium, 1 P-low regression-from-stable-to-nightly
- 2 P-critical, 28 P-high, 89 P-medium, 8 P-low regression-from-stable-to-stable
P-critical
- “Seg fault in Rust 1.65.0 if I don’t create temporary variable” rust#105295
- Fixed by rust#105483 (beta-nominated, with release notes)
- No
P-critical
issues forT-rustdoc
this time.
P-high regressions
- No
P-high
beta regressions this time.
Unassigned P-high nightly regressions
- “deref_target_place is not a deref projection” rust#105881
- regressed in #103880
- @lqd authored a patch #105905 (merged) (@__BN a follow-up in #105958, being reviewed)
Performance logs
Relatively quiet week for performance, with most regressions and improvements being pretty small.
Triage done by @simulacrum. Revision range: 109cccbe4f345c0f0785ce860788580c3e2a29f5..8a746f4ac3a489efb724cde813607f3b96c2df7b
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.9% | [0.2%, 2.8%] | 28 |
Regressions (secondary) | 0.7% | [0.2%, 1.3%] | 39 |
Improvements (primary) | -1.0% | [-1.1%, -1.0%] | 2 |
Improvements (secondary) | -1.7% | [-4.3%, -0.2%] | 24 |
All (primary) | 0.8% | [-1.1%, 2.8%] | 30 |
3 Regressions, 4 Improvements, 2 Mixed; 3 of them in rollups 53 artifact comparisons made in total
Regressions
use ty::Binder in rustdoc instead of skip_binder
#105612 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.3% | [0.2%, 0.5%] | 5 |
Regressions (secondary) | 0.5% | [0.3%, 0.7%] | 9 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.3% | [0.2%, 0.5%] | 5 |
The regressions are expected, solely in rustdoc and part of a bugfix.
Use non-ascribed type as field’s type in mir #103880 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 3.1% | [2.5%, 3.7%] | 2 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | - | - | 0 |
Regression does not appear to be noise, however the PR in question has been reverted (due to non-perf regressions).
Add IMPLIED_BOUNDS_ENTAILMENT
lint #105575 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.9% | [0.2%, 2.3%] | 20 |
Regressions (secondary) | 1.6% | [0.6%, 2.6%] | 12 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | - | - | 0 |
All (primary) | 0.9% | [0.2%, 2.3%] | 20 |
New lint for a soundness fix. Regressions relatively limited regardless.
Improvements
Revert “enable ThinLTO for rustc on x86_64-apple-darwin dist builds” #105646 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -1.0% | [-1.1%, -0.9%] | 2 |
Improvements (secondary) | -2.0% | [-2.6%, -0.8%] | 7 |
All (primary) | -1.0% | [-1.1%, -0.9%] | 2 |
Rollup of 5 pull requests #105892 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -1.0% | [-1.1%, -0.9%] | 2 |
Improvements (secondary) | -2.2% | [-2.6%, -2.0%] | 6 |
All (primary) | -1.0% | [-1.1%, -0.9%] | 2 |
Revert #103880 “Use non-ascribed type as field’s type in mir” #105905 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -0.7% | [-1.3%, -0.3%] | 5 |
Improvements (secondary) | -1.7% | [-3.5%, -0.4%] | 14 |
All (primary) | -0.7% | [-1.3%, -0.3%] | 5 |
Rollup of 5 pull requests #105940 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | -1.1% | [-1.1%, -1.0%] | 2 |
Improvements (secondary) | -1.7% | [-2.6%, -0.4%] | 9 |
All (primary) | -1.1% | [-1.1%, -1.0%] | 2 |
Mixed
Guard ProjectionTy creation against passing the wrong number of substs #105657 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | - | - | 0 |
Regressions (secondary) | 1.0% | [0.7%, 1.2%] | 9 |
Improvements (primary) | -0.4% | [-0.6%, -0.1%] | 2 |
Improvements (secondary) | -0.7% | [-0.7%, -0.5%] | 8 |
All (primary) | -0.4% | [-0.6%, -0.1%] | 2 |
Rollup of 7 pull requests #105918 (Comparison Link)
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions (primary) | 0.2% | [0.2%, 0.2%] | 1 |
Regressions (secondary) | - | - | 0 |
Improvements (primary) | - | - | 0 |
Improvements (secondary) | -2.1% | [-4.4%, -0.8%] | 12 |
All (primary) | 0.2% | [0.2%, 0.2%] | 1 |
Nominated Issues
- No nominated issues for
T-compiler
this time.
- No nominated RFCs for
T-compiler
this time.
Next week’s WG checkins
None (WG-checkins paused for a few weeks)