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