Stream: wg-async-foundations

Topic: meeting 2020.02.11


tmandry (Feb 11 2020 at 17:39, on Zulip):

I'm going to do some pre-triage before the meeting here

tmandry (Feb 11 2020 at 17:40, on Zulip):

Uncategorized issues

tmandry (Feb 11 2020 at 17:40, on Zulip):

Strange borrowing issue in inherent async method. #68950

tmandry (Feb 11 2020 at 17:47, on Zulip):

looks like a dupe of #64552, which is marked OnDeck

tmandry (Feb 11 2020 at 17:47, on Zulip):

this is actually worse than a confusing diagnostic IMO, since it's an error message for something that should compile

tmandry (Feb 11 2020 at 17:48, on Zulip):

I'm going to mark this one as OnDeck, and consider upgrading #68950 to Focus

tmandry (Feb 11 2020 at 17:49, on Zulip):

Also, reminder @WG-async-foundations that the meeting officially starts in 10-ish minutes

tmandry (Feb 11 2020 at 17:49, on Zulip):

I'll keep doing pre-triage until then

tmandry (Feb 11 2020 at 17:49, on Zulip):

25% compile time increase on beta when building async-std #68864

tmandry (Feb 11 2020 at 17:51, on Zulip):

that's a significant slowdown

tmandry (Feb 11 2020 at 17:51, on Zulip):

needs bisection, and better to catch it while it's fresh

tmandry (Feb 11 2020 at 17:52, on Zulip):

marking OnDeck

tmandry (Feb 11 2020 at 17:53, on Zulip):

Async await mulitple lifetimes issue with Box #68759

tmandry (Feb 11 2020 at 17:57, on Zulip):

hmm, I was going to compare to #68950

tmandry (Feb 11 2020 at 17:58, on Zulip):

but it appears both of these can be worked around using impl Future with an explicit lifetime

tmandry (Feb 11 2020 at 17:59, on Zulip):

I think the biggest question here is "can we accept this without lang team involvement," and I think the answer is yes

tmandry (Feb 11 2020 at 17:59, on Zulip):

but I am worried about marking too many issues as OnDeck

tmandry (Feb 11 2020 at 17:59, on Zulip):

that said, going to do it for now and we can sort it out during the meeting

tmandry (Feb 11 2020 at 18:00, on Zulip):

maybe we need some tags to categorize OnDeck issues a bit better?

tmandry (Feb 11 2020 at 18:01, on Zulip):

in any case, let's get started

tmandry (Feb 11 2020 at 18:02, on Zulip):

@WG-async-foundations, meeting time!

tmandry (Feb 11 2020 at 18:04, on Zulip):

Uncategorized issues

continuing from before

tmandry (Feb 11 2020 at 18:04, on Zulip):

E0700 does not point to where the captured lifetime is #68604

nikomatsakis (Feb 11 2020 at 18:05, on Zulip):

hmm

tmandry (Feb 11 2020 at 18:05, on Zulip):

this needs a more minimal example

nikomatsakis (Feb 11 2020 at 18:05, on Zulip):

seems like "triaged" to me

nikomatsakis (Feb 11 2020 at 18:05, on Zulip):

but yes

tmandry (Feb 11 2020 at 18:06, on Zulip):

seems possibly related to issues like #68950 and #68759 above

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

left a comment about minimizing. moving on

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

Confusing error message when expecting BoxFuture #68197

nikomatsakis (Feb 11 2020 at 18:08, on Zulip):

seems possibly related to issues like #68950 and #68759 above

(reviewing)

nikomatsakis (Feb 11 2020 at 18:08, on Zulip):

BoxFuture is a type alias?

tmandry (Feb 11 2020 at 18:08, on Zulip):

ah yes

tmandry (Feb 11 2020 at 18:09, on Zulip):

https://docs.rs/futures/0.3.4/futures/future/type.BoxFuture.html

nikomatsakis (Feb 11 2020 at 18:09, on Zulip):

the actual type (Pin<Box...) seems like it is all stable components ;)

tmandry (Feb 11 2020 at 18:09, on Zulip):

er, no

nikomatsakis (Feb 11 2020 at 18:09, on Zulip):

however, the boxed method might not be part of stdlib?

nikomatsakis (Feb 11 2020 at 18:09, on Zulip):

at least I don't find it when searching the docs

nikomatsakis (Feb 11 2020 at 18:10, on Zulip):

probably part of FutureExt or something

nikomatsakis (Feb 11 2020 at 18:10, on Zulip):

we can still suggest it, I guess, just a bit more complex

tmandry (Feb 11 2020 at 18:10, on Zulip):

yeah I was just calling out BoxFuture since it's a common thing to use

tmandry (Feb 11 2020 at 18:10, on Zulip):

I don't think you have to actually use the alias

nikomatsakis (Feb 11 2020 at 18:10, on Zulip):

well my point is more that if we suggest calling boxed

nikomatsakis (Feb 11 2020 at 18:10, on Zulip):

that's not part of libstd

tmandry (Feb 11 2020 at 18:10, on Zulip):

ah, right

nikomatsakis (Feb 11 2020 at 18:11, on Zulip):

so you'd have to add futures crate to your dependency list

nikomatsakis (Feb 11 2020 at 18:11, on Zulip):

I feel like there would be a good case for including boxed in libstd tho

tmandry (Feb 11 2020 at 18:11, on Zulip):

yeah, probably

nikomatsakis (Feb 11 2020 at 18:11, on Zulip):

(obviously that's a bit more complex than just improving the diagnostic)

tmandry (Feb 11 2020 at 18:11, on Zulip):

though Esteban seems to think we don't need to

nikomatsakis (Feb 11 2020 at 18:12, on Zulip):

I guess you can also suggest doing Box::pin(...)?

nikomatsakis (Feb 11 2020 at 18:12, on Zulip):

i.e., Box::pin(async { ... })

tmandry (Feb 11 2020 at 18:12, on Zulip):

yeah I think so

tmandry (Feb 11 2020 at 18:12, on Zulip):

(sorry, loading all this back into cache)

nikomatsakis (Feb 11 2020 at 18:12, on Zulip):

/me tests yes, it works

nikomatsakis (Feb 11 2020 at 18:12, on Zulip):

although I still think adding boxed would make sense

tmandry (Feb 11 2020 at 18:13, on Zulip):

agreed :) but should be tracked separately I think

tmandry (Feb 11 2020 at 18:13, on Zulip):

(do we have a repo to track things like this yet?)

nikomatsakis (Feb 11 2020 at 18:13, on Zulip):

uuuuuuh let me do that :P

nikomatsakis (Feb 11 2020 at 18:14, on Zulip):

you have permission to hate me

tmandry (Feb 11 2020 at 18:14, on Zulip):

:p

nikomatsakis (Feb 11 2020 at 18:14, on Zulip):

or at least mercilessly mock me

tmandry (Feb 11 2020 at 18:14, on Zulip):

:heart:

Florian Gilcher (Feb 11 2020 at 18:15, on Zulip):

I'm not _such_ a huge fan of the .boxed interface, but that should indeed be discussed on an issue.

tmandry (Feb 11 2020 at 18:15, on Zulip):

ok, so #68197.. OnDeck or no? I'm biased :P

Florian Gilcher (Feb 11 2020 at 18:15, on Zulip):

:wave: by the way, forgot announcing that I'm here and reading

nikomatsakis (Feb 11 2020 at 18:16, on Zulip):

ok, so #68197.. OnDeck or no? I'm biased :P

I would say it depends on how often BoxFuture is used

nikomatsakis (Feb 11 2020 at 18:16, on Zulip):

you're the ones with experience on what real world async await code bases look like

nikomatsakis (Feb 11 2020 at 18:16, on Zulip):

so +1 if that's a common pattern

tmandry (Feb 11 2020 at 18:16, on Zulip):

I mean, with async_trait.. quite often I'd say

Florian Gilcher (Feb 11 2020 at 18:17, on Zulip):

Boxing futures isn't unusual and I generally would like people to use boxed interface more, in general...

nikomatsakis (Feb 11 2020 at 18:17, on Zulip):

side note, it'd be nice if you could say #[boxed] async f... or something

tmandry (Feb 11 2020 at 18:17, on Zulip):

ok, marking OnDeck

tmandry (Feb 11 2020 at 18:17, on Zulip):

Inherent async fn returning Self treats type's lifetime parameters as 'static #61949

tmandry (Feb 11 2020 at 18:18, on Zulip):

this rhymes with the complaint I've heard that "lifetime issues involving async are confusing"

tmandry (Feb 11 2020 at 18:19, on Zulip):

also, this issue has been around awhile

nikomatsakis (Feb 11 2020 at 18:19, on Zulip):

this is a more general bug

nikomatsakis (Feb 11 2020 at 18:19, on Zulip):

I believe

nikomatsakis (Feb 11 2020 at 18:19, on Zulip):

er wait

nikomatsakis (Feb 11 2020 at 18:19, on Zulip):

let me figure out which one this is

tmandry (Feb 11 2020 at 18:19, on Zulip):

this comment mentions forward-compat issues, is that accurate?

nikomatsakis (Feb 11 2020 at 18:20, on Zulip):

huh

nikomatsakis (Feb 11 2020 at 18:20, on Zulip):

we thought we fixed this :)

nikomatsakis (Feb 11 2020 at 18:20, on Zulip):

if by "fixed" it means "start giving errors"

nikomatsakis (Feb 11 2020 at 18:21, on Zulip):

and there are tests

nikomatsakis (Feb 11 2020 at 18:22, on Zulip):

e.g. this test

tmandry (Feb 11 2020 at 18:23, on Zulip):

this playground seems to fail with the old error

nikomatsakis (Feb 11 2020 at 18:23, on Zulip):

which seems identical

tmandry (Feb 11 2020 at 18:23, on Zulip):

though I'm not sure what the implications of that are

nikomatsakis (Feb 11 2020 at 18:23, on Zulip):

yes that is very confusing

nikomatsakis (Feb 11 2020 at 18:24, on Zulip):

well I think this is a high priority bug

nikomatsakis (Feb 11 2020 at 18:24, on Zulip):

there are indeed potentially future compat implications

tmandry (Feb 11 2020 at 18:24, on Zulip):

okay, I will mark as Focus and P-high

nikomatsakis (Feb 11 2020 at 18:24, on Zulip):

I guess the question is who we can get to investigate

nikomatsakis (Feb 11 2020 at 18:24, on Zulip):

@davidtwco wrote the initial PR, I wonder if they have any time to poke at this

nikomatsakis (Feb 11 2020 at 18:25, on Zulip):

I'm reluctant to volunteer but I could probably help mentor

nikomatsakis (Feb 11 2020 at 18:25, on Zulip):

if somebody else (@csmoe, @Giles Cope, @tmandry?) were able to

tmandry (Feb 11 2020 at 18:25, on Zulip):

I may have time

davidtwco (Feb 11 2020 at 18:25, on Zulip):

I don't have much time at the moment

tmandry (Feb 11 2020 at 18:25, on Zulip):

okay, I'll self-assign

tmandry (Feb 11 2020 at 18:26, on Zulip):

that's all the uncategorized issues

Giles Cope (Feb 11 2020 at 18:27, on Zulip):

Sorry - trying to clear down the backlog!

tmandry (Feb 11 2020 at 18:27, on Zulip):

Sorry - trying to clear down the backlog!

no worries :)

tmandry (Feb 11 2020 at 18:28, on Zulip):

Focus issues

tmandry (Feb 11 2020 at 18:28, on Zulip):

last time I think most of these were blocked on some design-related question or another

tmandry (Feb 11 2020 at 18:28, on Zulip):

afaik that hasn't changed

tmandry (Feb 11 2020 at 18:29, on Zulip):

I may take some time to ping these after the meeting

nikomatsakis (Feb 11 2020 at 18:29, on Zulip):

we did close at least one, thanks to @Zoxc

tmandry (Feb 11 2020 at 18:29, on Zulip):

oh, yes

nikomatsakis (Feb 11 2020 at 18:29, on Zulip):

oh, not yet

nikomatsakis (Feb 11 2020 at 18:29, on Zulip):

but https://github.com/rust-lang/rust/pull/68884 is pending

tmandry (Feb 11 2020 at 18:30, on Zulip):

great!

tmandry (Feb 11 2020 at 18:30, on Zulip):

let's quickly look at

OnDeck issues

tmandry (Feb 11 2020 at 18:31, on Zulip):

in case anyone is looking for something more to do

tmandry (Feb 11 2020 at 18:31, on Zulip):

also, this list is getting fairly long

tmandry (Feb 11 2020 at 18:31, on Zulip):

which isn't a "bad" thing per se

tmandry (Feb 11 2020 at 18:31, on Zulip):

but I think we may need a way to break it down further

tmandry (Feb 11 2020 at 18:32, on Zulip):

or prioritize within the list

nikomatsakis (Feb 11 2020 at 18:32, on Zulip):

seems too long, yeah

nikomatsakis (Feb 11 2020 at 18:32, on Zulip):

well maybe the length isn't the main thing

nikomatsakis (Feb 11 2020 at 18:32, on Zulip):

maybe the question is whether to try and generate a "call for help" or something to direct more eyes on this list

tmandry (Feb 11 2020 at 18:33, on Zulip):

yeah, we could possibly start marking some of these

tmandry (Feb 11 2020 at 18:33, on Zulip):

personally, I really like kanban boards also

tmandry (Feb 11 2020 at 18:33, on Zulip):

so if we could throw these on a GH project board or something, I'd find it helpful

nikomatsakis (Feb 11 2020 at 18:34, on Zulip):

ok, so let me create that repo :P

Florian Gilcher (Feb 11 2020 at 18:34, on Zulip):

I can setup a call for help if someone can spend time to mentor

nikomatsakis (Feb 11 2020 at 18:34, on Zulip):

I do want to talk a bit -- but I have to run at this moment -- about "what's next" anyway

Florian Gilcher (Feb 11 2020 at 18:35, on Zulip):

That's mainly the big problem: calls for help also require some bandwidth to cover the influx

tmandry (Feb 11 2020 at 18:35, on Zulip):

That's mainly the big problem: calls for help also require some bandwidth to cover the influx

yes, I find the mentorship bit to be a bottleneck, usually

tmandry (Feb 11 2020 at 18:36, on Zulip):

and also, I think people are reluctant to help mentor something they aren't 100% sure they know how to solve

Florian Gilcher (Feb 11 2020 at 18:36, on Zulip):

Also, I have a procedural question for OnDeck: given that https://github.com/rust-lang/rust/issues/56974 Is currently actively being worked on, should we move it to one of the boards?

tmandry (Feb 11 2020 at 18:36, on Zulip):

and also, I think people are reluctant to help mentor something they aren't 100% sure they know how to solve

even if they have a lot of helpful context that most people wouldn't

Florian Gilcher (Feb 11 2020 at 18:36, on Zulip):

and also, I think people are reluctant to help mentor something they aren't 100% sure they know how to solve

They shouldn't be ;). But yes, this is a big problem.

Florian Gilcher (Feb 11 2020 at 18:37, on Zulip):

This is meta, but would it make sense to have an internal mentoring document?

Florian Gilcher (Feb 11 2020 at 18:37, on Zulip):

I think @tmandrys point is a good one and shouldn't be lost

tmandry (Feb 11 2020 at 18:38, on Zulip):

What are you imagining would be in this doc?

Giles Cope (Feb 11 2020 at 18:39, on Zulip):

(In other news I'm going to be helping Ernest out with the rust london meetups. He said he needed a hand. Might find a few more recruits there...)

tmandry (Feb 11 2020 at 18:39, on Zulip):

Something like "all it takes to be a mentor is a little bit of experience, and a willingness to find and link to some relevant code"..?

tmandry (Feb 11 2020 at 18:39, on Zulip):

I think that could work

Florian Gilcher (Feb 11 2020 at 18:40, on Zulip):

Let's quickly wrap up the meeting proper before we digress (sorry for starting that)

tmandry (Feb 11 2020 at 18:41, on Zulip):

Also, I have a procedural question for OnDeck: given that https://github.com/rust-lang/rust/issues/56974 Is currently actively being worked on, should we move it to one of the boards?

I marked it as OnDeck so it'll show up when I look at what issues have been closed recently :)

tmandry (Feb 11 2020 at 18:41, on Zulip):

oh, right

tmandry (Feb 11 2020 at 18:41, on Zulip):

we're well past the end of the meeting, so :wave: thanks all for attending :)

tmandry (Feb 11 2020 at 18:41, on Zulip):

I forgot to say that

tmandry (Feb 11 2020 at 18:42, on Zulip):

but in my head, the meeting was already over :slight_smile:

Florian Gilcher (Feb 11 2020 at 18:42, on Zulip):

:+1:

Florian Gilcher (Feb 11 2020 at 18:42, on Zulip):

@Giles Cope that's great, RustLDN is awesome

Florian Gilcher (Feb 11 2020 at 18:42, on Zulip):

So, at one of my non-profits, we have this: http://opentechschool.github.io/slides/presentations/coaching/

Florian Gilcher (Feb 11 2020 at 18:42, on Zulip):

This is for on-site coaching. But a lot of people found it useful.

Florian Gilcher (Feb 11 2020 at 18:44, on Zulip):

Sentences like your's above make things "click" and give people confidence. A lot of people confuse mentoring with "I could solve the problem myself, but just don't do it so that someone else can try". That's not the point.

Florian Gilcher (Feb 11 2020 at 18:44, on Zulip):

In any case, I'll push that onto my eternal log...

tmandry (Feb 11 2020 at 18:44, on Zulip):

yeah, it's something that only recently "clicked" for me

tmandry (Feb 11 2020 at 18:45, on Zulip):

people are smart, if they're also determined (most contributors are) they'll fill in the gaps you leave

tmandry (Feb 11 2020 at 18:45, on Zulip):

the point is to share what context you have as widely as possible

tmandry (Feb 11 2020 at 18:45, on Zulip):

and build a culture of doing that, perhaps

tmandry (Feb 11 2020 at 18:46, on Zulip):

that context is hard-earned and can still save someone hours (or make the difference between them ultimately contributing or not)

Giles Cope (Feb 11 2020 at 19:12, on Zulip):

@tmandry can you comment on https://github.com/rust-lang/rust/issues/57478 please?

tmandry (Feb 11 2020 at 19:16, on Zulip):

done

tmandry (Feb 11 2020 at 19:17, on Zulip):

I think we need a separate issue to track the diagnostics component of it, and that one should be OnDeck instead of this

nikomatsakis (Feb 12 2020 at 10:57, on Zulip):

Something like "all it takes to be a mentor is a little bit of experience, and a willingness to find and link to some relevant code"..?

very much this btw :)

nikomatsakis (Feb 12 2020 at 10:57, on Zulip):

I used to overdo it sometimes I think

nikomatsakis (Feb 12 2020 at 10:58, on Zulip):

but just sketching out the path and linking to code is often better than laying a detailed path

nikomatsakis (Feb 12 2020 at 10:58, on Zulip):

first off, it may be enough by itself, and second, people can come back with questions if not

nikomatsakis (Feb 12 2020 at 10:58, on Zulip):

the bigger thing (and something I sometimes find hard) is answering those questions with low latency :)

csmoe (Feb 12 2020 at 14:41, on Zulip):

Sorry for absent, those days were a bit messy(my city was locked down due to ncov-2019). I'll resume the issues assigned to me.

Last update: Feb 25 2020 at 04:25UTC