Stream: wg-async-foundations

Topic: blog post on our progress


nikomatsakis (Jul 08 2019 at 20:12, on Zulip):

Some time ago I wrote up a blog post about the stabilization plans:

https://gist.github.com/nikomatsakis/65d1a56991d60908d94be6171f8f5c2b

I am posting it here in hopes of getting a bit of feedback. It ends with a "call to help", so I might put in a bit more time trying to write some mentoring instructions.

nikomatsakis (Jul 08 2019 at 20:14, on Zulip):

cc @boats, @Taylor Cramer take a look at that post, if you get a chance :point_up:

Taylor Cramer (Jul 08 2019 at 21:01, on Zulip):

LGTM!

centril (Jul 08 2019 at 21:18, on Zulip):

Some remarks:

After this work is done, it will be possible to build async I/O based applications in Rust, though a number of rough edges remain.

It's already possible but less ergonomic than we want it to be. I think you can do s/possible/more ergonomic.

the std::future::Future trait, which defines the core future protocol (stabilized in 1.36.0!);

Linking to the Future trait would be ideal and stripping the path would also be more readable I think.

Basic async-await syntax

No "Basic async.await syntax? ;) Where are the built-in puns :stuck_out_tongue_wink:

or inherent methods:

Indentation of the function seems off... 2 spaces?

Eventually, we plan to extend support so that any place you can write a function,

I understand the point here, but extern async fn?

This book covers the nuts and bots

Typo here.

The same core compiler transform that enables async await should enable us to support Python- or JS-like generators, making it easy to write iterators.

(I'm not particularly a fan of this wording -- I think it's already easy to write iterators and the functional interface to these are one of my absolute favorite parts about Rust)

nikomatsakis (Jul 09 2019 at 09:24, on Zulip):

Whoops, sorry @centril I missed your comments. I made some edits to the post.

Last update: Nov 18 2019 at 01:50UTC