--- tags: weekly, rustc type: docs --- # T-compiler Meeting Agenda 2021-10-14 [Tracking Issue](https://github.com/rust-lang/rust/issues/54818) ## Announcements - :loudspeaker: Next Thursday Oct, 21st release Rust stable 1.56 :loudspeaker: - Tomorrow <time:2021-10-15T10:00:00-04:00>, Polonius Hackaton - We are now asking for feedback on the [annual community survey](https://github.com/rust-lang/surveys/blob/main/surveys/2021-annual-survey/questions.md) rough draft. Please take a look and add issues for anything you find! - T-compiler Planning meeting is a week from tomorrow. Get proposals in if you have stuff that would be good for a steering meeting during the October/November cycle. ## MCPs/FCPs - New MCPs (take a look, see if you like them!) - No new proposals this time. - Old MCPs (not seconded, take a look) - "rustdoc is using rustc_ast_pretty, would it be possible to make it somewhat "stable"?" [compiler-team#403](https://github.com/rust-lang/compiler-team/issues/403) (last review activity: GH none, Zulip +3 months ago) - "CI should exercise (subset of) tests under --stage 1" [compiler-team#439](https://github.com/rust-lang/compiler-team/issues/439) (last review activity: GH none, Zulip about 6 weeks ago) - "Accept `pc` in place of `unknown` and `unknown` in place of `pc` for `x86_64` and `i?86` targets" [compiler-team#441](https://github.com/rust-lang/compiler-team/issues/441) (last review activity: GH none, Zulip 3 weeks ago) - "Tier 3 target proposal: x86_64-unknown-none (freestanding/bare-metal x86-64)" [compiler-team#462](https://github.com/rust-lang/compiler-team/issues/462) (last review activity: GH 25 days ago, Zulip 2 weeks ago) - "Make `-Z binary-dep-depinfo` the default behavior" [compiler-team#464](https://github.com/rust-lang/compiler-team/issues/464) (last review activity: GH none, Zulip 3 weeks ago) - Pending FCP requests (check your boxes!) - "Write text output files to stdout if options like `-o -` or `--emit asm=-` are provided" [compiler-team#431](https://github.com/rust-lang/compiler-team/issues/431) - "Tracking issue for `#![feature(const_precise_live_drops)]`" [rust#73255](https://github.com/rust-lang/rust/issues/73255) - Things in FCP (make sure you're good with it) - "lint internal hashmap iteration" [compiler-team#465](https://github.com/rust-lang/compiler-team/issues/465) - Accepted MCPs - No new accepted proposals this time. - Finalized FCPs (disposition merge) - "Make all proc-macro back-compat lints deny-by-default" [rust#88041](https://github.com/rust-lang/rust/pull/88041) ### WG checkins - @_WG-diagnostics_ by @**Esteban Küber** and @**oli** ([previous checkin](https://hackmd.io/3r_D-3ElQ-WR_VVzx4g2Pw?view#WG-checkins)): > - Trait Alias = impl Trait; improvements > - NLL borrowck closer in parity with old borrowck > - Typo suggestions in more places (assoc items and modules/crates) > - Multiple improvements around trait bound presentation > - More accurate expected/found labels when trait paths are the same (long standing confusing issue) > - **I** now consider type ascription syntax as no longer being problematic (last outstanding issues for common confusables closed) > - Internal refactors & general clean ups > - More parser recovery for common typos in match arms > - Extend C-style printf format string parsing 😅 > > There's in flight a style linter for diagnostics, to ensure consistency, which even without merging has already yielded a few clean up PRs - @_*WG-rustc-dev-guide* by @**Santiago Pastorino** and @**Yuki Okushi|217081** ([previous checkin](https://hackmd.io/3r_D-3ElQ-WR_VVzx4g2Pw?view#WG-checkins)): >#### Most notable changes > >- Document tracing awesomeness [#1223](https://github.com/rust-lang/rustc->dev-guide/pull/1223) >- Update sanitizer documentation [#1220](https://github.com/rust-lang/rustc-dev-guide/pull/1220) >- Parallel codegen [#1206](https://github.com/rust-lang/rustc-dev-guide/pull/1206) >- Parallel docs [#1203](https://github.com/rust-lang/rustc-dev-guide/pull/1203) > >#### Most notable WIPs > >- Remove docs on Assemble step [#1233](https://github.com/rust-lang/rustc-dev-guide/pull/1233) >- Added detail to codegen section [#1216](https://github.com/rust-lang/rustc-dev-guide/pull/1216) >- Update build instructions for rustdoc [#1117](https://github.com/rust-lang/rustc-dev-guide/pull/1117) >- Document inert vs active attributes [#1110](https://github.com/rust-lang/rustc-dev-guide/pull/1110) >- Explain the new valtree system for type level constants. [#1097](https://github.com/rust-lang/rustc-dev-guide/pull/1097) ## Backport nominations [T-compiler beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-compiler) / [T-compiler stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-compiler) - :beta: "Emit item no type error even if type inference fails" [rust#89585](https://github.com/rust-lang/rust/pull/89585) - fixes P-high regression from stable [rust#89574](https://github.com/rust-lang/rust/issues/89574) - nomination suggested by @**Gary Guo** [in this comment](https://github.com/rust-lang/rust/pull/89854#issuecomment-942638505) - :beta: "Use correct edition for panic in [debug_]assert!()." [rust#89622](https://github.com/rust-lang/rust/pull/89622) - nomination suggested by mara [in this comment](https://github.com/rust-lang/rust/issues/88638#issuecomment-915472783) [T-rustdoc beta](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Abeta-nominated+-label%3Abeta-accepted+label%3AT-rustdoc) / [T-rustdoc stable](https://github.com/rust-lang/rust/issues?q=is%3Aall+label%3Astable-nominated+-label%3Astable-accepted+label%3AT-rustdoc) - No backport nominations for `T-rustdoc` this time. :back: / :shrug: / :hand: ## PRs S-waiting-on-team [T-compiler](https://github.com/rust-lang/rust/pulls?utf8=%E2%9C%93&q=is%3Aopen+label%3AS-waiting-on-team+label%3AT-compiler) - No PRs waiting on `T-compiler` this time. ## Oldest PRs waiting for review [T-compiler](https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc+label%3AS-waiting-on-review+draft%3Afalse+label%3AT-compiler) - "Replace dominators algorithm with simple Lengauer-Tarjan" [rust#85013](https://github.com/rust-lang/rust/pull/85013) (last review activity: 4 months ago) - self-assigned to @**pnkfelix** - "Normalize MIR with RevealAll before optimizations." [rust#85254](https://github.com/rust-lang/rust/pull/85254) (last review activity: 3 months ago) - "move implicit `Sized` predicate to end of list" [rust#86011](https://github.com/rust-lang/rust/pull/86011) (last review activity: 2 months ago) - "Mir-Opt for copying enums with large discrepancies" [rust#85158](https://github.com/rust-lang/rust/pull/85158) (last review activity: 2 months ago) - [discussed previously](https://github.com/rust-lang/rust/issues/88638#issuecomment-915472783) - reviewed by @**Wesley Wiser**, PR author re-requested review - "Abort in panic_abort eh_personality" [rust#86801](https://github.com/rust-lang/rust/pull/86801) (last review activity: 2 months ago) - [discussed previously](https://github.com/rust-lang/rust/issues/88638#issuecomment-915472783), now being reviewed - @**Daniel Frampton** [reviewed the PR](https://github.com/rust-lang/rust/pull/86801#issuecomment-941177751) - Alex Crichton also contributed some thoughts ## Issues of Note ### Short Summary - [0 T-compiler P-critical issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical) - [0 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-critical+no%3Aassignee) - [75 T-compiler P-high issues](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high) - [51 of those are unassigned](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AT-compiler+label%3AP-high+no%3Aassignee) - [1 P-critical, 2 P-high, 2 P-medium, 0 P-low regression-from-stable-to-beta](https://github.com/rust-lang/rust/labels/regression-from-stable-to-beta) - [0 P-critical, 0 P-high, 2 P-medium, 1 P-low regression-from-stable-to-nightly](https://github.com/rust-lang/rust/labels/regression-from-stable-to-nightly) - [1 P-critical, 46 P-high, 83 P-medium, 11 P-low regression-from-stable-to-stable](https://github.com/rust-lang/rust/labels/regression-from-stable-to-stable) ### P-critical [T-compiler](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AP-critical+label%3AT-compiler) - No `P-critical` issues for `T-compiler` this time. [T-rustdoc](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AP-critical+label%3AT-rustdoc) - No `P-critical` issues for `T-rustdoc` this time. ### P-high regressions [P-high beta regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-beta+label%3AP-high+-label%3AT-infra+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core) - "no errors encountered even though `delay_span_bug` issued" [rust#87757](https://github.com/rust-lang/rust/issues/87757) - "regression: cycle in MIR opts" [rust#88972](https://github.com/rust-lang/rust/issues/88972) [Unassigned P-high nightly regressions](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Aregression-from-stable-to-nightly+label%3AP-high+no%3Aassignee+-label%3AT-infra+-label%3AT-release+-label%3AT-rustdoc+-label%3AT-core) - "CI: dist-s390x-linux build went from 40min. to 160min with new LLVM pass manager" [rust#89609](https://github.com/rust-lang/rust/issues/89609) - significant compilation time regression on Tier 2 target s390x - filed bug for [LLVM pass-manager](https://bugs.llvm.org/show_bug.cgi?id=52146) - assigned P-high to keep under the radar before the next release cycle - this has a workaround applied in PR #89666 ## Performance logs > [triage logs for 2021-10-12](https://github.com/rust-lang/rustc-perf/blob/master/triage/2021-10-12.md) A relatively quiet week: two smallish regressions, and one largish regression that is isolated to doc builds. A couple of nice small wins as well. Triage done by **@pnkfelix**. Revision range: [25ec8273855fde2d72ae877b397e054de5300e10..9475e609b8458fff9e444934a6017d2e590642cf](https://perf.rust-lang.org/?start=25ec8273855fde2d72ae877b397e054de5300e10&end=9475e609b8458fff9e444934a6017d2e590642cf&absolute=false&stat=instructions%3Au) 2 Regressions, 2 Improvements, 2 Mixed; 1 of them in rollups, 42 comparisons made in total #### Regressions Rollup of 12 pull requests [#89608](https://github.com/rust-lang/rust/issues/89608) - Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=d480ceff384f80394e9367b5e9d3596d62f20585&end=0eabf25b90396dead0b2a1aaa275af18a1ae6008&stat=instructions:u) (up to 0.8% on `incr-unchanged` builds of `externs`) - A large number of `doc` targets regressed very slightly here. - Apart from that, biggest changes were to `externs` and `deeply-nested-async`. - Left [comment](https://github.com/rust-lang/rust/pull/89608#issuecomment-941365151) noting the above Move top part of print_item to Tera templates [#89695](https://github.com/rust-lang/rust/issues/89695) - Large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=6928fafe06e4ab29317f75194e1bf67c119dccdc&end=c1cb97481a633bdfdf3d6b57c6dcebfdfadbcfdf&stat=instructions:u) (up to 3.7% on `full` builds of `externs`) - Large regression for certain doc builds. - Fix posted in PR [#89732](https://github.com/rust-lang/rust/issues/89732); thanks @**GuillaumeGomez** ! Apply clippy suggestions for rustc and core [#89709](https://github.com/rust-lang/rust/issues/89709) - Large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=86d6d2b7389fe1b339402c1798edae8b695fc9ef&end=6ae8912a3e7d2c4c775024f58a7ba4b1aedc4073&stat=instructions:u) (up to 2.8% on `full` builds of `keccak`) - instruction-count regressions in the 1.1% to 2.7% range in keccak and inflate - Left [comment](https://github.com/rust-lang/rust/pull/89709#issuecomment-941560787) #### Improvements - perf: only check for `rustc_trivial_field_reads` attribute on traits, not items, impls, etc. [#89454](https://github.com/rust-lang/rust/issues/89454) - rustdoc: Cleanup various `clean` types [#88379](https://github.com/rust-lang/rust/issues/88379) #### Mixed Add two inline annotations for hot functions [#89495](https://github.com/rust-lang/rust/issues/89495) - Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=d3e6770efbd76c4ad1e17468895b538a2efec4bd&end=ca8078d7b2e40c24a39e5fe2a910afef4c91ebfc&stat=instructions:u) (up to -7.1% on `full` builds of `inflate`) - Small regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=d3e6770efbd76c4ad1e17468895b538a2efec4bd&end=ca8078d7b2e40c24a39e5fe2a910afef4c91ebfc&stat=instructions:u) (up to 0.4% on `incr-unchanged` builds of `helloworld`) Introduce `tcx.get_diagnostic_name` [#89534](https://github.com/rust-lang/rust/issues/89534) - Large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=680ff86391f19e12b485293f01372036e85ba87c&end=0157cc977fd71297ce73e2f249321f5ba2555d42&stat=instructions:u) (up to -3.4% on `incr-full` builds of `ctfe-stress-4`) - Small regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=680ff86391f19e12b485293f01372036e85ba87c&end=0157cc977fd71297ce73e2f249321f5ba2555d42&stat=instructions:u) (up to 0.4% on `incr-unchanged` builds of `helloworld`) #### Untriaged Pull Requests - [#89709 Apply clippy suggestions for rustc and core](https://github.com/rust-lang/rust/pull/89709) - [#89695 Move top part of print_item to Tera templates](https://github.com/rust-lang/rust/pull/89695) - [#89608 Rollup of 12 pull requests](https://github.com/rust-lang/rust/pull/89608) - [#89534 Introduce `tcx.get_diagnostic_name`](https://github.com/rust-lang/rust/pull/89534) - [#89495 Add two inline annotations for hot functions](https://github.com/rust-lang/rust/pull/89495) - [#89435 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/89435) - [#89405 Fix clippy lints](https://github.com/rust-lang/rust/pull/89405) - [#89263 Suggest both of immutable and mutable trait implementations](https://github.com/rust-lang/rust/pull/89263) - [#89165 Fix read_to_end to not grow an exact size buffer](https://github.com/rust-lang/rust/pull/89165) - [#89125 Don't use projection cache or candidate cache in intercrate mode](https://github.com/rust-lang/rust/pull/89125) - [#89103 Migrate in-tree crates to 2021](https://github.com/rust-lang/rust/pull/89103) - [#89047 Rollup of 10 pull requests](https://github.com/rust-lang/rust/pull/89047) - [#89030 Introduce `Rvalue::ShallowInitBox`](https://github.com/rust-lang/rust/pull/89030) - [#88945 Remove concept of 'completion' from the projection cache](https://github.com/rust-lang/rust/pull/88945) - [#88880 Rework HIR API to make invocations of the hir_crate query harder.](https://github.com/rust-lang/rust/pull/88880) - [#88824 Rollup of 15 pull requests](https://github.com/rust-lang/rust/pull/88824) - [#88804 Revise never type fallback algorithm](https://github.com/rust-lang/rust/pull/88804) - [#88719 Point at argument instead of call for their obligations](https://github.com/rust-lang/rust/pull/88719) - [#88703 Gather module items after lowering.](https://github.com/rust-lang/rust/pull/88703) - [#88627 Do not preallocate HirIds](https://github.com/rust-lang/rust/pull/88627) - [#88575 Querify `FnAbi::of_{fn_ptr,instance}` as `fn_abi_of_{fn_ptr,instance}`.](https://github.com/rust-lang/rust/pull/88575) - [#88308 Morph `layout_raw` query into `layout_of`.](https://github.com/rust-lang/rust/pull/88308) - [#87781 Remove box syntax from compiler and tools](https://github.com/rust-lang/rust/pull/87781) - [#87064 Support `#[track_caller]` on closures and generators](https://github.com/rust-lang/rust/pull/87064) - [#83302 Get piece unchecked in `write`](https://github.com/rust-lang/rust/pull/83302) ## Nominated Issues [T-compiler](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler) - "Add new tier 3 target: `x86_64-unknown-none`" [rust#89062](https://github.com/rust-lang/rust/pull/89062) - nominated by @**josh triplett** for T-compiler consideration. On `T-lang` seems all set. - LTO toolchain compatability docs could use an update in case anything has changed in the last year [rust#89654](https://github.com/rust-lang/rust/issues/89654) - nominated by @**Joshua Nelson** - currently LTO compatibility declared up to 1.46, reporter asks if min. version can be extented to more recent versions [RFC](https://github.com/rust-lang/rfcs/issues?q=is%3Aopen+label%3AI-nominated+label%3AT-compiler) - No nominated RFCs for `T-compiler` this time.