Working Areas

Much of the ongoing work and initiatives from the compiler team are performed by groups of people interested in specific areas of work. These groups of are a great way for new contributors to get involved as they provide a stream of tasks all focused around one area and have designated channels for help and advice. Here is a list of areas where work is being carried on:

NameStatusShort DescriptionZulip Stream
Async-await ImplementationActiveImplementing async-await#wg-async
DiagnosticsActiveUse crates.io crates for diagnostics rendering and make emitting diagnostics nicer.#t-compiler/diagnostics
LLVMActiveWorking with LLVM upstream to represent Rust in its development#t-compiler/llvm
MIR OptimizationsActiveWrite MIR optimizations and refactor the MIR to be more optimizable.#t-compiler/mir-opts
Parallel-rustcPausedMaking parallel compilation the default for rustc#t-compiler/parallel-rustc
PoloniusActiveExploring the integration of the “NLL 2.0”-like “Polonius analysis” into rustc#t-types/polonius
RLS 2.0ActiveExperimenting with a new compiler architecture tailored for IDEs#t-compiler/rust-analyzer
Rustc Dev GuideActiveMake the compiler easier to learn by ensuring that rustc-dev-guide is “complete”#t-compiler/rustc-dev-guide

For historical record here’s a list of Working Groups that are not active anymore (either because they reached their goals or because work stalled):

NameStatusShort DescriptionZulip Stream
MetaPausedHow compiler team organizes itself#z-archived-t-compiler/wg-meta
Non-Lexical Lifetimes (NLL)RetiredImplementing non-lexical lifetimes#z-archived-t-compiler/wg-nll
PolymorphizationActiveImplement an analysis to detect when functions can remain polymorphic during code generation.#z-archived-t-compiler/wg-polymorphization
PrioritizationActiveTriaging bugs, mainly deciding if bugs are critical (potential release blockers) or not.#t-compiler/prioritization
Profile-Guided OptimizationRetiredImplementing profile-guided optimization for rustc#z-archived-t-compiler/wg-profile-guided-optimization
RFC 2229RetiredMake a closure capture individual fields of the variable rather than the entire composite variable#z-archived-t-compiler/wg-rfc-2229
Rustc pipeliningRetiredEnable Cargo to invoke rustc in a pipelined fashion, speeding up crate graph compiles.#z-archived-t-compiler/wg-pipelining
Self-ProfileActiveImproving the -Z self-profile feature#z-archived-t-compiler/wg-self-profile
TraitsActiveImproving the trait-system design + implementation#z-archived-t-compiler/wg-traits