Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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