owned this note
owned this note
Published
Linked with GitHub
# Lang Team Roadmap Discussion
## Goal
* A prioritized list of problems that each person is interesting in tackling
* top ~2 are being actively shepherded
* remainder are potential backlog
* This can be exposed publicly as our current thinking
* But it also serves as a "Draft roadmap" that can be fed up into the core team process
## Non-goal
* Let's not spend time in the weeds of specific ideas, or arguing about details of the solutions.
## Relevant links
Here are a few links that may be helpful:
* [Ergonomics Initiative Roundup](https://paper.dropbox.com/doc/Topic-Ergonomics-Initiative-Roundup--AoIlMiPK0nvkflkpN6EfF3JxAg-9Br9Lwh5C9zvrBAGp1z2Y), from this year's All Hands
* [2021 Lang Team Roadmap Deliverables](https://paper.dropbox.com/doc/Topic-2021-Lang-Team-Roadmap-Deliverables--AoJcryTY2BpgsO9JgirZqvjfAg-Mn5D09BV8IcypxtgmJmeN)
## Before the meeting
Before the meeting, please fill out these questions in your section.
* List 2 or 3 problems you think are important that you would like to personally move along
* What assistance would you need to do so?
* What are some of the goals you would have in doing so?
* List some problems where you would want to be closely involved in shaping the solution, but you're not prepared to lead it
* Either because you lack bandwidth or expertise
* Or because the problem doesn't directly affect you, but the solutions might =)
* This comes with an obligation to help understand and better document the problem, and seek out mutually satisfying solutions
* List some problems you think should get done, but you don't feel the need to be closely involved
* These may be things you might eventually get to if you complete higher-priority items
* Please tag any items you think might require an edition, and briefly note why.
Feel free to add other notes you think are important but which don't fit the above structure.
### Centril
### cramertj
### eddyb
### joshtriplett
### nikomatsakis
#### Things I would like to personally move along
I recognize this is perhaps more than I can handle, just putting out what I *want* to do =)
**RFC improvements**
I still think we need process improvements. It's a hard problem and it's going to require dedicated attention. I want to see this move along very much.
**Chalk and trait system.**
This is also tied in with T-compiler goals, but I am most passionate about pushing along our trait system. Specifically, I would like to:
* integrate the chalk system into rustc and extend the reference with a formal lowering
* in so doing, implement
* generic associated types
* implied bounds
* specialization, perhaps a minimal variant
On the compiler side, this work also bleeds into an attempt to re-implement our type-checker in a more isolated, well-specified way.
**Polonius and borrow checker improvements.**
I would like to see us continue the trend from NLL and adopt Polonius, which would also mean a more accepting borrow checker. I would like to see the implementation (and associated design work) on borrowing in closures move along.
**Async programming.**
We have async-await, but I think we need more -- things like `AsyncRead`, async fn in traits, and so forth. A lot of this is intimately tied up with the trait work as well, but not all of it by a long shot. I might also be happy to lead in this area, as I think I have acquired some amount of context, but I am concerned about time.
#### Things I would like to see move along, and I want to be closely involved
**impl Trait**
I would like to see `impl Trait` get "finished" -- I have some definite opinions about what finished means. There is obvious overlap between this and the trait work, and it's tied in deeply with async programming too. It's also very implementation heavy, though I think there are design questions.
**Reference**
I think we need more work on the reference. I care about the semantics of the language, obviously, and I think a lot of the work I have in mind (trait system, polonius, type checker).
#### Things I would like to see move along, but I don't feel the need to be involved
**Unsafe code guidelines.**
I can't quite tell where to put those. I have opinions and -- occasionally -- strong ones. I would like to follow along and I give my opinion, but ultimately I think I would prefer if we find a few people to make the ultimate decisions.
#### Other thoughts and unknowns
I've filled this out with my personal passions, but I'd like to spend some time surveying a bit the open RFCs and also just the needs I see reflected in 2020 blog posts, I haven't had much time for that.
I also don't think we should forget about some of the great ideas from the ergonomics initiative, but I haven't had time to really go over and round those up.
### pnkfelix
### scottmcm
### withoutboats