T Compiler Meeting Agenda 2021 12 30

T-compiler Meeting Agenda 2021-12-30

Tracking Issue


  • 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).


  • New MCPs (take a look, see if you like them!)
    • No new proposals this time.
  • Old MCPs (not seconded, take a look)
    • “Accept pc in place of unknown and unknown in place of pc for x86_64 and i?86 targets” compiler-team#441 (last review activity: 6 months ago)
    • “Make -Z binary-dep-depinfo the default behavior” compiler-team#464 (last review activity: 3 months ago)
    • “Tier 3 target proposal: riscv64gc-linux-android (Android target for riscv64gc)” compiler-team#472 (last review activity: about 20 days ago)
    • -Dwarnings to cover all warnings” compiler-team#473 (last review activity: about 20 days ago)
    • “Build-time execution sandboxing” compiler-team#475 (last review activity: about 2 days ago)
  • Pending FCP requests (check your boxes!)
    • “Stabilize -Z instrument-coverage as -C instrument-coveragerust#90132
    • “Stabilize -Z print-link-args as -C print-link-argsrust#91606
  • Things in FCP (make sure you’re good with it)
  • Accepted MCPs
    • No new accepted proposals this time.
  • Finalized FCPs (disposition merge)
    • No new finished FCP (disposition merge) this time.

WG checkins

pnkfelix came up with this:

since last checkin on October 7th, async foundtions has: posted an RFC for static async fn in traits and for return position impl trait in traits, posted a doc on async stack traces effort, helped the tokio team with shipping tokio-console 0.1. (there has also been effort on general purpose generators, and various bits of polish that I didn’t list.)

I think it can be summed up as “more of the same” of the previous checkins I am working in putting together a wg-traits retrospective blog post for the new year

Backport nominations

T-compiler stable / T-compiler beta

  • :beta: “Re-introduce concept of projection cache ‘completion’” rust#89831
  • :beta: “Don’t perform any new queries while reading a query result on disk” rust#91919
  • :stable: “Re-introduce concept of projection cache ‘completion’” rust#89831
    • Discussed last week, see beta backport

T-rustdoc stable / T-rustdoc beta

  • :beta: “Fix rustdoc::private_doc_tests lint for public re-exported items” rust#92349
    • Fixes an old rust#72081 and low priority rustdoc issue
    • Fixes a lint that produced a wrong warning on exported items
    • Waiting on CI, still not merged
    • @GuillaumeGomez suggests that this being an old issue, maybe it can flow into the next release without backport.
  • No stable nominations for T-rustdoc this time.

:back: / :shrug: / :hand:

PRs S-waiting-on-team


  • “Fix invalid removal of backlines from doc comments” rust#92357
    • fixes rustdoc issue (rust#91201)
    • PR introduces a small breaking change as it slightly changes the output of rustdoc
    • T-rustdoc seem to be ok with the change see rustdoc discussion

Oldest PRs waiting for review


  • “Let qpath contain NtTy: <$:ty as $:ty>::…” #91150 (last activity: 1 month ago)
    • assigned to @Wesley Wiser
    • previously reviewed by @Vadim Petrochenkov
  • “Extend check for UnsafeCell in consts to cover unions” #90383 (last activity: about 2 months ago)
    • Assigned to @RalfJ, perhaps needs a second round of review?
  • Remove NullOp::Box by nbdd0121 · Pull Request #90102 · rust-lang/rust
    • opened by @Gary Guo
    • reviewed by @RalfJ, approved by @oli
    • What’s the actual status of this PR?

Issues of Note

Short Summary



  • “Compile-time regression between 1.56.1 and 1.57.0 for deeply nested decorator types” rust#91598
    • Some of the compile time regression has been recovered in latest nightlies, though we’re not back at the 1.56.1 level (see @Aaron Hill comment)
    • Relevant PR rust#91186 is progressing and being reviewed
    • #91186 discussed in meeting and maybe a candidate for a beta-backport (see Zulip mention)
    • perhaps backport not as it is (see @The 8472|330154 comment)


  • No P-critical issues for T-rustdoc this time.

P-high regressions

P-high beta regressions

  • No P-high beta regressions this time.

Unassigned P-high nightly regressions

  • No unassigned P-high nightly regressions this time.

Performance logs

triage logs for 2021-12-28

Relatively quiet week, mostly rustdoc improvements.

Triage done by @simulacrum. Revision range: 3d57c61a9e04dcd3df633f41142009d6dcad4399..e91ad5fc62bdee4a29c18baa5fad2ca42fc91bf4

2 Regressions, 1 Improvements, 6 Mixed; 0 of them in rollups 0 Untriaged PRs 26 comparisons made in total


Fix bad caching of ~const Drop bounds #92149

  • Moderate regression in instruction counts (up to 2.6% on incr-patched: println builds of regression-31157)
  • Necessary fix for correctness.

Add #[inline] modifier to TypeId::of #92135

  • Large regression in instruction counts (up to 4.4% on full builds of keccak)
  • Reverted in a later pull request, unclear what the exact cause of the regression is.


  • :arrow_up: rust-analyzer #92247
  • Remove PartialOrd, Ord from LocalDefId #90408
  • Do not display ~const Drop in rustdoc #92229
  • Rustdoc: use is_doc_hidden method on more places #92227
  • intra-doc: Use an enum to represent URL fragments #92088
  • rustc_metadata: Switch crate data iteration from a callback to iterator #92159


Backport LLVM changes to disable deferred inlining #92110

  • Moderate improvement in instruction counts (up to -8.3% on incr-patched: println builds of regression-31157)
  • Large regression in instruction counts (up to 2.8% on full builds of deeply-nested)
  • Avoids an extreme regression in LLVM, which was blocking migration onto the new pass manager (and so newer rustc versions) for some crates.

Nominated Issues


  • No nominated issues for T-compiler this time.


  • No nominated RFCs for T-compiler this time.