Stream: t-compiler/wg-nll

Topic: weekly meeting May 15


pnkfelix (May 15 2018 at 19:32, on Zulip):

Hi everyone

nikomatsakis (May 15 2018 at 19:32, on Zulip):

howdy

Santiago Pastorino (May 15 2018 at 19:33, on Zulip):

hi

nikomatsakis (May 15 2018 at 19:34, on Zulip):

not sure who'll make it today; there were a few people who couldn't

pnkfelix (May 15 2018 at 19:34, on Zulip):

okay well maybe since we already had a chat earlier today

nikomatsakis (May 15 2018 at 19:34, on Zulip):

also true

pnkfelix (May 15 2018 at 19:34, on Zulip):

we can make this short meeting even shorter

pnkfelix (May 15 2018 at 19:35, on Zulip):

I see @nikomatsakis has worked to summarize the thoughts from that chat into the Triage Meeting Paper

Santiago Pastorino (May 15 2018 at 19:36, on Zulip):

where can I read about SEME?

Santiago Pastorino (May 15 2018 at 19:36, on Zulip):

unsure what's about

pnkfelix (May 15 2018 at 19:36, on Zulip):

the one line summary as I take it is: @nikomatsakis is going to focus on SEME experiments in the short term. Everyone else (including pnkfelix) should focus on borrow_check repo

davidtwco (May 15 2018 at 19:36, on Zulip):

Hello.

pnkfelix (May 15 2018 at 19:36, on Zulip):

that is, @nikomatsakis does not want people worrying too much about the SEME approach

pnkfelix (May 15 2018 at 19:36, on Zulip):

@Santiago Pastorino I can link you to the RFC about SEME

davidtwco (May 15 2018 at 19:36, on Zulip):

Finally done with the nine exams. Ready to start contributing again.

Santiago Pastorino (May 15 2018 at 19:36, on Zulip):

not worring up to the point of not even knowing what is about? :P

nikomatsakis (May 15 2018 at 19:37, on Zulip):

plausibly :)

nikomatsakis (May 15 2018 at 19:37, on Zulip):

"single entry multiple exit"

Santiago Pastorino (May 15 2018 at 19:37, on Zulip):

yeah, if we shouldn't worry, I'd just ... not worry

Santiago Pastorino (May 15 2018 at 19:37, on Zulip):

:)

nikomatsakis (May 15 2018 at 19:37, on Zulip):

it is a somewhat less flexible version of regions

nikomatsakis (May 15 2018 at 19:37, on Zulip):

but one that can (maybe?) be more efficiently maintained

nikomatsakis (May 15 2018 at 19:37, on Zulip):

that is the hypothesis, anyway

nikomatsakis (May 15 2018 at 19:38, on Zulip):

there is an implementation in this repository, which also links to the RFC that describes it

pnkfelix (May 15 2018 at 19:38, on Zulip):

@Santiago Pastorino this is niko's repo with his WIP code. It links to RFC 396

Santiago Pastorino (May 15 2018 at 19:38, on Zulip):

ok, yeah, I guess I'm not going to worry for now, tons of other places to contribute, there's time for reading that :)

pnkfelix (May 15 2018 at 19:39, on Zulip):

so, having said that

pnkfelix (May 15 2018 at 19:40, on Zulip):

we can either spend the time right now talking about the "Sketch of borrow-check future plans" that is in the paper doc

pnkfelix (May 15 2018 at 19:40, on Zulip):

or we could collectively skim over any new NLL issues that have been filed in the rustc repo

pnkfelix (May 15 2018 at 19:40, on Zulip):

(something that i meant to do earlier today, but didn't get the chance)

pnkfelix (May 15 2018 at 19:41, on Zulip):

Personally, if we have people like @David Wood here who are looking to jump back in

pnkfelix (May 15 2018 at 19:41, on Zulip):

then I think the time would probably be best spent talking about the borrow-check future plans

pnkfelix (May 15 2018 at 19:41, on Zulip):

since that (and NLL performance more generally) continues the "all hands on deck" issue

nikomatsakis (May 15 2018 at 19:41, on Zulip):

that makes sense to me

davidtwco (May 15 2018 at 19:42, on Zulip):

I only have a high level overview of what's been happening, got a few blog posts to read yet.

nikomatsakis (May 15 2018 at 19:42, on Zulip):

one thing that I noticed while doing some work today is that I think we really ought to prioritize getting a "round trip" where the results of borrow-check are feeding back into rustc in some form

nikomatsakis (May 15 2018 at 19:42, on Zulip):

it feels really hard to evaluate right now

nikomatsakis (May 15 2018 at 19:42, on Zulip):

whereas, in my original branch, since it was in rustc, I could just do ./x.py test

nikomatsakis (May 15 2018 at 19:43, on Zulip):

(I'm not sure the best way to do that: one option might be to actually invoke borrow-region as a process, which sidesteps some of the annoying issues I hit around adding differential-dataflow as a dependency to the compiler)

pnkfelix (May 15 2018 at 19:43, on Zulip):

hm I had not considered that option

nikomatsakis (May 15 2018 at 19:43, on Zulip):

(to be clear, I think that those problems can be overcome, but they might hold up landing a branch in the short term)

nikomatsakis (May 15 2018 at 19:44, on Zulip):

although maybe @Frank McSherry has a bit more free time now to merge PRs and issue releases. I'm trying to remember what the problems were; something with getopt, and I think a problem with custom derive

nikomatsakis (May 15 2018 at 19:44, on Zulip):

I'm not sure if the latter is really needed, since we don't plan to do cross-process serialization

nikomatsakis (May 15 2018 at 19:45, on Zulip):

anyway it seems like a work item we might consider prioritizing, if somebody had some time

nikomatsakis (May 15 2018 at 19:45, on Zulip):

/me eyes @David Wood

Santiago Pastorino (May 15 2018 at 19:45, on Zulip):

hehe

davidtwco (May 15 2018 at 19:45, on Zulip):

I've got time in spades at the moment.

nikomatsakis (May 15 2018 at 19:45, on Zulip):

dangerous words =)

pnkfelix (May 15 2018 at 19:45, on Zulip):

"work item we might consider priroritizing". there are a couple different ones that could be referring to

qmx (May 15 2018 at 19:46, on Zulip):

@nikomatsakis did you try integrating with the feature flag I upstreamed to differential-dataflow?

nikomatsakis (May 15 2018 at 19:46, on Zulip):

nope

nikomatsakis (May 15 2018 at 19:46, on Zulip):

or rather, I can't remember

pnkfelix (May 15 2018 at 19:46, on Zulip):

there's the invoke-as-subprocess approach, and and there's fix-the-integration-issues approach

nikomatsakis (May 15 2018 at 19:47, on Zulip):

I meant the union of them I guess

nikomatsakis (May 15 2018 at 19:47, on Zulip):

that is, I meant "prioritize get integration working somehow"

pnkfelix (May 15 2018 at 19:47, on Zulip):

@nikomatsakis with invoke-as-subprocess approach, the main problem there is the time we "waste" creating and maintaining some text-based communication format

pnkfelix (May 15 2018 at 19:47, on Zulip):

right?

pnkfelix (May 15 2018 at 19:47, on Zulip):

I don't see any other drawback

qmx (May 15 2018 at 19:47, on Zulip):

we just need @Frank McSherry to cut a release :)

nikomatsakis (May 15 2018 at 19:47, on Zulip):

@qmx I think the problem was that it wasn't ever added to a release on crates.io

qmx (May 15 2018 at 19:47, on Zulip):

the patch is merged

qmx (May 15 2018 at 19:47, on Zulip):

exactly

nikomatsakis (May 15 2018 at 19:47, on Zulip):

@pnkfelix sounds right

pnkfelix (May 15 2018 at 19:48, on Zulip):

(since this is all for experimentation anyway)

pnkfelix (May 15 2018 at 19:48, on Zulip):

well, there's also the fact that the timings we gather will be polluted by subprocess creation time

nikomatsakis (May 15 2018 at 19:48, on Zulip):

the format .. is probably super simple. like lines of tab-deleted numbers, one per tuple..?

pnkfelix (May 15 2018 at 19:48, on Zulip):

unless we somehw make it a long-lived process

nikomatsakis (May 15 2018 at 19:48, on Zulip):

yes, timing information is definitely .. not terribly useful

pnkfelix (May 15 2018 at 19:48, on Zulip):

but that sounds much much harder to me

pnkfelix (May 15 2018 at 19:49, on Zulip):

I guess the idea at this point wouldn't be to be gathering performance profiles on the integrated product

pnkfelix (May 15 2018 at 19:49, on Zulip):

but rather solely to verify the correctness of borrow-regions

nikomatsakis (May 15 2018 at 19:49, on Zulip):

the hope would be we can do it quick-n-dirty

nikomatsakis (May 15 2018 at 19:49, on Zulip):

this seems plausibly true

nikomatsakis (May 15 2018 at 19:49, on Zulip):

otherwise I think it's not worth it

pnkfelix (May 15 2018 at 19:50, on Zulip):

performance otherwise would be evaluated by observing the borrow-regions program directly

pnkfelix (May 15 2018 at 19:50, on Zulip):

Right?

qmx (May 15 2018 at 19:50, on Zulip):

@nikomatsakis you mentioned that we could start with a git-based dependency for the time being right

nikomatsakis (May 15 2018 at 19:51, on Zulip):

I don't think we can land that

pnkfelix (May 15 2018 at 19:51, on Zulip):

Okay. I'm not thrilled by the idea of spending any time on a one-off serialization format

pnkfelix (May 15 2018 at 19:51, on Zulip):

but

pnkfelix (May 15 2018 at 19:51, on Zulip):

it seems like the quickest way to save human time

pnkfelix (May 15 2018 at 19:51, on Zulip):

in terms of trying to validate the results

nikomatsakis (May 15 2018 at 19:51, on Zulip):

I mean I imagine it would be basically the same as this code which loads the tab-delimited files now

nikomatsakis (May 15 2018 at 19:52, on Zulip):

I guess another question is whether we would continu to dump the facts to disk and load them from there

pnkfelix (May 15 2018 at 19:52, on Zulip):

vs pipes you mean?

nikomatsakis (May 15 2018 at 19:52, on Zulip):

anyway I also am not super enthusiastic about wasting a lot of time on this — maybe it's worth at least digging a little bit to see if wec an get linking to work

nikomatsakis (May 15 2018 at 19:52, on Zulip):

see what obstacles we hit

nikomatsakis (May 15 2018 at 19:53, on Zulip):

if they cannot be overcome in a day or two...

nikomatsakis (May 15 2018 at 19:53, on Zulip):

honestly I could go either way

nikomatsakis (May 15 2018 at 19:53, on Zulip):

the bigger question is: who would like to put a bit of time into it :)

qmx (May 15 2018 at 19:54, on Zulip):

I can put time on this, but my time is limited :P

pnkfelix (May 15 2018 at 19:54, on Zulip):

I'm willing to do it

davidtwco (May 15 2018 at 19:54, on Zulip):

I'm happy to work on whatever you need me on.

nikomatsakis (May 15 2018 at 19:54, on Zulip):

(we could also pursue both in parallel)

pnkfelix (May 15 2018 at 19:54, on Zulip):

I already suffer with rustc rebuilds

pnkfelix (May 15 2018 at 19:54, on Zulip):

so this will just be a continuation of that suffering

qmx (May 15 2018 at 19:54, on Zulip):

I have a beefy machine for rust rebuilds :P

pnkfelix (May 15 2018 at 19:54, on Zulip):

I mean, so do I (though I guess "beefy" is relative)

pnkfelix (May 15 2018 at 19:55, on Zulip):

for me 7 minutes seems like an eternity

qmx (May 15 2018 at 19:55, on Zulip):

lol, true

qmx (May 15 2018 at 19:55, on Zulip):

/me used to wait 4 hours for a linux kernel compile

Frank McSherry (May 15 2018 at 19:55, on Zulip):

we just need @Frank McSherry to cut a release :)

Quick run-by: can totally cut a release, but I wasn't clear from Niko whether the merged PR would enable things for them. A further PR that rips out the serialization (which use the derives) would be a serious re-working.

Santiago Pastorino (May 15 2018 at 19:55, on Zulip):

hehe, I don't even remember how long it takes for me but probably more than that

qmx (May 15 2018 at 19:56, on Zulip):

@nikomatsakis so I could add the git dep on a branch, make sure things compile, get a release from @Frank McSherry , then fix the PR, then merge

qmx (May 15 2018 at 19:56, on Zulip):

would that work?

nikomatsakis (May 15 2018 at 19:56, on Zulip):

I think we should try both in parallel

pnkfelix (May 15 2018 at 19:56, on Zulip):

okay. It sounds like @qmx knows what's up for linkage

nikomatsakis (May 15 2018 at 19:56, on Zulip):

basically, one person (sounds like @qmx) can just try to add borrow-check repo as a dependency

nikomatsakis (May 15 2018 at 19:56, on Zulip):

and see if we can get it to build

nikomatsakis (May 15 2018 at 19:57, on Zulip):

I don't think we have to actually use it

pnkfelix (May 15 2018 at 19:57, on Zulip):

and I could focus on text-serialization

nikomatsakis (May 15 2018 at 19:57, on Zulip):

to trigger the problems

pnkfelix (May 15 2018 at 19:57, on Zulip):

right?

nikomatsakis (May 15 2018 at 19:57, on Zulip):

right

pnkfelix (May 15 2018 at 19:57, on Zulip):

I'm good with that.

nikomatsakis (May 15 2018 at 19:57, on Zulip):

and/or @David Wood

Santiago Pastorino (May 15 2018 at 19:57, on Zulip):

I don't offer myself to do anything since I'm already with tasks but feel free to give me more stuff

nikomatsakis (May 15 2018 at 19:57, on Zulip):

I suspect we can find other things for @David Wood if not that

Santiago Pastorino (May 15 2018 at 19:57, on Zulip):

probably better if I finish this first and then ask for more things

qmx (May 15 2018 at 19:57, on Zulip):

are you going to cut a initial release for borrow-check on crates.io?

davidtwco (May 15 2018 at 19:57, on Zulip):

I get the feeling there's plenty to go around.

pnkfelix (May 15 2018 at 19:57, on Zulip):

I think there's other stuff about making borrow-check faster that I'd like people working on in parallel

nikomatsakis (May 15 2018 at 19:57, on Zulip):

e.g., I'd be happy to work with them on #20

nikomatsakis (May 15 2018 at 19:58, on Zulip):

are you going to cut a initial release for borrow-check on crates.io?

we could, but we could also add a git dep for now? come to think of it, it'd probably be good to factor out a "core" crate that just exports (e.g.) the TimelyOpt variant

nikomatsakis (May 15 2018 at 19:58, on Zulip):

and that is the one we would depend on

nikomatsakis (May 15 2018 at 19:58, on Zulip):

no reason to have rustc build and support the naive one

nikomatsakis (May 15 2018 at 19:58, on Zulip):

it takes a non-trivial amount of time to compile :)

nikomatsakis (May 15 2018 at 19:58, on Zulip):

I guess that's the first work item

pnkfelix (May 15 2018 at 19:59, on Zulip):

yeah sounds like that is a task that blocks both @qmx and myself.

nikomatsakis (May 15 2018 at 20:00, on Zulip):

I don't think it necessarily blocks you @pnkfelix

nikomatsakis (May 15 2018 at 20:00, on Zulip):

but in any case I jus filed https://github.com/rust-lang-nursery/borrow-check/issues/31

nikomatsakis (May 15 2018 at 20:00, on Zulip):

that is, I imagined this being a library, whereas you need an executable

pnkfelix (May 15 2018 at 20:00, on Zulip):

Well I can certainly work on the text based format

nikomatsakis (May 15 2018 at 20:00, on Zulip):

anyway, it might block you too you're right

nikomatsakis (May 15 2018 at 20:00, on Zulip):

we should file an issue

pnkfelix (May 15 2018 at 20:00, on Zulip):

but I wouldn't want to land it before the core crate has been factored out

nikomatsakis (May 15 2018 at 20:00, on Zulip):

(I'm gonna have to run in a sec btw)

pnkfelix (May 15 2018 at 20:00, on Zulip):

well times about up anywauy

pnkfelix (May 15 2018 at 20:00, on Zulip):

since I want to keep this mtg to 30 min

nikomatsakis (May 15 2018 at 20:01, on Zulip):

yep. main thing is that I would do the simplest formats we can get away with. basically just lines of numbers ... so that we write minimal code :)

pnkfelix (May 15 2018 at 20:01, on Zulip):

Any one have any questions? I know we didn't exactly hand out concrete tasks

Santiago Pastorino (May 15 2018 at 20:01, on Zulip):

nope

qmx (May 15 2018 at 20:02, on Zulip):

ok, I'll try to spin a new crate from TimelyOptand add it as a git dep for now

nikomatsakis (May 15 2018 at 20:02, on Zulip):

sounds like we have a kind of plan:

Last update: Nov 22 2019 at 00:15UTC