Stream: t-compiler/wg-polonius

Topic: meeting 2019.06.25


lqd (Jun 25 2019 at 19:00, on Zulip):

hello friends from @WG-polonius (and @Robert Jacobson) :wave:

lqd (Jun 25 2019 at 19:00, on Zulip):

hopefully everyone is doing good :)

lqd (Jun 25 2019 at 19:01, on Zulip):

as usual our paper roadmap is here

Robert Jacobson (Jun 25 2019 at 19:01, on Zulip):

(I don't mind being a friend. :slight_smile: )

lqd (Jun 25 2019 at 19:01, on Zulip):

@Robert Jacobson welcome !

lqd (Jun 25 2019 at 19:02, on Zulip):

last week's "meeting" was mostly updates, and I've finally written up the notes from the meeting before that

lqd (Jun 25 2019 at 19:03, on Zulip):

I see Albin and Niko have been discussing the liveness rustc PR step we mentioned last time

lqd (Jun 25 2019 at 19:03, on Zulip):

@Albin Stjerna how do you feel about it btw ?

Albin Stjerna (Jun 25 2019 at 19:04, on Zulip):

Well, in summary I have tried to generate input for each point in the CFG that "this variable is initialised here" and use that for liveness calculations, but in some edge cases it doesn't see variables as initialized when they are and Niko is helping me debug it. So, err, I feel fine about it right now

Albin Stjerna (Jun 25 2019 at 19:04, on Zulip):

The idea is to eventually have Polonius calculate this, but this is a stepping stone

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

@Robert Jacobson if you want to be added to the @WG-polonius user group so you get pings in the future, that's easy enough. =)

Albin Stjerna (Jun 25 2019 at 19:05, on Zulip):

(I'm not sure how much anyone remembers)

lqd (Jun 25 2019 at 19:05, on Zulip):

(or liveness in general for that matter, or would you want us to look into some other steps in parallel — I mostly want to make sure you're not annoyed with liveness @Albin Stjerna :)

Robert Jacobson (Jun 25 2019 at 19:05, on Zulip):

Sure, that'd be cool. Do I add myself, or does someone graciously add me?

Albin Stjerna (Jun 25 2019 at 19:05, on Zulip):

@lqd Oh I'm keeping myself busy!

Albin Stjerna (Jun 25 2019 at 19:06, on Zulip):

Specifically, I'm reading up on type theory (in fact, most of it, since my semantics course didn't cover that at all)

nikomatsakis (Jun 25 2019 at 19:06, on Zulip):

Sure, that'd be cool. Do I add myself, or does someone graciously add me?

I added you, though I think in theory you can add yourself

lqd (Jun 25 2019 at 19:06, on Zulip):

glad to hear it, so it seems you and niko are on top of this, as usual

nikomatsakis (Jun 25 2019 at 19:06, on Zulip):

I think a good question is whether we can spin up a new task for @Robert Jacobson -- at the moment I'm not 100% sure what that would be though

Albin Stjerna (Jun 25 2019 at 19:06, on Zulip):

My goal is to have some sort of smooth transition from @Aaron Weiss' type system (the parts touching on Polonius) to the actual Polonius datalog code

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

(it seems like there's plenty of parallelizable work ahead, but we're not quite there)

lqd (Jun 25 2019 at 19:07, on Zulip):

true :thinking:

lqd (Jun 25 2019 at 19:07, on Zulip):

maybe similarly to Albin (when starting up) reading up the blog posts, or the youtube videos, and the likes ?

lqd (Jun 25 2019 at 19:08, on Zulip):

it seems @lokalmatador is handling profiling and data collection, probably not much there to help with

lokalmatador (Jun 25 2019 at 19:09, on Zulip):

hi! sorry for being late...

lqd (Jun 25 2019 at 19:09, on Zulip):

(no worries :)

Albin Stjerna (Jun 25 2019 at 19:09, on Zulip):

If we are still on the "what's up" phase, I have been working on benchmarking. Specifically, I repurposed my Github scraper to catch slightly over 17 000 Git repositories that actually compile under Rust nightly with no system dependencies

Albin Stjerna (Jun 25 2019 at 19:09, on Zulip):

And I have been using that to gather facts and Polonius' runtime on those facts

lokalmatador (Jun 25 2019 at 19:09, on Zulip):

it seems lokalmatador is handling profiling and data collection, probably not much there to help with

yup - for now I'm fine

lqd (Jun 25 2019 at 19:10, on Zulip):

@Robert Jacobson if you're not familiar with the blogposts or the YT links, I can provide them later if you want

lqd (Jun 25 2019 at 19:11, on Zulip):

@lokalmatador yeah I figured, how have things been going for you and profiling ?

lokalmatador (Jun 25 2019 at 19:11, on Zulip):

And I have been using that to gather facts and Polonius' runtime on those facts

hm, thinking about it for a little - maybe I have a look into that setup asap and also run the instrumented compiler in it?

lqd (Jun 25 2019 at 19:11, on Zulip):

I saw you maybe wanted to talk about Albin's 17K git repos ?

Albin Stjerna (Jun 25 2019 at 19:11, on Zulip):

So far I only have the input size vs runtime correlation matrix from perhaps 30 000 crates or so

Robert Jacobson (Jun 25 2019 at 19:11, on Zulip):

I have them, thanks!

Albin Stjerna (Jun 25 2019 at 19:12, on Zulip):

@lokalmatador It's just a bunch of Python scripts so far, but sure!

lqd (Jun 25 2019 at 19:12, on Zulip):

@lokalmatador were you able to try gathering data on the rustc-perf benchmarks btw ?

lokalmatador (Jun 25 2019 at 19:12, on Zulip):

is it on github?

Albin Stjerna (Jun 25 2019 at 19:12, on Zulip):

Not yet, but I can prepare it and push it

Robert Jacobson (Jun 25 2019 at 19:12, on Zulip):

@Albin Stjerna That's awesome.

Albin Stjerna (Jun 25 2019 at 19:12, on Zulip):

Oh and I found a pathological input

lokalmatador (Jun 25 2019 at 19:13, on Zulip):

lokalmatador were you able to try gathering data on the rustc-perf benchmarks btw ?

not for now, right now I'm just running them as explained in the readme to see which ones work and which not

lqd (Jun 25 2019 at 19:13, on Zulip):

@Albin Stjerna you've built a polonius-crater it seems :)

Albin Stjerna (Jun 25 2019 at 19:13, on Zulip):

This large static array generates 11 GB of input

Albin Stjerna (Jun 25 2019 at 19:14, on Zulip):

@lqd I tried to use crater but I spent a day or two trying to understand it and then gave up :)

lqd (Jun 25 2019 at 19:14, on Zulip):

@lokalmatador cool, keep us posted on that if you can, it would be very interesting to know which of those work and which do not, it's been a while since santiago did that

nikomatsakis (Jun 25 2019 at 19:14, on Zulip):

This large static array generates 11 GB of input

yeah we have some special cases for this

nikomatsakis (Jun 25 2019 at 19:14, on Zulip):

in the existing NLL code

nikomatsakis (Jun 25 2019 at 19:14, on Zulip):

i.e., targeting large static constants

nikomatsakis (Jun 25 2019 at 19:14, on Zulip):

at some point we'll have to do something similar for polonius

lqd (Jun 25 2019 at 19:14, on Zulip):

ah yes, good memories of huge static arrays

lokalmatador (Jun 25 2019 at 19:15, on Zulip):

lokalmatador cool, keep us posted on that if you can, it would be very interesting to know which of those work and which do not, it's been a while since santiago did that

well, they just finished and script-servo failed

lqd (Jun 25 2019 at 19:15, on Zulip):

I myself have mostly been looking at the rustc results, dealt with the smaller cases (but will need some new set of eyes in time ofc)

lqd (Jun 25 2019 at 19:16, on Zulip):

and been looking more, and exploring the cases with loops, which fail with polonius

Robert Jacobson (Jun 25 2019 at 19:16, on Zulip):

Possibly related? https://github.com/rust-lang/rust/issues/55795

lqd (Jun 25 2019 at 19:16, on Zulip):

Matthew has another PR with MIR cleanup/fixes around loops, so maybe it'll change those results, I'll rerun them as soon as the PR lands

lqd (Jun 25 2019 at 19:17, on Zulip):

(and I might have to pick your brain @Matthew Jasper on these specific failing tests if that's ok, whenever)

Albin Stjerna (Jun 25 2019 at 19:17, on Zulip):

@lokalmatador Real-time follow-up: here's the repository: https://github.com/albins/msc-polonius-fact-study

Albin Stjerna (Jun 25 2019 at 19:18, on Zulip):

It's incredibly me-centric right now (which is why I didn't put it out there), and some of the scripts are weird

lqd (Jun 25 2019 at 19:18, on Zulip):

I hope to continue on this task this week, hopefully make more progress than before

lqd (Jun 25 2019 at 19:19, on Zulip):

otherwise, Albin you're leaving wednesday right ?

lqd (Jun 25 2019 at 19:20, on Zulip):

all in all it seems the plan this week looks like:
- me: rustc test suite, hopefully with Matthew's help we'll make some progress
- Niko and Albin: hash out the region_live_at rustc PR questions
- lokalmatador: running some of the rustc-perf benchmarks to see which fail and which do not fail, + maybe gather data as well

nikomatsakis (Jun 25 2019 at 19:21, on Zulip):

otherwise, Albin you're leaving wednesday right ?

remind me, for how long etc? :)

lqd (Jun 25 2019 at 19:22, on Zulip):

and last but not least, @Robert Jacobson at least you now have links and videos if you're interested in checking those out (feel free to ping us if you have questions btw)

nikomatsakis (Jun 25 2019 at 19:23, on Zulip):

sounds like a plan to me! :heart: @lqd

lqd (Jun 25 2019 at 19:23, on Zulip):

(I could be mistaken about @Albin Stjerna leaving for a bit, but it does ring a bell)

Robert Jacobson (Jun 25 2019 at 19:23, on Zulip):

Thank you. I've been studying Niko's blog posts especially. Accidentally used him as a rubber duck, but fortunately he was too busy to notice. :)

Albin Stjerna (Jun 25 2019 at 19:24, on Zulip):

otherwise, Albin you're leaving wednesday right ?

Yes! Or rather, my girlfriend comes home from Australia and we both leave on a brief vacation until Sunday, inclusive)

Albin Stjerna (Jun 25 2019 at 19:25, on Zulip):

Thank you. I've been studying Niko's blog posts especially. Accidentally used him as a rubber duck, but fortunately he was too busy to notice. :)

I have done this more than once already, so I think this is all very normal

lqd (Jun 25 2019 at 19:25, on Zulip):

nice, enjoy the vacation Albin :) — maybe your girlfriend also enjoys datalog and can join us all here, it's fun ;)

Albin Stjerna (Jun 25 2019 at 19:26, on Zulip):

Well one of her sisters is literally a Prolog implementation so it's not that bad of an idea

lqd (Jun 25 2019 at 19:26, on Zulip):

that's uncanny :)

Albin Stjerna (Jun 25 2019 at 19:26, on Zulip):

What's even more uncanny is that I refused to use the same Prolog implementation about ten years ago because it was proprietary

lqd (Jun 25 2019 at 19:27, on Zulip):

and with 4 minutes to spare, everyone, have a good evening/good afternoon, thanks a lot for your time :) (4 minutes gained in Niko's busy schedule ;)

Albin Stjerna (Jun 25 2019 at 19:28, on Zulip):

Good job everyone

lokalmatador (Jun 25 2019 at 19:29, on Zulip):

bye

Robert Jacobson (Jun 25 2019 at 19:31, on Zulip):

:clap:

lqd (Jun 25 2019 at 19:31, on Zulip):

(and for once, I will write up the meeting notes earlier than the usual :)

Last update: Nov 15 2019 at 21:15UTC