Stream: wg-async-foundations

Topic: weekly meeting 2019.06.04


nikomatsakis (Jun 04 2019 at 17:00, on Zulip):

Meeting @WG-async-foundations ?

davidtwco (Jun 04 2019 at 17:01, on Zulip):

:wave:

Florian Gilcher (Jun 04 2019 at 17:01, on Zulip):

I've got an overlapping meeting with Rust London, but might join in later.

nikomatsakis (Jun 04 2019 at 17:01, on Zulip):

I guess we ought to check in on implementation blockers?

nikomatsakis (Jun 04 2019 at 17:02, on Zulip):

(I've had some thoughts about documentation I wanted to chat over too)

nikomatsakis (Jun 04 2019 at 17:03, on Zulip):

also cc @boats -- for some reason, I couldn't add them to the zulip user group (@davidtwco, maybe try?)

davidtwco (Jun 04 2019 at 17:03, on Zulip):

They're already in it?

nikomatsakis (Jun 04 2019 at 17:03, on Zulip):

oh, heh, maybe that's why

boats (Jun 04 2019 at 17:04, on Zulip):

heh

nikomatsakis (Jun 04 2019 at 17:04, on Zulip):

I'm trying to remember, @davidtwco, do we have a dropbox paper or something with handy links?

nikomatsakis (Jun 04 2019 at 17:04, on Zulip):

I wanted a "all async-await issues without a label"

nikomatsakis (Jun 04 2019 at 17:05, on Zulip):

It seems like there are quite a number of untriaged issues

davidtwco (Jun 04 2019 at 17:06, on Zulip):

These are the only async/await paper documents I know of:

nikomatsakis (Jun 04 2019 at 17:07, on Zulip):

OK. Well, for now we'll wing it.

nikomatsakis (Jun 04 2019 at 17:07, on Zulip):

I was thinking of this:

nikomatsakis (Jun 04 2019 at 17:08, on Zulip):

sound reasonable?

nikomatsakis (Jun 04 2019 at 17:08, on Zulip):

(to be clear, deferred to me means -- doesn't block stabilization -- people still might want to work on it)

nikomatsakis (Jun 04 2019 at 17:09, on Zulip):

A rustc-internal compile error on future and task API #61482

nikomatsakis (Jun 04 2019 at 17:09, on Zulip):

seems like (a) a candidate for documentation and (b) not a blocking bug..?

nikomatsakis (Jun 04 2019 at 17:09, on Zulip):

I'll take some notes in this dropbox paper for now

boats (Jun 04 2019 at 17:10, on Zulip):

That's using gen_future which is supposed to be never stabilized and removed eventually

boats (Jun 04 2019 at 17:11, on Zulip):

poll_with_tls_context is not supposed to become part of the stable API

nikomatsakis (Jun 04 2019 at 17:11, on Zulip):

ok

nikomatsakis (Jun 04 2019 at 17:11, on Zulip):

so maybe not docs either

nikomatsakis (Jun 04 2019 at 17:11, on Zulip):

[ICE] async fn vs lint order #61452

Nemo157 (Jun 04 2019 at 17:11, on Zulip):

Should poll_with_tls_context etc be doc(hidden)?

nikomatsakis (Jun 04 2019 at 17:11, on Zulip):

seems ungreat

nikomatsakis (Jun 04 2019 at 17:12, on Zulip):

Should poll_with_tls_context etc be doc(hidden)?

want to open a bug for that?

nikomatsakis (Jun 04 2019 at 17:12, on Zulip):

easy one to fix :)

nikomatsakis (Jun 04 2019 at 17:12, on Zulip):

or a PR, maybe equally easy

nikomatsakis (Jun 04 2019 at 17:13, on Zulip):

[ICE] async fn vs lint order #61452

@davidtwco I wonder if this is related to the desugaring work you were doing somehow?

nikomatsakis (Jun 04 2019 at 17:13, on Zulip):

I'm going to mark it as blocking, seems pretty bad

davidtwco (Jun 04 2019 at 17:13, on Zulip):

It is possible, I can investigate.

nikomatsakis (Jun 04 2019 at 17:13, on Zulip):

seems like the mut setting on parameters is getting us into trouble, in any case

nikomatsakis (Jun 04 2019 at 17:14, on Zulip):

Broken MIR in futures generator (async/await) #61442

nikomatsakis (Jun 04 2019 at 17:14, on Zulip):

@Matthew Jasper did an excellent minimization

nikomatsakis (Jun 04 2019 at 17:15, on Zulip):

TL;DR some kind of ICE...

nikomatsakis (Jun 04 2019 at 17:15, on Zulip):

@Zoxc any chance you might want to take a look at that? :point_up:

nikomatsakis (Jun 04 2019 at 17:15, on Zulip):

I'll mark it as blocking for now

nikomatsakis (Jun 04 2019 at 17:16, on Zulip):

ICE when combining unsized locals and async #61335

nikomatsakis (Jun 04 2019 at 17:16, on Zulip):

seems like "not blocking", more a problem for the "unsized locals" work

nikomatsakis (Jun 04 2019 at 17:17, on Zulip):

I guess maybe it's just a matter of an error message

nikomatsakis (Jun 04 2019 at 17:17, on Zulip):

but still

boats (Jun 04 2019 at 17:17, on Zulip):

yea shouldnt block since you cant get it on stable

nikomatsakis (Jun 04 2019 at 17:18, on Zulip):

async/await borrows more around await points than necessary #61211

nikomatsakis (Jun 04 2019 at 17:18, on Zulip):

we've seen this before I suspect, probably just a dup of another issue

boats (Jun 04 2019 at 17:18, on Zulip):

yea its a recurring issue

boats (Jun 04 2019 at 17:19, on Zulip):

typeck needs to get smarter about figuring out what is still live at each await point, i dont think it should block

nikomatsakis (Jun 04 2019 at 17:19, on Zulip):

I thnk it's a dup of https://github.com/rust-lang/rust/issues/57017

nikomatsakis (Jun 04 2019 at 17:19, on Zulip):

yeah, but it's pretty high priority

boats (Jun 04 2019 at 17:19, on Zulip):

agreed

boats (Jun 04 2019 at 17:20, on Zulip):

diagnostics on futures not being send is also an issue

boats (Jun 04 2019 at 17:20, on Zulip):

in a more general way

nikomatsakis (Jun 04 2019 at 17:20, on Zulip):

unused-lifetimes lint false-positives with async functions #61115

nikomatsakis (Jun 04 2019 at 17:20, on Zulip):

diagnostics on futures not being send is also an issue

do we have an issue filed for that?

nikomatsakis (Jun 04 2019 at 17:20, on Zulip):

since the lint is not (presently) enabled by default, going to mark as deferred I think?

nikomatsakis (Jun 04 2019 at 17:21, on Zulip):

not entirely sure but doesn't feel highest priority-- otoh maybe not so hard to do

nikomatsakis (Jun 04 2019 at 17:21, on Zulip):

I added it to a list int he dropbox paper to come back to maybe to try and get somebody to poke at it

nikomatsakis (Jun 04 2019 at 17:22, on Zulip):

(@Giles Cope still interested in async await hacking?)

nikomatsakis (Jun 04 2019 at 17:22, on Zulip):

Don't ignore generator fields in miri #60889

@tmandry -- I presume this is not a blocker

nikomatsakis (Jun 04 2019 at 17:22, on Zulip):

future miscompiling to ud2 #60709

nikomatsakis (Jun 04 2019 at 17:23, on Zulip):

just a "needs test"

nikomatsakis (Jun 04 2019 at 17:23, on Zulip):

async / await + Box<Future> + Send does not compile #60658

nikomatsakis (Jun 04 2019 at 17:24, on Zulip):

that error is .. not very goo

nikomatsakis (Jun 04 2019 at 17:25, on Zulip):

I suspect I know what the problem is here though

nikomatsakis (Jun 04 2019 at 17:25, on Zulip):

I'll leave some comments -- but basically there are some cases where the type-checker can make semi-arbitrary choices about lifetimes -- I wonder if this is related to that. Maybe not.

nikomatsakis (Jun 04 2019 at 17:26, on Zulip):

I doubt this is especially specific to async-await, probably can make an impl-trait example

nikomatsakis (Jun 04 2019 at 17:26, on Zulip):

Defer?

nikomatsakis (Jun 04 2019 at 17:27, on Zulip):

Doesn't "feel" like something a lot of people will hit but I don't know for sure

nikomatsakis (Jun 04 2019 at 17:27, on Zulip):

Are blanket Future impls necessary? #60645

Taylor Cramer (Jun 04 2019 at 17:27, on Zulip):

"yes, they are"

nikomatsakis (Jun 04 2019 at 17:27, on Zulip):

close?

nikomatsakis (Jun 04 2019 at 17:28, on Zulip):

Generator size: unwinding and drops force extra generator state allocation #59123

centril (Jun 04 2019 at 17:28, on Zulip):

I can't talk much atm but I am overall concerned that we emphasising the M in MVP too much and letting pretty bad paper cuts slide making the stabilisation too much focused on early adopters.

nikomatsakis (Jun 04 2019 at 17:28, on Zulip):

Are you referring to issues that I've been marking as defer, or something else?

nikomatsakis (Jun 04 2019 at 17:30, on Zulip):

well, i'd like to talk about that, but I'd also like to finish this lis, so I'll move a bit forward and we'll circle back :)

nikomatsakis (Jun 04 2019 at 17:30, on Zulip):

I'm not sure what's up with #59123

centril (Jun 04 2019 at 17:31, on Zulip):

Omw to the hospital atm so cannot elaborate right now

Taylor Cramer (Jun 04 2019 at 17:31, on Zulip):

:O

nikomatsakis (Jun 04 2019 at 17:32, on Zulip):

OK. Duly noted. Hope all is well

Taylor Cramer (Jun 04 2019 at 17:32, on Zulip):

Hope y'all are okay <3

nikomatsakis (Jun 04 2019 at 17:32, on Zulip):

I'm not sure what's up with #59123

ok, I sort of understand now. subtle interaction

centril (Jun 04 2019 at 17:32, on Zulip):

(I'm alright, my dad needs attending to)

Taylor Cramer (Jun 04 2019 at 17:32, on Zulip):

@tmandry has been all over this one

nikomatsakis (Jun 04 2019 at 17:32, on Zulip):

blocking in the same sense as the other size-related issue?

nikomatsakis (Jun 04 2019 at 17:33, on Zulip):

ICE: Type parameter W/#1 out of range when substituting #55872

nikomatsakis (Jun 04 2019 at 17:33, on Zulip):

this one worries me and I think it should be investigated.

Taylor Cramer (Jun 04 2019 at 17:34, on Zulip):

@nikomatsakis yeah, I think that's the right call (WRT #59123)

nikomatsakis (Jun 04 2019 at 17:34, on Zulip):

@davidtwco if you're interested, I'd be happy to work with you on it (I know you were looking for excuses to stray into new parts of the code, this part might be unfamiliar to you)

davidtwco (Jun 04 2019 at 17:34, on Zulip):

Of course, sounds good.

nikomatsakis (Jun 04 2019 at 17:34, on Zulip):

(though it may be tied to existential type more than async-await)

nikomatsakis (Jun 04 2019 at 17:34, on Zulip):

but type parameter out of range usually indicates a missing substitution

nikomatsakis (Jun 04 2019 at 17:34, on Zulip):

which could mean we are accepting total garbage

nikomatsakis (Jun 04 2019 at 17:36, on Zulip):

OK, that's all the untriaged issues.

nikomatsakis (Jun 04 2019 at 17:36, on Zulip):

I was thinking of this:

this was my proposed agenda

nikomatsakis (Jun 04 2019 at 17:37, on Zulip):

Any updates on blocking issues -- we might consider finding assignees for some of them too.

nikomatsakis (Jun 04 2019 at 17:37, on Zulip):

(for my part, i've been working on improvements to lifetime inference, making progress, aiming to fix https://github.com/rust-lang/rust/issues/56238)

davidtwco (Jun 04 2019 at 17:38, on Zulip):

(I'm still blocked on this low-priority diagnostic improvement)

nikomatsakis (Jun 04 2019 at 17:38, on Zulip):

async fn + rustfmt don't "just work" inside of RLS #61072

this is one where it's not clear how much it should block -- though I think it is a pretty big problem with user experience if you're using rustfmt

nikomatsakis (Jun 04 2019 at 17:39, on Zulip):

not sure if @Igor Matuszewski has any advice for a fix tho

Taylor Cramer (Jun 04 2019 at 17:39, on Zulip):

if you're using rustfmt

note that this is "if you're using rustfmt and haven't set the edition in your rustfmt.toml", right?

nikomatsakis (Jun 04 2019 at 17:40, on Zulip):

yes, I think that's right

nikomatsakis (Jun 04 2019 at 17:40, on Zulip):

I never considered even creating a rustfmt.toml before :)

nikomatsakis (Jun 04 2019 at 17:40, on Zulip):

i guess that is an option though...

nikomatsakis (Jun 04 2019 at 17:41, on Zulip):

well I think the two I'd like to assign are https://github.com/rust-lang/rust/issues/61442 and https://github.com/rust-lang/rust/issues/55872 --

nikomatsakis (Jun 04 2019 at 17:41, on Zulip):

(not sure who's got time and is able to do some bug fixing)

nikomatsakis (Jun 04 2019 at 17:41, on Zulip):

but maybe we should come back to that and use this remaining time to focus instead on broader topics

davidtwco (Jun 04 2019 at 17:42, on Zulip):

I've assigned myself to the latter.

nikomatsakis (Jun 04 2019 at 17:42, on Zulip):

OK, let me lay out a few documentation thoughts then? Anybody else have other things they wanted to bring up?

nikomatsakis (Jun 04 2019 at 17:43, on Zulip):

I was talking to @Yoshua Wuyts and @Florian Gilcher a fair amount about this and we had a few thoughts. We talked last time about the need for low-level docs but also more "intermediate level" to help people in using futures

nikomatsakis (Jun 04 2019 at 17:45, on Zulip):

I've been sort of toying with what an outline might look like. It seems like it'd be useful to try and collect the "current workarounds" or common fixes that experienced folks wind up doing a lot --

nikomatsakis (Jun 04 2019 at 17:45, on Zulip):

one idea was to walk through implementing your own stream and see what is required and/or maybe a futures combinator? the latter might help to discuss things around pin etc, although it may also be that 99% of folks should use async await for that? (maybe show how to wrap one?)

Taylor Cramer (Jun 04 2019 at 17:46, on Zulip):

IMO implementing your own stream falls out pretty naturally once you know how to implement your own future

Taylor Cramer (Jun 04 2019 at 17:47, on Zulip):

it's just that, but returning an Option

nikomatsakis (Jun 04 2019 at 17:47, on Zulip):

either one seems like a reasonable thing to step through

Taylor Cramer (Jun 04 2019 at 17:47, on Zulip):

Yup, and the async book already does the latter

nikomatsakis (Jun 04 2019 at 17:49, on Zulip):

OK, I'm skimming now

nikomatsakis (Jun 04 2019 at 17:49, on Zulip):

I guess one thing worth talking about is who might do the work of updating the book etc

nikomatsakis (Jun 04 2019 at 17:51, on Zulip):

hmm I can't find the general TOC that I was toying around with now :)

nikomatsakis (Jun 04 2019 at 17:52, on Zulip):

but I see there's some chatting over in the async book topic -- maybe we'll hash it out over there

Taylor Cramer (Jun 04 2019 at 17:52, on Zulip):

@nikomatsakis yeah, there's lots to discuss on that front, and it probably deserves its own separate meeting as I commented in that stream

nikomatsakis (Jun 04 2019 at 17:52, on Zulip):

wfm

nikomatsakis (Jun 04 2019 at 17:55, on Zulip):

My last thought is that I'd like to be communicating current status and plans more regularly. I'm thinking that it'd be a good idea to have a blog post summarizing the current efforts (e.g., major implementation bugs we are working on, advertising the book and plans to update it, announcing that this meeting exists) -- anybody feel keen to write that? :)

nikomatsakis (Jun 04 2019 at 17:55, on Zulip):

I might be willing to do so but also happy if others want to

Last update: Nov 18 2019 at 01:05UTC