Stream: t-compiler/wg-polonius

Topic: meeting 2019.05.07


lqd (May 07 2019 at 18:59, on Zulip):

hello friends from @WG-polonius :)

Albin Stjerna (May 07 2019 at 19:00, on Zulip):

Hi!

lqd (May 07 2019 at 19:01, on Zulip):

I assume we'll have a shorter meeting today

Albin Stjerna (May 07 2019 at 19:01, on Zulip):

Sounds good; I've just awoken from having a migraine and then sleeping for for hours or so, so I'm not exactly at the top of my game

lqd (May 07 2019 at 19:01, on Zulip):

yeah I've heard :/

lqd (May 07 2019 at 19:02, on Zulip):

our usual roadmap document

lqd (May 07 2019 at 19:02, on Zulip):

IIUC Niko has indeed written up more steps for Albin

nikomatsakis (May 07 2019 at 19:03, on Zulip):

Yeah I think at this point -- modulo the specifics of drop -- we've got complete instructions for all of liveness

lqd (May 07 2019 at 19:03, on Zulip):

and Albin has been running with those and has been going smoothly despite the current migraine

nikomatsakis (May 07 2019 at 19:03, on Zulip):

probably I should get "ahead of the game" and try to write up some directions on drop as well as starting to sketch out what moves would look like

Albin Stjerna (May 07 2019 at 19:03, on Zulip):

yes, and I have done the work on calculating use-live and drop-live variables, and am currently working on moving on to live regions

nikomatsakis (May 07 2019 at 19:03, on Zulip):

both of those prob require me to go look against at rustc and refresh my memory there

nikomatsakis (May 07 2019 at 19:04, on Zulip):

@lqd it looks like the testsuite analysis is not something we wrote in the roadmap doc, but I think we should :)

lqd (May 07 2019 at 19:04, on Zulip):

agreed, I'll do so, and in the meeting minutes

lqd (May 07 2019 at 19:04, on Zulip):

in any case I'll work on that

lqd (May 07 2019 at 19:05, on Zulip):

just to update everyone else:

lqd (May 07 2019 at 19:05, on Zulip):

I've just been rerunning the rustc test suite with polonius, and will be looking more closely at the failures, and the differences from the NLL tests specifically

lqd (May 07 2019 at 19:06, on Zulip):

as we expect polonius support to have regressed a bit over time

Albin Stjerna (May 07 2019 at 19:06, on Zulip):

Cool, how automated is that?

lqd (May 07 2019 at 19:06, on Zulip):

running the tests or locating the problems ?

Albin Stjerna (May 07 2019 at 19:07, on Zulip):

I think I meant running the tests

lqd (May 07 2019 at 19:07, on Zulip):

completely automated :)

lqd (May 07 2019 at 19:07, on Zulip):

it's a testing mode you can ask as part of x.py test (--compare-mode polonius IIRC)

Albin Stjerna (May 07 2019 at 19:08, on Zulip):

Is it CI:d also? I guess that would be interesting for me as well, as I start ripping things out of rustc and moving it to Polonius

Albin Stjerna (May 07 2019 at 19:08, on Zulip):

Ah, ok, cool! Is this documented anywhere?

Albin Stjerna (May 07 2019 at 19:08, on Zulip):

That's even better than CI in fact

lqd (May 07 2019 at 19:08, on Zulip):

not on CI, on CI only the smaller smoke tests are run IIUC. I'm not sure it's documented tbh

lqd (May 07 2019 at 19:09, on Zulip):

@lokalmatador have you been able to do what you wanted wrt rustc building / profiling and so on btw ?

Albin Stjerna (May 07 2019 at 19:09, on Zulip):

Oh, I also had some troubles with the tests when I regenerated the facts using the updated rustc, but I never looked into it closer

Albin Stjerna (May 07 2019 at 19:09, on Zulip):

The Polonius unit tests that is

Albin Stjerna (May 07 2019 at 19:10, on Zulip):

I had a feeling it was because of some hard-coded values that might have changed, in particular for variable numbers, but I wasn't sure

Albin Stjerna (May 07 2019 at 19:10, on Zulip):

I just thought I should mention this in case it raises any red flags with anyone

lokalmatador (May 07 2019 at 19:10, on Zulip):

lokalmatador have you been able to do what you wanted wrt rustc building / profiling and so on btw ?

yeah building and everything works out, still getting a better picture of rustc and trying to get rid of a workshop organization (though unrelated to here but keeping me uselessly busy)

lokalmatador (May 07 2019 at 19:11, on Zulip):

next thing is profiling and then trying to work off the list of task from the roadmap document

lqd (May 07 2019 at 19:11, on Zulip):

no red flags immediately jump at me, but we'll take a look at it more closely

Albin Stjerna (May 07 2019 at 19:11, on Zulip):

Anyway, I reverted the modified fact files for issue 46780 and that solved the symptom regardless of the underlying problem

lqd (May 07 2019 at 19:11, on Zulip):

next thing is profiling and then trying to work off the list of task from the roadmap document

awesome, good to hear :)

Albin Stjerna (May 07 2019 at 19:12, on Zulip):

Yay!

lqd (May 07 2019 at 19:12, on Zulip):

@Albin Stjerna sometimes the output needs to be updated (eg by --blessing the test run) so that the test output matches the new rustc behaviour

Albin Stjerna (May 07 2019 at 19:13, on Zulip):

Hm, but this doesn't go for Polonius right? This is for rustc tests?

lqd (May 07 2019 at 19:13, on Zulip):

but since you mention facts it might not be exactly that; we'll look into it :)

Albin Stjerna (May 07 2019 at 19:13, on Zulip):

I...haven't looked into any rustc tests yet

lqd (May 07 2019 at 19:13, on Zulip):

ah alright, so all this was specifically about rustc tests, not the polonius tests

Albin Stjerna (May 07 2019 at 19:14, on Zulip):

I figured

lqd (May 07 2019 at 19:14, on Zulip):

that is, you might encounter those in your rustc PR, but since it's about changing facts, it's less likely I feel

Albin Stjerna (May 07 2019 at 19:15, on Zulip):

I figured as well, but maybe when I start removing the region logic, I'm not sure

lqd (May 07 2019 at 19:15, on Zulip):

anyway, I'll look at our rustc tests more closely this week

lqd (May 07 2019 at 19:15, on Zulip):

Albin is not blocked either IIUC

Albin Stjerna (May 07 2019 at 19:15, on Zulip):

Nope!

Albin Stjerna (May 07 2019 at 19:15, on Zulip):

Might be before next meeting if the region logic goes according to plan

Albin Stjerna (May 07 2019 at 19:16, on Zulip):

But if @nikomatsakis keeps working on the next steps meanwhile it should all work out

lqd (May 07 2019 at 19:16, on Zulip):

Niko might want to look at move analysis, as it seems liveness is pretty much planned out

lqd (May 07 2019 at 19:16, on Zulip):

but they don't have a lot of time :)

Albin Stjerna (May 07 2019 at 19:17, on Zulip):

I'm hoping I will become more and more independent with time as well, but it's still a bit too much for me I think

lqd (May 07 2019 at 19:17, on Zulip):

and @lokalmatador is making steady progress and will ask questions if any come up and has workshops to organise as well :)

nikomatsakis (May 07 2019 at 19:17, on Zulip):

The question I guess is whether to look more closely at the "drop" stuff in rustc, or the "moves"

lokalmatador (May 07 2019 at 19:17, on Zulip):

and lokalmatador is making steady progress and will ask questions if any come up and has workshops to organise as well :)

sure will do and hopefully the last one

nikomatsakis (May 07 2019 at 19:17, on Zulip):

I guess a starting point for moves would be to cover how the Lark compiler did it (the analysis in Lark was different but similar)

nikomatsakis (May 07 2019 at 19:18, on Zulip):

I'll try to do some of both :)

lqd (May 07 2019 at 19:18, on Zulip):

low priority is also the illegal subset relation questions we had

nikomatsakis (May 07 2019 at 19:18, on Zulip):

oh dear

Albin Stjerna (May 07 2019 at 19:19, on Zulip):

Personally, I am really looking forward to seeing how the final pure Polonius borrowcheck compares to NLL performance-wise

lqd (May 07 2019 at 19:19, on Zulip):

but don't worry about it just yet, I probably won't have time to look into those right away niko :)

Albin Stjerna (May 07 2019 at 19:19, on Zulip):

(I know it's still a long way to go)

lqd (May 07 2019 at 19:19, on Zulip):

@Albin Stjerna heh I was typing "it could take a while" :)

lqd (May 07 2019 at 19:20, on Zulip):

did anybody want to mention something else ?

lqd (May 07 2019 at 19:21, on Zulip):

if not: thank you for your time everyone, take care (esp if you have a migraine) have a nice evening/afternoon! :wave:

nikomatsakis (May 07 2019 at 19:25, on Zulip):

Personally, I am really looking forward to seeing how the final pure Polonius borrowcheck compares to NLL performance-wise

I'm afraid :) that said, we're already scaling way better than NLL did when it was doing the more sensitive analysis, so that helps.

nikomatsakis (May 07 2019 at 19:25, on Zulip):

Thanks @lqd btw!

Albin Stjerna (May 07 2019 at 19:31, on Zulip):

Personally, I am really looking forward to seeing how the final pure Polonius borrowcheck compares to NLL performance-wise

I'm afraid :) that said, we're already scaling way better than NLL did when it was doing the more sensitive analysis, so that helps.

I think the potentially most fun part of this entire project is tuning the Datalog model for the borrowcheck itself; as I see it the other steps are just preparation for this, even though that's potentially what my entire master's project will actually end up being

Albin Stjerna (May 07 2019 at 19:32, on Zulip):

That's the part with the best potential for the typical "spent 200 hours making something 10 000 times worse" experience I strive for :)

Albin Stjerna (May 07 2019 at 19:34, on Zulip):

The part that offers fortune, glory, very time-consuming experiments, and a comparatively large portion of whiteboard prototyping

Last update: Nov 15 2019 at 20:45UTC