Stream: wg-async-foundations

Topic: meeting 2020.01.07


tmandry (Jan 07 2020 at 17:28, on Zulip):

@WG-async-foundations reminder that the first meeting of 2020 is in 30 minutes or so :tada:

tmandry (Jan 07 2020 at 18:01, on Zulip):

@WG-async-foundations okay, let's get started

tmandry (Jan 07 2020 at 18:01, on Zulip):

first, issue triage

tmandry (Jan 07 2020 at 18:01, on Zulip):

Uncategorized issues

tmandry (Jan 07 2020 at 18:01, on Zulip):

there are a lot of these

nikomatsakis (Jan 07 2020 at 18:01, on Zulip):

Oh dear :)

tmandry (Jan 07 2020 at 18:02, on Zulip):

rustc compiler crashed when using async in loop #67893

Giles Cope (Jan 07 2020 at 18:02, on Zulip):

it's great - means lots of people are using it!

tmandry (Jan 07 2020 at 18:02, on Zulip):

this one is an ICE and _appears_ to have a reproducer, though I don't think anyone has confirmed they can reproduce

tmandry (Jan 07 2020 at 18:03, on Zulip):

so we should mark it as OnDeck, I think

nikomatsakis (Jan 07 2020 at 18:03, on Zulip):

seems like it might be due to using .await outside of any async section?

centril (Jan 07 2020 at 18:03, on Zulip):

needs reduction, not self-contained

nikomatsakis (Jan 07 2020 at 18:03, on Zulip):

oh, it is in an async fn

nikomatsakis (Jan 07 2020 at 18:03, on Zulip):

never mind

Giles Cope (Jan 07 2020 at 18:03, on Zulip):

I can try and reduce that one

nikomatsakis (Jan 07 2020 at 18:03, on Zulip):

yeah, I agree, first thing is to try and reduce i

tmandry (Jan 07 2020 at 18:03, on Zulip):

yes, the first thing to do would be to reduce

tmandry (Jan 07 2020 at 18:03, on Zulip):

jinx

tmandry (Jan 07 2020 at 18:03, on Zulip):

okay, I'll triage and assign you, @Giles Cope

centril (Jan 07 2020 at 18:04, on Zulip):

@Giles Cope for this one I'd recommend taking the file and then mocking the necessary interfaces

centril (Jan 07 2020 at 18:04, on Zulip):

a constructive approach rather than pure "remove and recompile"

Giles Cope (Jan 07 2020 at 18:05, on Zulip):

ok. I've got the remove and recompile automated though :-)

tmandry (Jan 07 2020 at 18:05, on Zulip):

moving on

tmandry (Jan 07 2020 at 18:05, on Zulip):

ok. I've got the remove and recompile automated though :-)

curious, what tool do you use?

tmandry (Jan 07 2020 at 18:05, on Zulip):

async fn ICEs in macro on stable #67778

Giles Cope (Jan 07 2020 at 18:05, on Zulip):

rust-reduce

tmandry (Jan 07 2020 at 18:06, on Zulip):

this one's an ICE and it looks like @csmoe has already been looking into it

centril (Jan 07 2020 at 18:06, on Zulip):

what a lovely backtrace

nikomatsakis (Jan 07 2020 at 18:06, on Zulip):

seems like it, too, needs a minimization?

centril (Jan 07 2020 at 18:06, on Zulip):

yeah

centril (Jan 07 2020 at 18:07, on Zulip):

I wonder if @Vadim Petrochenkov has seen this

tmandry (Jan 07 2020 at 18:07, on Zulip):

marking as OnDeck again

tmandry (Jan 07 2020 at 18:07, on Zulip):

anyone interested in reducing this?

Giles Cope (Jan 07 2020 at 18:08, on Zulip):

I can try that one too. no guarentees but it might work nicely.

tmandry (Jan 07 2020 at 18:09, on Zulip):

great, thanks @Giles Cope

tmandry (Jan 07 2020 at 18:09, on Zulip):

Unhelpful error messages from borrow checker with async/await #67765

centril (Jan 07 2020 at 18:09, on Zulip):

has PR

tmandry (Jan 07 2020 at 18:10, on Zulip):

marking as triaged in that case

tmandry (Jan 07 2020 at 18:10, on Zulip):

@Aaron Hill any blockers on your PR?

nikomatsakis (Jan 07 2020 at 18:11, on Zulip):

I don't know if that PR will land

nikomatsakis (Jan 07 2020 at 18:11, on Zulip):

but that's ok

tmandry (Jan 07 2020 at 18:11, on Zulip):

ok

nikomatsakis (Jan 07 2020 at 18:11, on Zulip):

(the blocker is that it is moving us away from being able to erase regions in type check; however, I'll discuss with @Aaron Hill and hopefully we'll find a good sol'n)

centril (Jan 07 2020 at 18:12, on Zulip):

agree with not making it harder to erase regions :slight_smile:

tmandry (Jan 07 2020 at 18:12, on Zulip):

okay, I'll mark it as Focus for now, since diagnostics are sort of our de facto priority right now (other than fixing ICEs)

tmandry (Jan 07 2020 at 18:12, on Zulip):

Nightly 2019-12-29 causes reached the type-length limit error in previously working code #67757

nikomatsakis (Jan 07 2020 at 18:13, on Zulip):

hmm so I think we were going to revert the IntoFuture PR

centril (Jan 07 2020 at 18:13, on Zulip):

should close

centril (Jan 07 2020 at 18:13, on Zulip):

was resolved

nikomatsakis (Jan 07 2020 at 18:13, on Zulip):

by reverting?

nikomatsakis (Jan 07 2020 at 18:13, on Zulip):

or some other way

centril (Jan 07 2020 at 18:13, on Zulip):

reverting, or did that not land yet?

centril (Jan 07 2020 at 18:13, on Zulip):

we agreed on t-compiler mtg to revert

centril (Jan 07 2020 at 18:13, on Zulip):

lemme check

centril (Jan 07 2020 at 18:14, on Zulip):

revert has landed

centril (Jan 07 2020 at 18:14, on Zulip):

https://github.com/rust-lang/rust/pull/67768

tmandry (Jan 07 2020 at 18:14, on Zulip):

okay, closing, thanks

tmandry (Jan 07 2020 at 18:14, on Zulip):

(in the future, do we want to consider this sort of thing a bug, though?)

nikomatsakis (Jan 07 2020 at 18:14, on Zulip):

I think it's .. a grey area

centril (Jan 07 2020 at 18:15, on Zulip):

yeah, I agree

centril (Jan 07 2020 at 18:15, on Zulip):

from a language spec POV it's not a bug

nikomatsakis (Jan 07 2020 at 18:15, on Zulip):

I'm not sure if we'll be able to fix it somehow in this particular case

centril (Jan 07 2020 at 18:15, on Zulip):

but from a UX POV it can be

tmandry (Jan 07 2020 at 18:15, on Zulip):

makes sense

tmandry (Jan 07 2020 at 18:15, on Zulip):

Major async/await compiler performance regression #67706

tmandry (Jan 07 2020 at 18:15, on Zulip):

same resolution

nikomatsakis (Jan 07 2020 at 18:15, on Zulip):

(Actually we should probably open an issue to re-land the PR?)

centril (Jan 07 2020 at 18:15, on Zulip):

@nikomatsakis :+1:

nikomatsakis (Jan 07 2020 at 18:16, on Zulip):

that is, that seems like something we should try to do and I don't know how else to track it

centril (Jan 07 2020 at 18:16, on Zulip):

seems sensible, and cc the relevant people & the relevant issues & PRs

tmandry (Jan 07 2020 at 18:17, on Zulip):

I can do that if no one else has started

centril (Jan 07 2020 at 18:17, on Zulip):

cheers

tmandry (Jan 07 2020 at 18:18, on Zulip):

in the meantime, let's move on

tmandry (Jan 07 2020 at 18:18, on Zulip):

Confusing/incorrect error message with incoherent implementations and async blocks #67651

tmandry (Jan 07 2020 at 18:18, on Zulip):

this one seems quite minimal, thankfully

tmandry (Jan 07 2020 at 18:19, on Zulip):

I'm wondering if it's actually async-specific

centril (Jan 07 2020 at 18:19, on Zulip):

I can look at reducing further

tmandry (Jan 07 2020 at 18:19, on Zulip):

(removing the async block does change the error message to the expected one)

tmandry (Jan 07 2020 at 18:19, on Zulip):

@centril alright, I'll assign you

nikomatsakis (Jan 07 2020 at 18:20, on Zulip):

Wacky. I imagine this may have to do with the way that the queries wind up being "forced"

nikomatsakis (Jan 07 2020 at 18:21, on Zulip):

I feel like we've seen a few of these, @csmoe, weren't you looking at a similiar-ish sort of bug?

nikomatsakis (Jan 07 2020 at 18:21, on Zulip):

I think I said I would do a bit of investigating into that, actually :P

tmandry (Jan 07 2020 at 18:21, on Zulip):

@nikomatsakis shall I assign you as well?

csmoe (Jan 07 2020 at 18:21, on Zulip):

Yes

nikomatsakis (Jan 07 2020 at 18:21, on Zulip):

sure, I can try to put an hour tomorrow morning into investigating them both

csmoe (Jan 07 2020 at 18:22, on Zulip):

#66312

tmandry (Jan 07 2020 at 18:23, on Zulip):

ok, great

tmandry (Jan 07 2020 at 18:23, on Zulip):

Tracking issue for IntoFuture #67644

tmandry (Jan 07 2020 at 18:23, on Zulip):

..looks like we do have a tracking issue for this :)

centril (Jan 07 2020 at 18:23, on Zulip):

maybe we can just add a comment to it with the latest news

nikomatsakis (Jan 07 2020 at 18:23, on Zulip):

yeah but we don't have a issue specifically for re-landing it..

nikomatsakis (Jan 07 2020 at 18:24, on Zulip):

(I would link that from #67644)

nikomatsakis (Jan 07 2020 at 18:24, on Zulip):

but I don't care too much, mostly I just don't want us to forget about it

tmandry (Jan 07 2020 at 18:24, on Zulip):

ok, I'll link to it when I do

nikomatsakis (Jan 07 2020 at 18:24, on Zulip):

(I prefer to make tracking issues not represent any work in particular)

tmandry (Jan 07 2020 at 18:24, on Zulip):

makes sense. I'll mark the new issue as Focus so we don't drop it

tmandry (Jan 07 2020 at 18:25, on Zulip):

not Send due to await retainment #67611

tmandry (Jan 07 2020 at 18:26, on Zulip):

looks like @Matthew Jasper is looking into this

nikomatsakis (Jan 07 2020 at 18:26, on Zulip):

this is an interesting one

nikomatsakis (Jan 07 2020 at 18:26, on Zulip):

yeah, seems good

nikomatsakis (Jan 07 2020 at 18:26, on Zulip):

I guess it's a case of "overapproximation", technically speaking

nikomatsakis (Jan 07 2020 at 18:27, on Zulip):

or something :)

tmandry (Jan 07 2020 at 18:27, on Zulip):

as for triage, this is a stable-to-beta regression and it's not being worked on directly by members of this wg

nikomatsakis (Jan 07 2020 at 18:27, on Zulip):

oh, I see what happened

tmandry (Jan 07 2020 at 18:27, on Zulip):

so I guess I'll mark it as... Focus? :shrug:

nikomatsakis (Jan 07 2020 at 18:28, on Zulip):

yeah, seems ok, can we assign to @Matthew Jasper ?

tmandry (Jan 07 2020 at 18:28, on Zulip):

they're assigned already, so we can move on

tmandry (Jan 07 2020 at 18:28, on Zulip):

improve diagnostics for non-send Futures that might be solved by introducing temporary variables #67376

nikomatsakis (Jan 07 2020 at 18:29, on Zulip):

oh, I see what happened

we changed how static mut is represented in MIR to make it a *mut XXX and a deref, but then we got assertions because there are values getting recorded that were not present in the list of approximate types... huh. I'm a bit surprised that those raw pointers were getting captured by the generator transform. @Matthew Jasper maybe we can chat separately about how you plan to fix :)

nikomatsakis (Jan 07 2020 at 18:30, on Zulip):

re: #67376, I do think this is an important suggestion.

tmandry (Jan 07 2020 at 18:30, on Zulip):

yeah

nikomatsakis (Jan 07 2020 at 18:30, on Zulip):

(I'm wondering btw if we should "prune" the on deck issues, we may have too many...)

tmandry (Jan 07 2020 at 18:30, on Zulip):

marking as Focus, because diagnostics improvement

nikomatsakis (Jan 07 2020 at 18:31, on Zulip):

do we have any idea who will do it?

nikomatsakis (Jan 07 2020 at 18:31, on Zulip):

I guess it'd be nice if we could put some mentoring instruvctions

tmandry (Jan 07 2020 at 18:31, on Zulip):

I was about to ask :)

Giles Cope (Jan 07 2020 at 18:31, on Zulip):

67376 - I'm a fan of us doing things like that. I can add it on my list unless someone else wants?

csmoe (Jan 07 2020 at 18:31, on Zulip):

I'll do it

Giles Cope (Jan 07 2020 at 18:31, on Zulip):

ah great

tmandry (Jan 07 2020 at 18:31, on Zulip):

ok, assigning @csmoe

tmandry (Jan 07 2020 at 18:32, on Zulip):

I guess it'd be nice if we could put some mentoring instruvctions

the last time something like this came up, I think we tapped @Esteban Küber =)

tmandry (Jan 07 2020 at 18:33, on Zulip):

(@davidtwco and @Aaron Hill have also worked on similar things recently)

csmoe (Jan 07 2020 at 18:33, on Zulip):

Knowledge about how temp works might be needed I guess?

tmandry (Jan 07 2020 at 18:33, on Zulip):

I personally don't know much about the impl details involved

tmandry (Jan 07 2020 at 18:35, on Zulip):

@csmoe do you feel you know more or less what needs to be done here?

tmandry (Jan 07 2020 at 18:35, on Zulip):

if not, I can ping one of the above people on the issue to add some more context

tmandry (Jan 07 2020 at 18:36, on Zulip):

but we can talk about it out of band also

nikomatsakis (Jan 07 2020 at 18:36, on Zulip):

I can try to leave some tips maybe

tmandry (Jan 07 2020 at 18:36, on Zulip):

ok

tmandry (Jan 07 2020 at 18:36, on Zulip):

last uncategorized issue

nikomatsakis (Jan 07 2020 at 18:36, on Zulip):

let me go look quickly at the code, it depends on what we have -- whether it's just a span, or also a HirId etc

tmandry (Jan 07 2020 at 18:37, on Zulip):

I'll also put you on it then

tmandry (Jan 07 2020 at 18:37, on Zulip):

Handle partial initialization correctly in generators #63616

nikomatsakis (Jan 07 2020 at 18:38, on Zulip):

heh oh dear

Giles Cope (Jan 07 2020 at 18:38, on Zulip):

who comes up with these issues ? ;-)

tmandry (Jan 07 2020 at 18:38, on Zulip):

lol

nikomatsakis (Jan 07 2020 at 18:38, on Zulip):

oh wait, you're saying that this would be a problem if we were to optimize MIR generation better

tmandry (Jan 07 2020 at 18:38, on Zulip):

right

nikomatsakis (Jan 07 2020 at 18:38, on Zulip):

i.e., right now we don't construct the aggregate until all the pieces are ready

nikomatsakis (Jan 07 2020 at 18:38, on Zulip):

yes, ok

tmandry (Jan 07 2020 at 18:38, on Zulip):

it's not a problem today

nikomatsakis (Jan 07 2020 at 18:39, on Zulip):

we could also move the "maybe init"'ness into the generator layout somewhere

tmandry (Jan 07 2020 at 18:39, on Zulip):

just lurking in the background, ready to pounce at the first unsuspecting change to MIR

tmandry (Jan 07 2020 at 18:39, on Zulip):

yeah, I think I had something like that in mind

nikomatsakis (Jan 07 2020 at 18:39, on Zulip):

yes, I see you commented something similar

tmandry (Jan 07 2020 at 18:39, on Zulip):

anyway, I just wanted to not forget it

nikomatsakis (Jan 07 2020 at 18:39, on Zulip):

good catch

tmandry (Jan 07 2020 at 18:40, on Zulip):

marking as "Focus" for now

nikomatsakis (Jan 07 2020 at 18:40, on Zulip):

I wouldn't

nikomatsakis (Jan 07 2020 at 18:40, on Zulip):

unless we plan to do anything immediately?

nikomatsakis (Jan 07 2020 at 18:40, on Zulip):

or maybe you do

tmandry (Jan 07 2020 at 18:40, on Zulip):

em.. yeah, I don't plan to

centril (Jan 07 2020 at 18:40, on Zulip):

@nikomatsakis btw, unrelated to async/await you'll probably want to be aware of https://github.com/rust-lang/rust/pull/67970

tmandry (Jan 07 2020 at 18:41, on Zulip):

I guess we should just review the triaged but non-Focus/OnDeck issues from time to time

tmandry (Jan 07 2020 at 18:42, on Zulip):

ok.. we've gone 10 minutes past the end of the meeting

tmandry (Jan 07 2020 at 18:42, on Zulip):

we at least triaged all the new issues

tmandry (Jan 07 2020 at 18:42, on Zulip):

looking at the OnDeck issues, as @nikomatsakis mentioned, there are a lot

tmandry (Jan 07 2020 at 18:43, on Zulip):

I wanted to check real quick

tmandry (Jan 07 2020 at 18:43, on Zulip):

is anyone stuck on an issue they've been assigned to?

nikomatsakis (Jan 07 2020 at 18:44, on Zulip):

I haven't had much time to do much, that's my biggest problem :)

tmandry (Jan 07 2020 at 18:45, on Zulip):

yes, holidays and new year, I don't expect we made a whole lot of progress since the last meeting

tmandry (Jan 07 2020 at 18:45, on Zulip):

ok

tmandry (Jan 07 2020 at 18:47, on Zulip):

also, we should go through and maybe prune the OnDeck issues (maybe @nikomatsakis and I, and whoever else wants to can take a look after this?)

tmandry (Jan 07 2020 at 18:47, on Zulip):

as @nikomatsakis was saying

tmandry (Jan 07 2020 at 18:47, on Zulip):

(or we can wait until next week)

tmandry (Jan 07 2020 at 18:48, on Zulip):

last thing, we should discuss priorities for the new year, maybe at the next meeting

tmandry (Jan 07 2020 at 18:48, on Zulip):

I'll open a topic later today with some of my thoughts

tmandry (Jan 07 2020 at 18:49, on Zulip):

okay, thanks everyone for coming, and sorry for being over time again

tmandry (Jan 07 2020 at 18:49, on Zulip):

hopefully we'll have less of a backlog next time :)

tmandry (Jan 07 2020 at 18:58, on Zulip):

(Actually we should probably open an issue to re-land the PR?)

opened #67982

nikomatsakis (Jan 07 2020 at 19:00, on Zulip):

I'll open a topic later today with some of my thoughts

yeah, please do. I have a few thoughts as well -- and, I'm reminded, a backlog of two async interviews to blog about :) (oh dear)

centril (Jan 07 2020 at 19:00, on Zulip):

@nikomatsakis made a reduction in https://github.com/rust-lang/rust/issues/67651#issuecomment-571719665

centril (Jan 07 2020 at 19:00, on Zulip):

unassigning myself

tmandry (Jan 07 2020 at 19:05, on Zulip):

re: OnDeck issues, it seems like every single one is either

tmandry (Jan 07 2020 at 19:06, on Zulip):

this seems about right to me

tmandry (Jan 07 2020 at 19:07, on Zulip):

I guess if I have to pick what the priorities are, it'd be ICEs, followed by the things that we think are going to be hit most often

tmandry (Jan 07 2020 at 19:07, on Zulip):

we can discuss more next week, I suppose

Matthew Jasper (Jan 07 2020 at 20:39, on Zulip):

oh, I see what happened

we changed how static mut is represented in MIR to make it a *mut XXX and a deref, but then we got assertions because there are values getting recorded that were not present in the list of approximate types... huh. I'm a bit surprised that those raw pointers were getting captured by the generator transform. @Matthew Jasper maybe we can chat separately about how you plan to fix :)

I've written up some thoughts on this in #67611

lqd (Jan 07 2020 at 22:36, on Zulip):

reduced #67778 https://github.com/rust-lang/rust/issues/67778#issuecomment-571805036 — looks like the ICE is downstream from macro expansion

Vadim Petrochenkov (Jan 08 2020 at 11:00, on Zulip):

I wonder if Vadim Petrochenkov has seen this (#67778)

Probably not, I've been ignoring pretty much everything async-related in my mail.
I'll try to look what happens.

Last update: Jan 28 2020 at 01:45UTC