Skip to content

Commit f26ea02

Browse files
authored
Merge pull request #194 from rust-lang/tmandry-patch-3
Update async.md
2 parents e1a07ea + b136b01 commit f26ea02

File tree

1 file changed

+36
-11
lines changed

1 file changed

+36
-11
lines changed

src/2025h1/async.md

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Despite async Rust's popularity, using async I/O makes Rust significantly harder
3030

3131
* Common language features do not support async, meaning that [users cannot write Rust code in the way they are accustomed to](https://rust-lang.github.io/wg-async/vision/submitted_stories/status_quo/barbara_plays_with_async.html?highlight=closure#the-story):
3232
* [x] ~~[traits](https://rust-lang.github.io/wg-async/vision/submitted_stories/status_quo/alan_needs_async_in_traits.html)~~ (they [do now][afitblog], though gaps remain)
33-
* [x] closures (about to [stabilize](https://github.com/rust-lang/rust/pull/132706))
33+
* [x] ~~closures~~ ([stabilized](https://github.com/rust-lang/rust/pull/132706))
3434
* [ ] [drop](https://rust-lang.github.io/wg-async/vision/submitted_stories/status_quo/alan_finds_database_drops_hard.html)
3535
In many cases there are workarounds or crates that can close the gap, but users have to learn about and find those crates.
3636
* Common async idioms have "sharp edges" that lead to unexpected failures, forcing users to manage [cancellation safety](https://rust-lang.github.io/wg-async/vision/submitted_stories/status_quo/barbara_gets_burned_by_select.html), subtle [deadlocks](https://rust-lang.github.io/wg-async/vision/submitted_stories/status_quo/aws_engineer/solving_a_deadlock.html) and other failure modes for [buffered streams](https://rust-lang.github.io/wg-async/vision/submitted_stories/status_quo/barbara_battles_buffered_streams.html). See also tmandry's blog post on [Making async Rust reliable](https://tmandry.gitlab.io/blog/posts/making-async-reliable/)).
@@ -51,13 +51,18 @@ Despite async Rust's popularity, using async I/O makes Rust significantly harder
5151
#### Improve ergonomics around `Pin`
5252

5353
* Ratify and implement an RFC for auto-reborrowing of pinned references
54-
* Stretch goal: Ratify an RFC for safe pin projection
54+
* Stretch goal: Discuss and implement a design for safe pin projection
5555

5656
#### Work toward asynchronous generators
5757

58-
* Ratify an RFC for synchronous generators
59-
* Review 1-2 RFCs for asynchronous iteration trait with the lang and libs-api teams and decide on the core trait to be stabilized
60-
* Stretch goal: Ratify an RFC for unsafe binders and RTN in type position
58+
* Have design meetings and ratify an RFC for synchronous generators
59+
* Have a design meeting for asynchronous iteration
60+
* Stretch goal: Ratify an RFC for unsafe binders
61+
62+
In H2 we hope to tackle the following:
63+
64+
* RTN in type position
65+
* Ratified RFC for asynchronous iteration
6166

6267
### The "shiny future" we are working towards
6368

@@ -98,6 +103,14 @@ This section defines the specific work items that are planned and who is expecte
98103
| Standard reviews | ![Team][] [types] [compiler] | |
99104
| Stabilization decision | ![Team][] [lang] | |
100105

106+
### Unsafe binders
107+
108+
| Task | Owner(s) or team(s) | Notes |
109+
|-------------------------|------------------------------|---------------|
110+
| Initial implementation | @compiler-errors | Stretch goal |
111+
| Author RFC | @nikomatsakis | Stretch goal |
112+
| RFC decision | ![Team][] [lang] | Stretch goal |
113+
101114
### Implementable trait aliases
102115

103116
| Task | Owner(s) or team(s) | Notes |
@@ -107,6 +120,13 @@ This section defines the specific work items that are planned and who is expecte
107120
| Standard reviews | ![Team][] [types] [compiler] | |
108121
| RFC decision | ![Team][] [lang] [types] | |
109122

123+
### `async fn` in `dyn Trait`
124+
125+
| Task | Owner(s) or team(s) | Notes |
126+
|----------------------|------------------------------|--------------|
127+
| Lang-team experiment | @nikomatsakis | (Approved) |
128+
| Implementation | @compiler-errors | Stretch goal |
129+
110130
### Pin reborrowing
111131

112132
| Task | Owner(s) or team(s) | Notes |
@@ -115,6 +135,14 @@ This section defines the specific work items that are planned and who is expecte
115135
| Author RFC | @eholk | |
116136
| RFC decision | ![Team][] [lang] | |
117137

138+
### Safe pin projection
139+
140+
| Task | Owner(s) or team(s) | Notes |
141+
|----------------------|---------------------|--------------|
142+
| Lang-team experiment | ![Team][] [lang] | |
143+
| Implementation | | Stretch goal |
144+
| Design meeting | ![Team][] [lang] | Stretch goal |
145+
118146
### Trait for generators (sync)
119147

120148
| Task | Owner(s) or team(s) | Notes |
@@ -126,12 +154,9 @@ This section defines the specific work items that are planned and who is expecte
126154

127155
### Trait for async iteration
128156

129-
| Task | Owner(s) or team(s) | Notes |
130-
|----------------|-----------------------------|---------------------|
131-
| Author RFC | | |
132-
| RFC decision | ![Team][] [libs-api] [lang] | |
133-
| Design meeting | ![Team][] [lang] | 2 meetings expected |
134-
| Implementation | | |
157+
| Task | Owner(s) or team(s) | Notes |
158+
|----------------|-----------------------------|-------|
159+
| Design meeting | ![Team][] [lang] [libs-api] | |
135160

136161
### Dynosaur 1.0
137162

0 commit comments

Comments
 (0)