|
| 1 | +# Working Areas |
| 2 | + |
| 3 | +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: |
| 4 | + |
| 5 | +Name | Status | Short Description | Zulip Stream |
| 6 | +---- | ------ | ----------------- | ------------ |
| 7 | +[Async-await Implementation](working-groups/async-await/) | Active | Implementing async-await | [#wg-async][async-await_stream] |
| 8 | +[Diagnostics](working-groups/diagnostics/) | Active | Use crates.io crates for diagnostics rendering and make emitting diagnostics nicer. | [#t-compiler/diagnostics][diagnostics_stream] |
| 9 | +[LLVM](working-groups/llvm/) | Active | Working with LLVM upstream to represent Rust in its development | [#t-compiler/llvm][llvm_stream] |
| 10 | +[MIR Optimizations](working-groups/mir-opt/) | Active | Write MIR optimizations and refactor the MIR to be more optimizable. | [#t-compiler/mir-opt][mir-opt-stream] |
| 11 | +[Parallel-rustc](working-groups/parallel-rustc/) | Paused | Making parallel compilation the default for rustc | [#t-compiler/parallel-rustc][parallel-rustc_stream] |
| 12 | +[Polonius](working-groups/polonius/) | Active | Exploring the integration of the "NLL 2.0"-like ["Polonius analysis"][Polonius] into rustc | [#t-types/polonius][polonius_stream] |
| 13 | +[RLS 2.0](working-groups/rls-2.0/) | Active | Experimenting with a new compiler architecture tailored for IDEs | [#t-compiler/rust-analyzer][rls20_stream] |
| 14 | +[Rustc Dev Guide](working-groups/rustc-dev-guide/) | Active | Make the compiler easier to learn by ensuring that rustc-dev-guide is "complete" | [#t-compiler/rustc-dev-guide][rustc-dev-guide_stream] |
| 15 | + |
| 16 | +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): |
| 17 | + |
| 18 | +Name | Status | Short Description | Zulip Stream |
| 19 | +---- | ------ | ----------------- | ------------ |
| 20 | +[Meta](working-groups/meta/) | Paused | How compiler team organizes itself | [#t-compiler/meta][meta_stream] |
| 21 | +[Non-Lexical Lifetimes (NLL)](working-groups/nll/) | Retired | Implementing non-lexical lifetimes | [#t-compiler/nll][nll_stream] |
| 22 | +[Polymorphization](working-groups/polymorphization/) | Active | Implement an analysis to detect when functions can remain polymorphic during code generation. | [#t-compiler/polymorphization][polymorphization_stream] |
| 23 | +[Prioritization](working-groups/prioritization/) | Active | Triaging bugs, mainly deciding if bugs are critical (potential release blockers) or not. | [#t-compiler/prioritization][prioritization_stream] |
| 24 | +[Profile-Guided Optimization](working-groups/pgo/) | Retired | Implementing profile-guided optimization for rustc | [#t-compiler/profile-guided-optimization][pgo_stream] |
| 25 | +[RFC 2229](working-groups/rfc-2229/) | Retired | Make a closure capture individual fields of the variable rather than the entire composite variable | [#t-compiler/rfc-2229][rfc-2229-stream] |
| 26 | +[Rustc pipelining](working-groups/pipelining/) | Retired | Enable Cargo to invoke rustc in a pipelined fashion, speeding up crate graph compiles. | [#t-compiler/pipelining][pipelining-stream] |
| 27 | +[Self-Profile](working-groups/self-profile/) | Active | Improving the `-Z self-profile` feature | [#t-compiler/self-profile][self-profile_stream] |
| 28 | +[Traits](working-groups/traits/) | Active | Improving the trait-system design + implementation | [#t-compiler/traits][traits_stream] |
| 29 | + |
| 30 | +[Weekly, in Zulip]: #meeting-calendar |
| 31 | +[nll_stream]: https://rust-lang.zulipchat.com/#narrow/stream/122657-t-compiler.2Fwg-nll |
| 32 | +[llvm_stream]: https://rust-lang.zulipchat.com/#narrow/stream/187780-t-compiler.2Fwg-llvm |
| 33 | +[meta_stream]: https://rust-lang.zulipchat.com/#narrow/stream/185694-t-compiler.2Fwg-meta |
| 34 | +[rls20_stream]: https://rust-lang.zulipchat.com/#narrow/channel/185405-t-compiler.2Frust-analyzer |
| 35 | +[traits_stream]: https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits |
| 36 | +[async-await_stream]: https://rust-lang.zulipchat.com/#narrow/channel/187312-wg-async |
| 37 | +[self-profile_stream]: https://rust-lang.zulipchat.com/#narrow/stream/187831-t-compiler.2Fwg-self-profile |
| 38 | +[pgo_stream]: https://rust-lang.zulipchat.com/#narrow/stream/187830-t-compiler.2Fwg-profile-guided-optimization |
| 39 | +[parallel-rustc_stream]: https://rust-lang.zulipchat.com/#narrow/stream/187679-t-compiler.2Fwg-parallel-rustc |
| 40 | +[rfc-2229-stream]: https://rust-lang.zulipchat.com/#narrow/stream/189812-t-compiler.2Fwg-rfc-2229 |
| 41 | +[mir-opt-stream]: https://rust-lang.zulipchat.com/#narrow/stream/189540-t-compiler.2Fwg-mir-opt |
| 42 | +[pipelining-stream]: https://rust-lang.zulipchat.com/#narrow/stream/195180-t-compiler.2Fwg-pipelining |
| 43 | +[polonius_stream]: https://rust-lang.zulipchat.com/#narrow/channel/186049-t-types.2Fpolonius |
| 44 | +[polymorphization_stream]: https://rust-lang.zulipchat.com/#narrow/stream/216091-t-compiler.2Fwg-polymorphization |
| 45 | +[rustc-dev-guide_stream]: https://rust-lang.zulipchat.com/#narrow/stream/196385-t-compiler.2Fwg-rustc-dev-guide |
| 46 | +[Polonius]: https://github.com/rust-lang/polonius |
| 47 | +[diagnostics_stream]: https://rust-lang.zulipchat.com/#narrow/stream/147480-t-compiler.2Fwg-diagnostics |
| 48 | +[prioritization_stream]: https://rust-lang.zulipchat.com/#narrow/stream/227806-t-compiler.2Fwg-prioritization |
0 commit comments