Compiler team triage meeting

This thread is a place where the compiler team posts minutes from our triage meetings. These minutes include updates from working groups, various announcements, as well as help wanted requests for regressions or other urgent issues. The minutes are also posted on the compiler-team repository in the minutes/triage-meeting directory.

1 Like

2019-04-11

Volunteers wanted

Backport decisions

  • No backport decisions were made at this meeting because there were no PRs nominated for backport.

Working group sync

wg-mir-opt

  • The current goal is to make the MIR Place data structure non-recursive (Issue #52708). This should use less memory, be easier to work with, and probably faster as well.

  • After that is completed, there are a number of other Place related refactorings and other ideas from the All-Hands meeting that can be worked on.

  • Link to full discussion

wg-pipelining

  • The goal is to allow Cargo to invoke rustc sooner letting downstream crates start compiling while upstream crates do LLVM work (Issue #58465)

  • This working group is just getting started and had its initial meeting on 4/5.

  • Link to full discussion

2 Likes

2019-04-18

Volunteers wanted

  • No issues discussed this week.

Backport decisions

  • There were no beta backport nominations this week.

  • “Use informational target machine for metadata” (#58605) was nominated for backport to stable.

Working group sync

wg-llvm

  • wg-llvm is working on optimizing overflow intrinsics with add and sub instructions.

  • A PR (#59546) has also been opened to fix a long standing unsoundness issue. The PR is currently waiting for someone to run lolbench.rs to determine what impact the PR has on generated code performance.

Link to full discussion

wg-async-await

Link to full discussion

4 Likes

2019-04-25

Volunteers wanted

  • Somebody needed to reduce #60136
  • Somebody needed to write documentation #60059

Backport decisions

  • “Temporarily accept [i|u][32|size] suffixes on a tuple index and warn” #60186

  • "Revert “compile crates under test w/ -Zemit-stack-sizes” #59911

Working group sync

wg-rfc-2229

  • RFC 2229 is a proposal to change how closures capture variables. Instead of capturing the complete variable when a part of it is used (ie foo.bar), only the “path” will be captured by the closure.

  • This requires a large amount of refactoring in the compiler.

  • There is currently a PR open which implements part of this but it regresses compiler error messages in some situtations.

  • There’s been ongoing discussion as to next steps and other refactorings some of which have issues with light mentoring steps available.

  • Link to full discussion

wg-self-profile

  • wg-self-profile has been making progress toward the “minimum viable product” tracking issue #58967:

    • A crate called measureme has been created which handles serializing and deserializing profiler events to a compact binary format.
    • The crate has been integrated with the existing self-profile infrastructure in rustc.
    • There are now summarization and flamegraph tools for processing the profiler data in the repo as well.
  • The next step is to work on integrating the summarization tool with perf.rlo.

  • Link to full discussion

1 Like

Written by @wesleywiser.

2019-05-02

Volunteers wanted

Backport decisions

  • There were no beta- nor stable-nominations for backport.

Working group sync

wg-meta

  • The compiler contributor RFC is in FCP and should be merged soon.

  • They are trying to get some sort of “design meeting” up and going. The plan is to discuss that initial proposal in more depth tomorrow at steering meeting, and then get started after that.

  • The compiler-team repo has a list of issues tracking things that wg-meta would like to get done.

wg-rls-2.0

  • Lots of progress happening!

  • Work is being done to expand macros by example so the analyser can understand the generated code.

  • Chalk is being integrated (#1216).

  • The rustc lexer code is being extracted into a separate crate (#60261).

1 Like

2019-05-09

Volunteers wanted

Backport decisions

  • save-analysis: Fix ICE when processing associated constant (#60649)
    • Backport accepted

Working group sync

wg-nll

wg-diagnostics

  • wg-diagnostic’s current goal is to pull some of the diagnostic infrastructure out of the compiler and into a reusuable crate.

  • They are working on organizing their first meeting soon.

  • Link to full discussion

2 Likes

2019-05-16

Volunteers wanted

  • request for investigation: “Compiler panic with generic-typed nested closures” (#59494)

  • request for investigation: “Exponential compile-time and type_length_limit blowup when nesting closure wrappers” (#54540)

    • eddyb has excellent notes here on the fundamental problem
  • request for investigation: “llvm lint: “Undefined behavior: Call argument type mismatches callee parameter type” with mixing debug and release” (#48310)

    • specifically, we need to resolve whether this is in fact an LLVM bug
  • request for investigation: “ICE with unsized associated type” (#60431)

Backport decisions

  • save-analysis: Pull associated type definition using qpath_def" (#59894)

    • Backport accepted
  • Use delay_span_bug for error cases when checking AnonConst parent (#60710)

    • Backport accepted
  • Use delay_span_bug for “Failed to unify obligation” (#60644)

    • Backport accepted
  • Instead of ICEing on incorrect pattern, use delay_span_bug (#60641)

    • Backport accepted
  • conditionally modify darwin targets to macosx targets with versions (#60378)

    • Backport declined
  • default to $ARCH-apple-macosx10.7.0 LLVM triple for darwin targets (#60788)

    • Backport declined

Working group sync

  • We ran out of time to hear from working groups in this meeting.

2019-05-23

Volunteers wanted

  • No issues discussed this week.

Backport decisions

  • “Fix ICE with inconsistent macro matchers” (#61046)

    • Backport accepted
  • “debuginfo: Revert to old/more verbose behavior for -Cdebuginfo=1” (#61007)

    • Backport accepted

Working group sync

wg-pgo

  • PGO stands for Profiler Guided Optimization.

  • Code is instrumented and then run. The profilng data gathered at runtime is then used in subsequent compilations to guide optimizations.

  • PGO support is almost complete!

    • The remaining work is mostly just around the UI side of things: documenting compiler flags, moving flags from -Z to -C.

Link to full discussion

6 Likes

2019-06-06

Volunteers wanted

  • No issues discussed this week.

Backport decisions

  • Fix regression 61475 #61500
  • Backport approved
  • Turn turbo :fish: :ice_cream: into an error #61189
    • Backport approved
  • Fix overflowing literal lint in loops #61098
    • Backport approved
  • Fix more escaping ReScopes #60765
    • Backport approved
  • Constrain all regions in the concrete type for an opaque type #60449
    • Backport approved

Working group sync

wg-mir-opt

  • const propagation (by Wesley Wiser) on mir opt level 2

  • some great compile-time speedups due to llvm and later MIR passes having less to do

  • Perf (active PR) has some regressions (up to 4% though)

  • rewrite loads of recursive Place algorithms imperatively (by Santiago Pastorino)

  • WIP PR by Santiago Pastorino for making Place a struct instead of an enum (preliminary work for making projections a slice instead of a recursive enum)

Link to full discussion

wg-pgo

  • Nothing new to report
1 Like