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:
Name | Status | Short Description | Zulip Stream |
---|---|---|---|
Async-await Implementation | Active | Implementing async-await | #wg-async |
Diagnostics | Active | Use crates.io crates for diagnostics rendering and make emitting diagnostics nicer. | #t-compiler/diagnostics |
LLVM | Active | Working with LLVM upstream to represent Rust in its development | #t-compiler/llvm |
MIR Optimizations | Active | Write MIR optimizations and refactor the MIR to be more optimizable. | #t-compiler/mir-opts |
Parallel-rustc | Paused | Making parallel compilation the default for rustc | #t-compiler/parallel-rustc |
Polonius | Active | Exploring the integration of the “NLL 2.0”-like “Polonius analysis” into rustc | #t-types/polonius |
RLS 2.0 | Active | Experimenting with a new compiler architecture tailored for IDEs | #t-compiler/rust-analyzer |
Rustc Dev Guide | Active | Make 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):
Name | Status | Short Description | Zulip Stream |
---|---|---|---|
Meta | Paused | How compiler team organizes itself | #z-archived-t-compiler/wg-meta |
Non-Lexical Lifetimes (NLL) | Retired | Implementing non-lexical lifetimes | #z-archived-t-compiler/wg-nll |
Polymorphization | Active | Implement an analysis to detect when functions can remain polymorphic during code generation. | #z-archived-t-compiler/wg-polymorphization |
Prioritization | Active | Triaging bugs, mainly deciding if bugs are critical (potential release blockers) or not. | #t-compiler/prioritization |
Profile-Guided Optimization | Retired | Implementing profile-guided optimization for rustc | #z-archived-t-compiler/wg-profile-guided-optimization |
RFC 2229 | Retired | Make a closure capture individual fields of the variable rather than the entire composite variable | #z-archived-t-compiler/wg-rfc-2229 |
Rustc pipelining | Retired | Enable Cargo to invoke rustc in a pipelined fashion, speeding up crate graph compiles. | #z-archived-t-compiler/wg-pipelining |
Self-Profile | Active | Improving the -Z self-profile feature | #z-archived-t-compiler/wg-self-profile |
Traits | Active | Improving the trait-system design + implementation | #z-archived-t-compiler/wg-traits |