T-compiler Meeting Agenda 2022-05-19
Announcements
- Today release of Rust stable 1.61 (blog post) :tada:
- Tomorrow time:2022-05-20T15:00:00+02:00 Types Team: Finalize TAITs recommendations calendar link and 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).
MCPs/FCPs
- 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 ofunknown
andunknown
in place ofpc
forx86_64
andi?86
targets” compiler-team#441 (last review activity: 10 months ago) - “Make
-Z binary-dep-depinfo
the default behavior” compiler-team#464 (last review activity: 7 months ago) - “Tier 3 target proposal: riscv64gc-linux-android (Android target for
riscv64gc
)” compiler-team#472 (last review activity: 5 months ago) - “
-Dwarnings
to cover all warnings” compiler-team#473 (last review activity: 5 months ago) - “Build-time execution sandboxing” compiler-team#475 (last review activity: 4 months ago)
- “Dealing with type/const ambiguities” compiler-team#480 (last review activity: 3 months ago)
- “Removing codegen logic for
nvptx-nvidia-cuda
(32-bit target)” compiler-team#496 (last review activity: 2 months ago) - “Change compiletest declarations parsing” compiler-team#512 (last review activity: about 12 days ago)
- “Arbitrary annotations in compiletest” compiler-team#513 (last review activity: about 12 days ago)
- “Replace generic parameter list with separate lists per param kind” compiler-team#515 (last review activity: about 5 days ago)
- “Accept
- Pending FCP requests (check your boxes!)
- “Stabilize
-Zgcc-ld=lld
as-Clink-self-contained=linker -Clinker-flavor=gcc-lld
” compiler-team#510 - “Tracking issue for Consistent no-prelude attribute (RFC 501)” rust#20561
- “Tracking Issue for
-Z terminal-width
” rust#84673 - “Increase the minimum linux-gnu versions” rust#95026
- “Stabilize the
bundle
native library modifier” rust#95818 - “Remove label/lifetime shadowing warnings” rust#96296
- “Stabilize
- Things in FCP (make sure you’re good with it)
- “Add attribute to run specific tests in an isolated process” compiler-team#508
- “Add an
EarlyBinder
type” compiler-team#514
- Accepted MCPs
- No new accepted proposals this time.
- Finalized FCPs (disposition merge)
- “Tracking issue for
explicit_generic_args_with_impl_trait
” rust#83701
- “Tracking issue for
WG checkins
- @_WG-async-foundations by @nikomatsakis and @tmandry (previous checkin)
no check-in text provided, but go check out the info at https://hackmd.io/gPgXC4fsTZOgOnd-Bwhoag
- @_WG-traits (generic associated types) by @Jack Huey (previous checkin)
- “Shiny future with GATs” blog post: https://jackh726.github.io/rust/2022/05/04/a-shiny-future-with-gats.html
- Stabilization PR: https://github.com/rust-lang/rust/pull/96709
- Serious concerns have been raised
- First step was to summarize listed concerns (https://github.com/rust-lang/rust/pull/96709#issuecomment-1129311660)
- Next step is to directly address them
Backport nominations
T-compiler beta / T-compiler stable
- :beta: “Allow the unused_macro_rules lint for now” rust#97032
- nominated for beta 1.62 backport
- 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
- No PRs waiting on
T-compiler
this time.
Oldest PRs waiting for review
- “rustc_apfloat: Double::mul_add_r panic with specific values” rust#93225 (last review activity: 2 months ago)
- cc: @pnkfelix and @Wesley Wiser (which are working on it)
- depends also on rust#96784
- “Move various checks to typeck so them failing causes the typeck result to get tainted” rust#96046 (last review activity: about 33 days ago)
- cc: assignee reviewer @Michael Goulet (compiler-errors)
- “some mir typeck cleanup” rust#95763 (last review activity: about 28 days ago)
- cc: @lcnr is the PR ready to review?
- “reject more impossible trivial bounds (HRTBs and trivial after normalization)” rust#95611 (last review activity: about 28 days ago)
- cc: @Michael Goulet (compiler-errors) current status
s-waiting-for-review
is correct? - cc: @nikomatsakis does this PR need a T-lang approval (comment)?
- cc: @Michael Goulet (compiler-errors) current status
- “Add EntryExistInstrumenterPass for -Z instrument-mcount to the pipeline manually for LLVM >= 13.” rust#96238 (last review activity: about 28 days ago)
- @tm|352985 reviewed
- This comment (and following) raise the question if a fix should be applied to LLVM directly
Issues of Note
Short Summary
- 0 T-compiler P-critical issues
- 62 T-compiler P-high issues
- 0 P-critical, 0 P-high, 3 P-medium, 0 P-low regression-from-stable-to-beta
- 0 P-critical, 0 P-high, 2 P-medium, 0 P-low regression-from-stable-to-nightly
- 0 P-critical, 39 P-high, 80 P-medium, 10 P-low regression-from-stable-to-stable
P-critical
- No
P-critical
issues forT-compiler
this time.
- 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
It was a somewhat quiet week with real-world benchmarks showing a slight improvement on average and only one real-world crate, bitmaps
, experiencing regressions. Unfortunately, the cause of the regressions don’t look straightforward though. The biggest performance win came from a change to not encode attributes in metadata that are only used within the local crate. This improved doc builds of 16 of the 18 real world crates we run in our performance suite!
Triage done by @rylev. Revision range: c51871..7355d
Summary:
Regressions (primary) | Regressions (secondary) | Improvements (primary) | Improvements (secondary) | All (primary) | |
---|---|---|---|---|---|
count | 7 | 9 | 40 | 43 | 47 |
mean | 1.6% | 2.6% | -0.6% | -1.3% | -0.3% |
max | 1.9% | 3.5% | -2.6% | -2.6% | -2.6% |
2 Regressions, 4 Improvements, 0 Mixed; 0 of them in rollups 51 artifact comparisons made in total
Regressions
Add EarlyBinder #96883 (Comparison Link)
Regressions (primary) | Regressions (secondary) | Improvements (primary) | Improvements (secondary) | All (primary) | |
---|---|---|---|---|---|
count | 7 | 0 | 0 | 0 | 7 |
mean | 1.7% | N/A | N/A | N/A | 1.7% |
max | 2.0% | N/A | N/A | N/A | 2.0% |
- Regressions are exclusively in bitmaps-3.1.0 in both full and incr-full scenarios. This benchmark stresses trait related code in the compiler.
- Looks like
specialization_graph_of
is taking more time which is trait related so it makes sense. - Left a comment asking if anyone has any more clues.
Retire ItemLikeVisitor
trait #96825 (Comparison Link)
Regressions (primary) | Regressions (secondary) | Improvements (primary) | Improvements (secondary) | All (primary) | |
---|---|---|---|---|---|
count | 0 | 6 | 0 | 5 | 0 |
mean | N/A | 4.2% | N/A | -0.3% | N/A |
max | N/A | 4.8% | N/A | -0.4% | N/A |
- This regression seems to be taking place exclusively in the
externs
stress test. - The
native_library_kind
query is being hit more often. Since that query is going to be used a lot in theexterns
crate, it makes sense it would be the one to show regressions. - The cachegrind diff for
externs debug full
shows a big regression in calls torustc_metadata::rmeta::decoder::cstore_impl::provide
which calls intonative_library_kind
. - Left a comment asking why that might be the case.
Improvements
don’t encode only locally used attrs #95562 (Comparison Link)
Regressions (primary) | Regressions (secondary) | Improvements (primary) | Improvements (secondary) | All (primary) | |
---|---|---|---|---|---|
count | 0 | 0 | 22 | 23 | 22 |
mean | N/A | N/A | -0.8% | -1.8% | -0.8% |
max | N/A | N/A | -2.7% | -2.8% | -2.7% |
rustc: Stricter checking for #[link] attributes #96885 (Comparison Link)
Regressions (primary) | Regressions (secondary) | Improvements (primary) | Improvements (secondary) | All (primary) | |
---|---|---|---|---|---|
count | 0 | 0 | 0 | 9 | 0 |
mean | N/A | N/A | N/A | -0.8% | N/A |
max | N/A | N/A | N/A | -1.2% | N/A |
optimize insert_range
method of IntervalSet
#96895 (Comparison Link)
Regressions (primary) | Regressions (secondary) | Improvements (primary) | Improvements (secondary) | All (primary) | |
---|---|---|---|---|---|
count | 0 | 0 | 0 | 6 | 0 |
mean | N/A | N/A | N/A | -1.3% | N/A |
max | N/A | N/A | N/A | -2.4% | N/A |
Clean up derived obligation creation #96892 (Comparison Link)
Regressions (primary) | Regressions (secondary) | Improvements (primary) | Improvements (secondary) | All (primary) | |
---|---|---|---|---|---|
count | 0 | 0 | 3 | 1 | 3 |
mean | N/A | N/A | -0.4% | -0.4% | -0.4% |
max | N/A | N/A | -0.6% | -0.4% | -0.6% |
Nominated Issues
- No nominated issues for
T-compiler
this time.
- No nominated RFCs for
T-compiler
this time.
Next week’s WG checkins
- @_WG-diagnostics by @Esteban Küber and @oli
- @_WG-rustc-dev-guide by @Santiago Pastorino and @Yuki Okushi|217081