Stream: t-compiler/wg-polonius

Topic: meeting 2020.02.11


Albin Stjerna (Feb 11 2020 at 16:38, on Zulip):

Hi! :wave: Here's a preliminary update in case I'm not back home in time for when the meeting starts; I have managed to rebase my branch (as I said), and did run compiletest which did memory-out for at least one test. I had some failures but I don't have them here with me to report them

Albin Stjerna (Feb 11 2020 at 19:59, on Zulip):

Nope, I'm here!

Albin Stjerna (Feb 11 2020 at 20:00, on Zulip):

Ok, so I get this from ui-test:

failures:
    [ui (polonius)] ui/hrtb/hrtb-perfect-forwarding.rs
    [ui (polonius)] ui/nll/maybe-initialized-drop-implicit-fragment-drop.rs
    [ui (polonius)] ui/nll/maybe-initialized-drop-with-fragment.rs
    [ui (polonius)] ui/nll/maybe-initialized-drop-with-uninitialized-fragments.rs
    [ui (polonius)] ui/nll/outlives-suggestion-simple.rs
    [ui (polonius)] ui/numbers-arithmetic/saturating-float-casts.rs
    [ui (polonius)] ui/wrapping-int-combinations.rs

Which...doesn't look great.

Albin Stjerna (Feb 11 2020 at 20:01, on Zulip):

Ok, ui/wrapping-int-combinations.rs and ui/numbers-arithmetic/saturating-float-casts.rs exits with a KILL signal, weird. Maybe I'll have to rerun them.

Albin Stjerna (Feb 11 2020 at 20:03, on Zulip):

ui/nll/outlives-suggestion-simple.rs difference seems...cosmetic if I read it correctly

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

Wave

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

Howdy folks

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

I've devoted less than zero brain time to polonius :cry:

Albin Stjerna (Feb 11 2020 at 20:04, on Zulip):

oooh, ok some of these look like actual errors

Albin Stjerna (Feb 11 2020 at 20:05, on Zulip):

Anyway, Hi! :)

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

Hi :)

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

Any sense of what those errors are about?

Albin Stjerna (Feb 11 2020 at 20:05, on Zulip):

Many seem cosmetic

Albin Stjerna (Feb 11 2020 at 20:06, on Zulip):

Two are non-reported errors, i.e Polonius doesn't report an expected error

Albin Stjerna (Feb 11 2020 at 20:07, on Zulip):

Anyway, all the cosmetic error diffs are like this, which I assume means the small help text is either present or missing?

---- [ui (polonius)] ui/nll/outlives-suggestion-simple.rs stdout ----
diff of stderr:

72     |
73     = help: consider adding the following bound: `'a: 'c`
74
+   help: add bound `'a: 'b + 'c`
+
75  error: lifetime may not live long enough
76    --> $DIR/outlives-suggestion-simple.rs:31:9
77     |
Albin Stjerna (Feb 11 2020 at 20:07, on Zulip):

But ui/nll/maybe-initialized-drop-with-uninitialized-fragments.rs and ui/nll/maybe-initialized-drop-implicit-fragment-drop.rs apparently both compile under Polonius, and shouldn't

Albin Stjerna (Feb 11 2020 at 20:07, on Zulip):

And I can't remember if that was expected behaviour

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

hmm

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

the cosmetic things seem fine

Albin Stjerna (Feb 11 2020 at 20:08, on Zulip):

But I remember those as two inputs I actually used when I worked on Polonius

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

not sure what's triggering that but doesn't seem like a big problem

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

But ui/nll/maybe-initialized-drop-with-uninitialized-fragments.rs and ui/nll/maybe-initialized-drop-implicit-fragment-drop.rs apparently both compile under Polonius, and shouldn't

these cases

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

so the first one

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

note the FIXME

nikomatsakis (Feb 11 2020 at 20:09, on Zulip):
    // FIXME ^ This currently errors and it should not.
nikomatsakis (Feb 11 2020 at 20:09, on Zulip):

iow, I think this is polonius fixing a bug

Albin Stjerna (Feb 11 2020 at 20:09, on Zulip):

Haha ok

Albin Stjerna (Feb 11 2020 at 20:09, on Zulip):

Probably, yes

Albin Stjerna (Feb 11 2020 at 20:09, on Zulip):

I thought it was something like that

Albin Stjerna (Feb 11 2020 at 20:10, on Zulip):

God why am I senile at 31

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

I think that might be the case for both, though the second is somewhat more interesting

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

well, actually, I think yeah they are both bugfixes

Albin Stjerna (Feb 11 2020 at 20:10, on Zulip):

phew

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

interesting

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

does that suggest we can maybe merge your work soon? :)

Albin Stjerna (Feb 11 2020 at 20:11, on Zulip):

But I should re-run the ones that were killed with signal 9

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

oh yeah, that

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

that's less good :)

Albin Stjerna (Feb 11 2020 at 20:11, on Zulip):

I...guess?

Albin Stjerna (Feb 11 2020 at 20:12, on Zulip):

I mean, we don't have any good unit tests for Polonius, but this suggests that my code isn't too far off anyway

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

I see @Moritz Vetter was interested in getting involved

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

(I'm skimming some of the older messages)

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

I was wondering whether they can help here but maybe not the best starting place

Albin Stjerna (Feb 11 2020 at 20:13, on Zulip):

Hmm, I wonder if we can find some part that sort of touches many things without being impossible to start with

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

given how much bandwidth we have

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

I think we should be laser focused on one thing at a time

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

to that end, I think the next step is landing your PR

Albin Stjerna (Feb 11 2020 at 20:15, on Zulip):

that makes sense

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

maybe we should take some notes on the PR as to the status

Albin Stjerna (Feb 11 2020 at 20:15, on Zulip):

I can do that!

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

and in particular which things are next to investigate?

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

seems like the -9 kills tests, basically?

Albin Stjerna (Feb 11 2020 at 20:15, on Zulip):

I'll re-run the tests and write something up

Albin Stjerna (Feb 11 2020 at 20:15, on Zulip):

Yes, and that might have been me

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

that would be awesome

Albin Stjerna (Feb 11 2020 at 20:15, on Zulip):

Or my OS, I don't know

Albin Stjerna (Feb 11 2020 at 20:15, on Zulip):

Also, there are already notes in the PR for next steps!

Albin Stjerna (Feb 11 2020 at 20:16, on Zulip):

But they could be more detailed; I'll take care of that

Albin Stjerna (Feb 11 2020 at 20:17, on Zulip):

I'll also make sure my Rust PR is rustfmt:d etc

Albin Stjerna (Feb 11 2020 at 20:17, on Zulip):

But would we consider passing the compiletests to be sufficient testing of the PR?

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

I would

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

it's the only real test suite we've got, right?

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

side note that I've been toying with different ways to represent "roadmaps"

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

I guess

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

Aha! Non-zero brain time!

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

(I think for this group it could be really helpful to make a roadmap, I at least find it hard to remembevr what's going on 99% of the time)

Albin Stjerna (Feb 11 2020 at 20:19, on Zulip):

Err, yes, apparently me too

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

well, I'm working on something I hope to use for #wg-traits but I think it'd apply here

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

I guess we'll validate it there first

Albin Stjerna (Feb 11 2020 at 20:22, on Zulip):

I think that sounds good; my long-term ambition is to calibrate my life to have more time for Polonius, I just haven't managed the calibration yet which means I now have less time, which means there is no rush to have a better plan as far as I am concerned. It sounds like @lqd also isn't currently at peak efficiency from what I've heard

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

/me hopes everything is ok

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

I have to admit

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

I'm really wanting to narrow my range of activities

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

and polonius has been on my list of "maybe I should try to step back from this", at least for a while

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

not that I'm doing a lot :)

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

an alternative (for all of us) might be

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

I really enjoyed the polonius sprint

Albin Stjerna (Feb 11 2020 at 20:24, on Zulip):

Ok, so I guess that means we should either make sure someone else can drive, or maybe redirect us to something else?

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

I wonder if an alternative might be saying something like "we can't do work on polonius on a weekly basis but"

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

Ok, so I guess that means we should either make sure someone else can drive, or maybe redirect us to something else?

I mean realistically @lqd has been driving anyway :)

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

but yeah that is the question

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

I wonder if an alternative might be saying something like "we can't do work on polonius on a weekly basis but"

I was going to say, but maybe we can do like a "sprint per quarter"

Albin Stjerna (Feb 11 2020 at 20:25, on Zulip):

/me hopes everything is ok

Oh yes, maybe I came off as more dramatic than I meant to

Albin Stjerna (Feb 11 2020 at 20:25, on Zulip):

That might also be a good idea

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

I could see trying to clear 3-5 mornings per week every few months and try to push over a next hill

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

yeah, it's an interesting idea

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

I hadn't really thought it before ;)

Albin Stjerna (Feb 11 2020 at 20:30, on Zulip):

That might be an option

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

I'm curious what @lqd thinks

lqd (Feb 11 2020 at 20:34, on Zulip):

(sorry I'm a bit ill, I'll have to read this tomorrow)

lqd (Feb 11 2020 at 20:35, on Zulip):

(and reply, of course :)

Albin Stjerna (Feb 11 2020 at 20:40, on Zulip):

Aww, get well soon!

Albin Stjerna (Feb 12 2020 at 07:56, on Zulip):

It seems the tests still error with signal 9, I think that's my OS OOM killer

lqd (Feb 12 2020 at 11:09, on Zulip):

(backscrolling) both the saturating float casts and wrapping int are the OOM tests

lqd (Feb 12 2020 at 11:10, on Zulip):

you won't be able to run them again :)

lqd (Feb 12 2020 at 11:13, on Zulip):

I don't think we have settled on a "real" plan to fix those fact generation OOMs, avoiding materializing the data in rustc wouldn't be much help if we end up materializing them in polonius when evaluating the datafrog rules. Also all those are cases of equal origins, so the "equality" alternative rules work could tackle avoiding the problem in fact generation, but unclear as of yet if it won't also just move the OOMs from rustc to polonius

lqd (Feb 12 2020 at 11:16, on Zulip):

yeah I'm not at peak efficiency, I can't easily work at home atm because of laptop issues, and had approximately zero time at work during lunchbreaks...

lqd (Feb 12 2020 at 11:23, on Zulip):

"we can't do work on polonius on a weekly basis but" + "a short sprint every few months" sounds good to me. polonius work isn't easily findable/distributable right now, since it's mostly exploratory apart from what is "already in the roadmap". That is, the move/init errors Albin is working on, and which we should land fast. It's prone to conflicts as it has a bunch of renaming work, and it seems the approach follows what what designed during the last sprint.

lqd (Feb 12 2020 at 11:24, on Zulip):

(in a sense it has already bitrotted once)

lqd (Feb 12 2020 at 11:27, on Zulip):

if the rustc changes in the PR mostly look good to Niko or Matthew it'd be great to land them soon, and iterate on details afterwards, with less risks of conflicts

lqd (Feb 12 2020 at 11:33, on Zulip):

when we've done that we'll have, I think, completed some if not all the biggest chunks of integration work (illegal use errors, illegal subset errors, move/init errors) we set out to do (somewhat close to achieving our first goal, of completeness). And -- including membership constraints, and higher ranked concerns involving chalk which is itself another huge integration topic altogether -- it seems ongoing work would be mostly exploratory as I mentioned.

lqd (Feb 12 2020 at 11:45, on Zulip):

in summary, I think we should quickly land the move errors work, the sooner the better -- and then reconvene to update the roadmap (writing new roadmap items would also be exploratory) even though I'm slightly concerned about whether we'd be able to execute much of the new items with our collective lack of time, and possible dependence on chalk, say, but at least it will provide possible directions for new contributors in general.

lqd (Feb 12 2020 at 11:53, on Zulip):

(and the idea of doing more sprint-like focused work, but more infrequently, and the rest of the time helping out elsewhere where work is needed in the project, sounds good of course :)

Last update: Feb 25 2020 at 04:15UTC