You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: posts/inside-rust/2022-02-22-compiler-team-ambitions-2022.md
+20-31Lines changed: 20 additions & 31 deletions
Original file line number
Diff line number
Diff line change
@@ -21,15 +21,15 @@ This document is structured into three parts: our [Overall Themes][] for this ye
21
21
Part of the motivation for this note is to encourage new contributors to get involved. We have a lot of newcomers, from individuals to large organizations, who are very excited about Rust's potential, and we want to show all of them what they can do to help.
22
22
23
23
This is a list of items, divided into a [Concrete Initiatives][] section and an [Aspirations][] section. We accumulated these items during discussions with the Compiler Team and the Compiler Contributors.
24
-
The [Concrete Initiatives][] have owners assigned; each has allocated time this year to attack the problem. The [Aspirations][], on the other hand, are items that the team agrees would be great areas for investment, but where we currently lack sufficient resources or experienced developers to make progress this year.
24
+
The [Concrete Initiatives][] have owners assigned; each has allocated time this year to attack the problem. The [Aspirations][], on the other hand, are items that the team agrees would be great areas for investment, but where we currently lack sufficient resources or experienced developers to make progress this year.
25
25
26
26
This is *not* a list of everything we will do this year; at least, not without help.
27
27
28
28
You can think of the [Aspirations][] part of the doc as an explicit call to arms: If you see something there that interests you, please reach out to the owners listed in that section to find out how you might be able to help.
29
29
30
30
As you read the document, it is useful to keep in mind that [Rust is not a company][mara-post]: The teams, and the leaders of the teams, do not establish goals in a top-down manner, nor do they hand out tasks in a round-robin fashion. Instead, we collectively (and iteratively) refine our a shared vision for the future, and take steps that hopefully move towards that future. Each contributor decides for themself how much time they can afford to contribute, and that can vary wildly between contributors. The goals that we set for the project must be aligned with the goals of our current and future contributors; otherwise, they just won't get done. We have processes (e.g. [RFCs](https://github.com/rust-lang/rfcs#readme), [MCPs](https://forge.rust-lang.org/compiler/mcp.html)) that try to ensure alignment; in some ways, a document like this one is just another tool for recalibrating alignment.
31
31
32
-
<!--
32
+
<!--
33
33
But the flip side of this is: if something really is important, then there almost certainly exists a contributor willing to work on it. The real hurdle then is *enabling* that contributor to succeed.
34
34
(Note: this is hard! Its not just about mentorship/education; its just as much about achieving *alignment* amongst the whole group!)
35
35
-->
@@ -46,26 +46,26 @@ But the flip side of this is: if something really is important, then there almos
This section is the closest thing to a "roadmap" we have for 2022. It is a list of important items with dedicated owners that have time allocated to make significant progress on the problem this year.
167
+
This section is the closest thing to a "roadmap" we have for 2022. It is a list of important items with dedicated owners that have time allocated to make significant progress on the problem this year.
168
168
169
169
### I-unsound issues (🦀)
170
170
@@ -186,28 +186,27 @@ Rust today does not allow `async fn` in a trait, so Async Rust code usually ends
186
186
187
187
#### async crashdump dissection
188
188
189
-
[mw], from Microsoft, is driving the [async crashdump initiative](https://rust-lang.github.io/async-crashdump-debugging-initiative/), which will enable developers to understand the control-flow stacks encoded in crashdumps for their async Rust programs. He is `@**mw**`[on zulip].
189
+
[michaelwoerister], from Microsoft, is driving the [async crashdump initiative](https://rust-lang.github.io/async-crashdump-debugging-initiative/), which will enable developers to understand the control-flow stacks encoded in crashdumps for their async Rust programs. He is `@**mw**`[on zulip].
190
190
191
191
There is a ton of other work being done in the Async Rust space. Check out the [Async Vision web site](https://rust-lang.github.io/wg-async/welcome.html) for more information.
192
192
193
-
194
193
### Debugging Initiatives (🦀)
195
194
196
195
[wesleywiser], from Microsoft, and [pnkfelix] are spinning up a wg-debugging working group. It will cover at least the following sub-items: improving Rust's debuginfo quality ([mw], [wesleywiser]), supporting split debuginfo ([davidtwco], from Huawei R&D UK), and better integration with trace-based debuggers like `rr` ([pnkfelix]). They are `@**Wesley Wiser**`, `@**pnkfelix**`, `@**mw**` and `@**davidtwco**`[on zulip].
197
196
198
197
The immediate goals for this initiative: establish the working group, determine priorities for the backlog of debugging issues, and find out what active users of debuggers miss most when they operate on Rust code.
199
198
200
199
### Faster Builds Initiatives (👩💻, 🛠️)
201
-
200
+
202
201
The Rust compiler's end-to-end latency is known to be a problem.
203
-
202
+
204
203
[lqd], sponsored by the Internet Security Research Group, is dedicating the majority of 2022 to working on this, partnering with Rust's compiler-performance working group as well as performance experts like [nnethercote] (from Futurewei Technologies). [lqd] has their own [living document](https://hackmd.io/3Dp68rTDSpWvRDfWF6lbMw?view) that lists areas under investigation, and [nnethercote] has a [roadmap under development](https://hackmd.io/YJQSj_nLSZWl2sbI84R1qA). They are `@**lqd**` and `@**nnethercote**`[on zulip].
205
204
206
205
[ISRG]: https://www.abetterinternet.org/
207
206
208
207
### Expressiveness Initiatives (👩💻, 🦀)
209
208
210
-
A common refrain we hear is: "I need feature X, but it's not implemented in rustc or stable."
209
+
A common refrain we hear is: "I need feature X, but it's not implemented in rustc or stable."
211
210
In Rust, we use an open Request-for-Comment (RFC) process for designing new features. Currently, we have [this set of RFCs approved][RFC tracking issue list]; here are some imporant features with dedicated owners that we expect forward movement on.
@@ -268,9 +267,9 @@ If you want to discuss more with us about past attempts and ideas for the future
268
267
269
268
#### Incremental Compilation Aspirations
270
269
271
-
Incremental compilation performance and stability are both ongoing concerns to the team. We *know* there is significant room to improve the effectiveness of incremental compilation, in terms of reducing the amount of redundant work done by successive `rustc` invocations.
270
+
Incremental compilation performance and stability are both ongoing concerns to the team. We *know* there is significant room to improve the effectiveness of incremental compilation, in terms of reducing the amount of redundant work done by successive `rustc` invocations.
272
271
273
-
In addition, there is a significant amount of work that could be done to improve our testing infrastructure for incremental compiliation which does not require deep knowledge of the compiler.
272
+
In addition, there is a significant amount of work that could be done to improve our testing infrastructure for incremental compiliation which does not require deep knowledge of the compiler.
274
273
275
274
If you want to learn more, reach out to [cjgillot] and [Aaron Hill]. They are `@**cjgillot**` and `@**Aaron Hill**`[on zulip].
276
275
@@ -320,11 +319,11 @@ If you are interested in helping in this area, please reach out to [pnkfelix]. T
320
319
321
320
#### Performance Dashboard
322
321
323
-
[perf.rust-lang.org][perf] is a dashboard that measures the performance of `rustc`, in terms of resources (time and memory) consumed during compilation. [@rust-timer] is a bot that summarizes whether a given Pull Request regressed or improved performance.
322
+
[perf.rust-lang.org][perf] is a dashboard that measures the performance of `rustc`, in terms of resources (time and memory) consumed during compilation. [@rust-timer] is a bot that summarizes whether a given Pull Request regressed or improved performance.
324
323
325
324
The performance working group has many ideas for things to improve in these tools, but limited resources. This is an area where you don't need any compiler expertise to make a huge impact; for example, our Web Front-end could use work. And Data Scientists might have useful insights into our problems. Beyond just measuring the compiler's own performance, we're also interested in measuring the runtime performance of produced binaries.
326
325
327
-
Reach out to [rylev], from Microsoft, and [simulacrum] (supported via [sponsorship](https://github.com/sponsors/Mark-Simulacrum)), performance working group lead, if you want to help. They are `@**rylev**` and `@**simulacrum**`[on zulip].
326
+
Reach out to [rylev], from Microsoft, and [Mark-Simulacrum] (supported via [sponsorship](https://github.com/sponsors/Mark-Simulacrum)), performance working group lead, if you want to help. They are `@**rylev**` and `@**simulacrum**`[on zulip].
328
327
329
328
[@rust-timer]: https://github.com/rust-timer
330
329
[perf]: https://perf.rust-lang.org/
@@ -362,13 +361,9 @@ Diagnostics improvements are an *excellent* first step for learning about how to
362
361
363
362
## Conclusion
364
363
365
-
Reading over this list, the number of items on it seems quite daunting.
364
+
Reading over this list, the number of items on it seems quite daunting! We believe these initiatives will provide the highest impact to the Rust community by helping to fulfill Rust's promise, delighting Rust developers and improving our contributor workflows and aligns well with the results of the [2021 Rust Survey](https://blog.rust-lang.org/2022/02/15/Rust-Survey-2021.html).
366
365
367
-
Do we really think we can get all this stuff done in one year?
368
-
369
-
No, we don't! 😂
370
-
371
-
The introduction explicitly said the latter half are things that *don't* have resources attached to them. And the word "aspiration" was chosen to reinforce that.
366
+
While we think we will be able to make signficant progress on these initiatives this year, project estimation is a difficult and inexact science, especially for open source projects. What we will achieve is ultimately a result of who decides to contribute. Our aspirational goals are currently just that: aspriations.
372
367
373
368
This is where you all, the Rust community (including *future members* of that community) come into the picture. Each item has one or two people listed with it; if you're feeling inspired, please do contact us!
374
369
@@ -382,7 +377,7 @@ The compiler team leadership plans to put out a post in June summarizing the pro
382
377
383
378
#### I did not see any mention of monadic burritos (or other non-Rust language feature); why is that not part of your plan?
384
379
385
-
The scope of this doc is largely restricted to Compiler Team issues. Language design work is done by the Language Design team. You can reach out to them about their initiatives for this year and beyond.
380
+
The scope of this doc is largely restricted to Compiler Team issues. Language design work is done by the Language Team. You can reach out to them about their initiatives for this year and beyond.
386
381
387
382
#### What do I do if I'm interested in learning more about a specific item on this list?
388
383
@@ -401,9 +396,3 @@ This is not a problem! Many members of our community learned about compilers by
401
396
[Contributing to the Compiler]: https://www.youtube.com/watch?v=vCODCbUSA_w
402
397
403
398
In addition, there are areas in this project where people without compiler expertise can have impact. For example, as mentioned in the [Performance Dashboard](#Performance-Dashboard) section, some of our internal tools could use some web front-end work.
0 commit comments