Stream: t-compiler/wg-polonius

Topic: meeting 2019.06.04


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

hello friends from @WG-polonius :)

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

Hi!

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

hopefully y'all are good

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

Yup!

lokalmatador (Jun 04 2019 at 19:02, on Zulip):

hi!

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

our usual Paper doc

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

I've tried to look at what happened last meeting and this week

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

(encoded as parts of this meeting minutes PR https://github.com/rust-lang/compiler-team/pull/101)

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

I've seen the measureme/summarize problems were fixed @lokalmatador that's great :)

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

howdy

lokalmatador (Jun 04 2019 at 19:04, on Zulip):

yup

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

I've also watched the video between Albin and Niko, thanks for doing this you two :)

lokalmatador (Jun 04 2019 at 19:04, on Zulip):

doing another compile run right now - did a test earlier and I'm getting results

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

Cool! How involved is getting profiling data?

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

how hard you mean ?

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

Err, yes

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

Hey @Albin Stjerna is there any chance you could cleanup https://github.com/rust-lang/polonius/pull/105 so as to put all the "fact updates" into one commit, and the interesting stuff in another? :)

lokalmatador (Jun 04 2019 at 19:05, on Zulip):

so next thing will be to check with - I guess @nikomatsakis - if I did not miss anything and then look into running it on some larger pieces of code

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

(I'd be happy with a squashed history with 2 commits)

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

I think it uses the :star: -Z self-profile :star: so I think very easy :)

lokalmatador (Jun 04 2019 at 19:05, on Zulip):

Cool! How involved is getting profiling data?

actually not that much

lokalmatador (Jun 04 2019 at 19:06, on Zulip):

the API is evntually pretty straight-forward

lokalmatador (Jun 04 2019 at 19:06, on Zulip):

and measurme gives some nice overview

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

(I'd be happy with a squashed history with 2 commits)

that'll be only one commit with 1.7M changes :)

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

@nikomatsakis It requires git-fu that's a bit over my head, but I'll try. I think what I'd want to do is to undo all commits and go back to just the changed files, and then re-commit everything. Which I suppose I could do?

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

if you want, I can do it quite easily

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

but yes

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

I suppose I ought to just review by checking out your branch in any case

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

I think it would be good for me to know how to do that though

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

the basic idea is git reset $(git merge-base rust-lang/master HEAD) and then adding back the files

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

presuming you named your "remote" rust-lang :)

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

Ok that's...easier than I thought

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

I was wondering about this Niko, around here about this huge diff

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

I'll have a look at it after the meeting

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

er, after the git reset, I think you will have everything staged in your index, so maybe you have to unstage

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

I haven't used the command line in a while, I tend to use the emacs magit mode :)

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

I can deal with that

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

Yep, that's what I'm using too

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

I was wondering about this Niko, around here about this huge diff

yeah

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

since that includes, regenerating all the clap facts (most of the diff), copying over some of rustcs tests (including some commented out ones)

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

Yep, that's what I'm using too

ah, then you want X s ("soft git reset")

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

since that includes, regenerating all the clap facts (most of the diff), copying over some of rustcs tests (including some commented out ones)

you were wondering about separating the commits? or whether the regenerated facts were truly necessary

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

i'm mostly just assuming they're correct, of course

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

mostly the second, hoping they are correct indeed

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

well, presumably we have to generate the new liveness facts

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

so I guess we might as well regenerate everything

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

and whether/how we would plan testing, fact regeneration, etc

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

that reminds me :)

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

you had that branch with testing results...

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

how to choose between testing in our repo versus rustc's

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

yes

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

I still don't know of a better way to test correctness than testing against rustc

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

(I haven't yet been able to go back to this since coming back from vacation but will work on this this week)

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

however, it occurs to me that @Albin Stjerna's liveness work - might be good to check?

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

but I guess we can land it and then "Fix up"

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

probably easier to land and fix up, because it depends on a PR from Matthew which I think hasn't landed yet

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

but both would work for sure

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

yeah

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

(I haven't yet been able to go back to this since coming back from vacation but will work on this this week)

what is the plan here -- to land those ref files I guess?

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

for some yes

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

some are trivial, either ignoring or landing the ref files

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

the rest I would like to look at more closely

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

to even know what is going on tbh

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

apart from that, @Albin Stjerna and I recorded a call where we discussed how to handle the "move/initialization" analysis (posted it to youtube, too), so I guess the next steps there are to implement that

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

and of course there is the proposed change that I wanted to make to polonius to remove subset relations :)

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

(I've watched it :)

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

which is probably another heading

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

in the paper doc

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

do we feel we have enough there to start working on the move/init ?

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

let's see what @Albin Stjerna thinks ;)

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

Yes, I think so!

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

I haven't looked at it yet, but I think I have enough to get started

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

The polonius stuff for move/init will probably not be very hard; the rustc part is what I worry about

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

and of course there is the proposed change that I wanted to make to polonius to remove subset relations :)

here, we might need more details but I'd love to take a look at that

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

I was looking over the list of videos to record -- after talking with @Aaron Weiss, I feel like I remember better some of the more subtle interactions

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

we could try to take advantage of that by recording another "general" session to talk over the subset relation and the role it plays, why we might be able to get rid of it

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

before I forget again :P

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

That sounds like a very good idea

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

I was noticing a lot of our outlives relation data are the cycles you talked about, I think

lokalmatador (Jun 04 2019 at 19:18, on Zulip):

The polonius stuff for move/init will probably not be very hard; the rustc part is what I worry about

hm, that probably also would be worth to consider in profiling?

lokalmatador (Jun 04 2019 at 19:18, on Zulip):

at some point

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

Yes, and the liveness

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

That's now a separate calculation

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

A separate function, even

lokalmatador (Jun 04 2019 at 19:19, on Zulip):

A separate function, even

then just let me know when it's ready to profile

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

we can use measureme inside polonius itself right ?

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

Well first things first, let's merge it :)

lokalmatador (Jun 04 2019 at 19:19, on Zulip):

sure sure

lokalmatador (Jun 04 2019 at 19:20, on Zulip):

no need to hurry

lokalmatador (Jun 04 2019 at 19:20, on Zulip):

we can use measureme inside polonius itself right ?

ah, in how far do you mean?

lokalmatador (Jun 04 2019 at 19:20, on Zulip):

does it have an API for that? I honestly did no check yet

lqd (Jun 04 2019 at 19:21, on Zulip):

measuring from within rustc we'd have a global polonius execution time, but in the future it might be interesting to have profiling of polonius itself

lqd (Jun 04 2019 at 19:21, on Zulip):

eg computing liveness, checking illegal accesses, illegal subset relations, etc when polonius does more I mean

lokalmatador (Jun 04 2019 at 19:22, on Zulip):

I see

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

Well, I do emit a debug log entry with the runtime for the liveness calculations :)

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

You could parse that ;)

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

sure :)

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

(that was a joke)

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

ps @Albin Stjerna I've been skimming the PR, looks good from what I can tell, i'm inclined to land

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

(I did a local checkout)

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

Good

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

I'm working on the new commit history!

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

ok

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

Almost done

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

let me know when that's done and I'll take a last look

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

so -- do we know what we're up to in the coming week? one thing might be scheduling a time to go over polonius

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

that is, another zoom call

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

so I think the plan for this week is more profiling from @lokalmatador, niko reviewing the polonius PR + releasing a new version when it lands, and Albin updating the rustc PR after that

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

we did friday morning last week

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

I think Friday at 9:00 UTC-04:00 would be good for me again

lqd (Jun 04 2019 at 19:24, on Zulip):

myself -> rustc tests

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

15:00 CEST

lqd (Jun 04 2019 at 19:24, on Zulip):

I probably could attend at this time

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

I could too

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

ok :) @lokalmatador ps not sure if you've interest in attending/watching these calls, but obviously you'd be weclome =)

Aaron Weiss (Jun 04 2019 at 19:26, on Zulip):

@nikomatsakis what does "going over polonius" entail? is this the kind of thing I'd want to make time for?

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

Ok, two-commit history super force pushed!

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

Either it worked or the entire history is hosed

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

(I have back-ups)

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

@Aaron Weiss probably, but I intended to talk over a lot of the stuff we discussed over lunch the other day

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

And back-ups of those

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

(I have back-ups)

git reflog is your friend :)

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

i.e., the examples showing why we have subset propagation

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

the dreaded #47680

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

and how they wind up working out and why

Aaron Weiss (Jun 04 2019 at 19:27, on Zulip):

Well, 9 am on Friday works for me. So, if you want me to be there, I'll throw it on my calendar. :big_smile:

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

I can add you to the invite :) it'll be on the compiler team calendar

Aaron Weiss (Jun 04 2019 at 19:28, on Zulip):

Works for me!

lokalmatador (Jun 04 2019 at 19:28, on Zulip):

ok :) lokalmatador ps not sure if you've interest in attending/watching these calls, but obviously you'd be weclome =)

well, as I guess can learn some things it would make sense

lqd (Jun 04 2019 at 19:28, on Zulip):

what can we prepare for this call ?

lqd (Jun 04 2019 at 19:28, on Zulip):

(read/learn/etc)

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

event link

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

if you want me to add you as an invitee, privmsg me your e-mail (or pubmsg, as you choose :)

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

what can we prepare for this call ?

uh not sure :)

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

I should post the video from the last one

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

dang it

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

shakes fist at video editing

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

and with that we are right on time, we are sheduling experts, it's uncanny :) have a lovely evening/afternoon everyone, talk to you on Friday :wave:

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

Yay!

lqd (Jun 04 2019 at 19:32, on Zulip):

(I'll prepare the minutes)

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

I have another thing that I just realised I forgot about

lqd (Jun 04 2019 at 19:33, on Zulip):

expert scheduling canceled

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

My subject reviewer roped me into doing a 15-min-ish presentation on my work with Polonius at a Programing Language Research Meetup at Oracle in Stockholm next Wednesday (June 12th). My plan is to first explain what the borrow check does, and then show some of the Datalog and the corresponding Datafrog code. Suggestions are welcome!

lqd (Jun 04 2019 at 19:33, on Zulip):

ooh nice :)

lqd (Jun 04 2019 at 19:34, on Zulip):

Niko's first post about Polonius seems like good material

Aaron Weiss (Jun 04 2019 at 19:34, on Zulip):

@Albin Stjerna presenting things to other people can be super useful, so good luck and hopefully it'll be fun! :smile:

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

Thanks, and yeah!

lqd (Jun 04 2019 at 19:36, on Zulip):

if you're showing datafrog code, then Frank's post about that can also be useful material for the presentation

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

I think so too. I'll try to get into my liveness stuff even if it isn't that interesting from a technical standpoint too because a) I can show nice rainbow graphs and b) I actually know that part

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

But I thought I should give a heads-up that I'm going

lqd (Jun 04 2019 at 19:38, on Zulip):

good luck for the presentation !

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

Thanks!

lokalmatador (Jun 04 2019 at 19:39, on Zulip):

yeah, good luck!

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

Ok, NOW we can be scheduling experts

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

Just...slightly late scheduling experts

lqd (Jun 04 2019 at 19:40, on Zulip):

expert scheduling is back ON :thumbs_up:

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

(I think as a former TA at a course in combinatorial optimisation that dealt in scheduling I am perhaps allowed to refer to myself as a literal scheduling expert)

lqd (Jun 04 2019 at 19:42, on Zulip):

I will make sure to mention in the minutes that you will be our resident scheduling expert from now on

lokalmatador (Jun 04 2019 at 19:42, on Zulip):

(I think as a former TA at a course in combinatorial optimisation that dealt in scheduling I am perhaps allowed to refer to myself as a literal scheduling expert)

legit.

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

I might be a bit late for today's Zoom call, but please start without me and I'll join in

lqd (Jun 07 2019 at 12:29, on Zulip):

speaking of which, sorry that it's this late before the meeting, but I have prepared this describing my (still not working) explorations about the experimental variant (not sure it’s super useful, but since we should be talking about tracking subsets, it seemed fitting)

lokalmatador (Jun 07 2019 at 12:47, on Zulip):

I actually can't attend the call as I have to go an serve beer at our local streetmusic festival! unfortunately someone called in sick, so I have to leave earlier

nikomatsakis (Jun 07 2019 at 13:04, on Zulip):

@Aaron Weiss and I are here =)

nikomatsakis (Jun 07 2019 at 13:05, on Zulip):

Zoom link

nikomatsakis (Jun 07 2019 at 13:06, on Zulip):

Paper document

lqd (Jun 07 2019 at 13:55, on Zulip):

thanks everyone :)

nikomatsakis (Jun 07 2019 at 15:01, on Zulip):

Recording -- still processing

lqd (Jun 07 2019 at 17:02, on Zulip):

/me is feeling full of energy and motivation after the meeting

Santiago Pastorino (Jun 07 2019 at 18:58, on Zulip):

@nikomatsakis I guess the video worth to be added to rustc lectures series playlist, right? :)

Santiago Pastorino (Jun 07 2019 at 18:59, on Zulip):

if it makes sense add it and let me know so I can also add that to the pending to be transcribed list of videos

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

@Santiago Pastorino mm unclear

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

I mean it's interesting but it's also kind of "prospective design"

lqd (Jun 11 2019 at 11:49, on Zulip):

(sorry for the delay as always, I've finally posted the minutes for this meeting here)

Last update: Nov 15 2019 at 21:20UTC