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 are a great way for new contributors to get involved as they provide a stream of tasks focused around one area and have designated channels for help and advice. Here is a list of areas where work is being carried on:

NameShort DescriptionCodeZulip Stream
Async-await ImplementationImplementing async-awaitLink#wg-async
DiagnosticsUse crates.io crates for diagnostics rendering and make emitting diagnostics nicer.rustc_errors, rustc_lint, annotate-snippets#t-compiler/diagnostics
LLVMWorking with LLVM upstream to represent Rust in its developmentrustc, LLVM#t-compiler/llvm
MIR OptimizationsWrite MIR optimizations and refactor the MIR to be more optimizable.MIR transform#t-compiler/mir-opts
Parallel-rustcMaking parallel compilation the default for rustcrustc#t-compiler/parallel-rustc
PoloniusExploring the integration of the “NLL 2.0”-like “Polonius analysis” into rustcborrow check, rust-lang/polonius, rust-lang/datafrog#t-types/polonius
RLS 2.0Experimenting with a new compiler architecture tailored for IDEsrust-analyzer#t-compiler/rust-analyzer
Rustc Dev GuideMake the compiler easier to learn by ensuring that rustc-dev-guide is “complete”rustc, rustc-dev-guide#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):

NameShort DescriptionZulip Stream
MetaHow compiler team organizes itself#z-archived-t-compiler/wg-meta
Non-Lexical Lifetimes (NLL)Implementing non-lexical lifetimes#z-archived-t-compiler/wg-nll
PolymorphizationImplement an analysis to detect when functions can remain polymorphic during code generation.#z-archived-t-compiler/wg-polymorphization
PrioritizationTriaging regressions, mainly deciding if there are potential release blockers#t-compiler/prioritization
Profile-Guided OptimizationImplementing profile-guided optimization for rustc#z-archived-t-compiler/wg-profile-guided-optimization
RFC 2229Make a closure capture individual fields of the variable rather than the entire composite variable#z-archived-t-compiler/wg-rfc-2229
Rustc pipeliningEnable Cargo to invoke rustc in a pipelined fashion, speeding up crate graph compiles.#z-archived-t-compiler/wg-pipelining
Self-ProfileImproving the -Z self-profile feature#z-archived-t-compiler/wg-self-profile
TraitsImproving the trait-system design + implementation#z-archived-t-compiler/wg-traits