Stream: t-compiler/wg-nll

Topic: steering meeting 2019.01.24


nikomatsakis (Jan 24 2019 at 18:02, on Zulip):

:wave: Hello @WG-compiler-nll

nikomatsakis (Jan 24 2019 at 18:02, on Zulip):
nikomatsakis (Jan 24 2019 at 18:02, on Zulip):

Basically, focus is how to organize ourselves

nikomatsakis (Jan 24 2019 at 18:03, on Zulip):

It'd probably be good to start off with kind of discussion of what outcomes we can expect

davidtwco (Jan 24 2019 at 18:04, on Zulip):

(currently walking home from work so I will catch up in 15 minutes)

nikomatsakis (Jan 24 2019 at 18:04, on Zulip):

one example: I think it'd be useful to come up with conditions for the various stages in finishing the migration to NLL, so that we can judge what's a blocker and what's not

nikomatsakis (Jan 24 2019 at 18:04, on Zulip):

and discuss a bit how we plan to track that

pnkfelix (Jan 24 2019 at 18:05, on Zulip):

see e..g #57804

pnkfelix (Jan 24 2019 at 18:05, on Zulip):

there's turning on migrate mode for 2015

pnkfelix (Jan 24 2019 at 18:05, on Zulip):

then there's switching on full-blown NLL (not migrate mode)

pnkfelix (Jan 24 2019 at 18:06, on Zulip):

we probably should have the steps reflected in the description for #43234

lqd (Jan 24 2019 at 18:06, on Zulip):

good idea

pnkfelix (Jan 24 2019 at 18:06, on Zulip):

(that description hasn't been edited since November)

nikomatsakis (Jan 24 2019 at 18:07, on Zulip):

I imagine the following steps:

pnkfelix (Jan 24 2019 at 18:07, on Zulip):

I can take the action item of trying to update it, most likely based on the discussion we are having right now. :)

nikomatsakis (Jan 24 2019 at 18:08, on Zulip):

hmm Zulip doesn't seem to like my nested list ;)

pnkfelix (Jan 24 2019 at 18:08, on Zulip):

Moving from borrowck=migrate to borrowck=mir may require revisiting the analysis of diagnostic parity

Matthew Jasper (Jan 24 2019 at 18:08, on Zulip):
nikomatsakis (Jan 24 2019 at 18:08, on Zulip):

yes I was going to bring up diagnostics

Matthew Jasper (Jan 24 2019 at 18:08, on Zulip):

Serious

pnkfelix (Jan 24 2019 at 18:08, on Zulip):

heh great minds think alike ... and so do we

nikomatsakis (Jan 24 2019 at 18:08, on Zulip):

one interesting question is something like the NLL 2PB thing

nikomatsakis (Jan 24 2019 at 18:08, on Zulip):

i.e., if there are unresolved questions

nikomatsakis (Jan 24 2019 at 18:08, on Zulip):

do we want to "limit the spread of NLL"

nikomatsakis (Jan 24 2019 at 18:08, on Zulip):

until they are resolved

nikomatsakis (Jan 24 2019 at 18:08, on Zulip):

or does it not matter anyway

lqd (Jan 24 2019 at 18:09, on Zulip):

do we have enough feedback in general, or is no feedback == good news ? whether about the behaviour or diagnostics

nikomatsakis (Jan 24 2019 at 18:09, on Zulip):

(I think that is the only such question?)

pnkfelix (Jan 24 2019 at 18:09, on Zulip):

(the "limit the spread of NLL" ship may have sailed...)

nikomatsakis (Jan 24 2019 at 18:09, on Zulip):

I feel ok about feedback. I've mostly just heard positive things

nikomatsakis (Jan 24 2019 at 18:09, on Zulip):

(the "limit the spread of NLL" ship may have sailed...)

this is my sense too

nikomatsakis (Jan 24 2019 at 18:09, on Zulip):

at first I wanted to wait to extend to 2015

nikomatsakis (Jan 24 2019 at 18:09, on Zulip):

but now I'm guessing..that may not matter so much

nikomatsakis (Jan 24 2019 at 18:10, on Zulip):

of course, I don't really have any data for why that is

Matthew Jasper (Jan 24 2019 at 18:10, on Zulip):

For 2PB I think we can start with the most conservative version, and move to a final decision on a separate schedule.

nikomatsakis (Jan 24 2019 at 18:10, on Zulip):

well, the main point is: do we want to block enabling 2015 on having that conservative version in place?

nikomatsakis (Jan 24 2019 at 18:11, on Zulip):

I think I would definitely block the move away from migration

nikomatsakis (Jan 24 2019 at 18:11, on Zulip):

ah, that reminds me

nikomatsakis (Jan 24 2019 at 18:11, on Zulip):

for the move from migration to "full version", that also currently means that you get hard errors (right?)

nikomatsakis (Jan 24 2019 at 18:11, on Zulip):

so perhaps we want some measurements here

nikomatsakis (Jan 24 2019 at 18:11, on Zulip):

e.g., we probably want to apply the "no major crater regressions" rule

pnkfelix (Jan 24 2019 at 18:11, on Zulip):

what kind of measurements?

pnkfelix (Jan 24 2019 at 18:11, on Zulip):

oh I see

Matthew Jasper (Jan 24 2019 at 18:12, on Zulip):

I would say yes, but I don't think it will take that long to have the conservative version working. (We should block migrate on 2015 on 2PB)

nikomatsakis (Jan 24 2019 at 18:12, on Zulip):

same as any breaking change bug fix

lqd (Jan 24 2019 at 18:13, on Zulip):

does that somehow require coordinating with ralf and their stacked borrows model (sorry I'm not up to date on these latest discussions) ?

pnkfelix (Jan 24 2019 at 18:14, on Zulip):

well ... I don't know if turning it on requires coordination per se

pnkfelix (Jan 24 2019 at 18:15, on Zulip):

under the assumption that if we implement it, ralf will be happy ...

nikomatsakis (Jan 24 2019 at 18:15, on Zulip):

I moved my outline to the dropbox paper document, link

pnkfelix (Jan 24 2019 at 18:15, on Zulip):

but that may be naive of me

nikomatsakis (Jan 24 2019 at 18:15, on Zulip):

does that somehow require coordinating with ralf and their stacked borrows model (sorry I'm not up to date on these latest discussions) ?

no, because we are aiming to do a conservative thing

nikomatsakis (Jan 24 2019 at 18:15, on Zulip):

that is, moving to the conservative thing does not in particular

nikomatsakis (Jan 24 2019 at 18:15, on Zulip):

moving back to the current version (or something like it) would

nikomatsakis (Jan 24 2019 at 18:16, on Zulip):

or at least it is a decision that should be made with an eye towards the effects on stacked borrows

nikomatsakis (Jan 24 2019 at 18:16, on Zulip):

I moved my outline to the dropbox paper document, link

(feel free to edit or add comments)

lqd (Jan 24 2019 at 18:16, on Zulip):

alright ok, then yeah probably best to have them in order to switch 2015 to migrate then ?

nikomatsakis (Jan 24 2019 at 18:16, on Zulip):

"to have them"?

lqd (Jan 24 2019 at 18:16, on Zulip):

get the conservative version working

nikomatsakis (Jan 24 2019 at 18:17, on Zulip):

well that was what we were discussing

nikomatsakis (Jan 24 2019 at 18:17, on Zulip):

I'm not sure how much it matters

nikomatsakis (Jan 24 2019 at 18:17, on Zulip):

it'd be nice though

nikomatsakis (Jan 24 2019 at 18:17, on Zulip):

definitely before we move away from migration mode

pnkfelix (Jan 24 2019 at 18:17, on Zulip):

get the conservative version working

yeah, i think that's why niko said he'd block going from migration to borrowck=mir on it

nikomatsakis (Jan 24 2019 at 18:17, on Zulip):

in particular, until we move to borrowck=mir:

pnkfelix (Jan 24 2019 at 18:17, on Zulip):

we don't really have any sort of deadline for this, that I know of

nikomatsakis (Jan 24 2019 at 18:17, on Zulip):

that is, when we make the rule more conservative, it won't immediately cause errors

nikomatsakis (Jan 24 2019 at 18:17, on Zulip):

so we can kind of roll those fixes into the general borrowck=mir move criteria

pnkfelix (Jan 24 2019 at 18:18, on Zulip):

its mostly just "its good to get it out of the way" (so that 1. everyone can benefit from NLL on the 2015 edition, and 2. so that we can focus effort on other tasks, like Polonius

nikomatsakis (Jan 24 2019 at 18:18, on Zulip):

we don't really have any sort of deadline for this, that I know of

no -- it might be nice to hvae a kind of target? not sure how important it is. I mostly wanted to discuss the criteria and how we will track blocking issues (should we make a meta-issue?)

nikomatsakis (Jan 24 2019 at 18:19, on Zulip):

anyway, I feel kind of good about the outline, and I guess a meta-issue like #57804 is ok?

pnkfelix (Jan 24 2019 at 18:19, on Zulip):

(should we make a meta-issue?)

shouldn't the existing tracking issue suffice?

nikomatsakis (Jan 24 2019 at 18:19, on Zulip):

I would prefer an issue specific to this transition

nikomatsakis (Jan 24 2019 at 18:19, on Zulip):

ok, so that's an action item, to make such an issue

nikomatsakis (Jan 24 2019 at 18:19, on Zulip):

seems easy enough :)

nikomatsakis (Jan 24 2019 at 18:19, on Zulip):

(the alternative might be GH projects or something)

Matthew Jasper (Jan 24 2019 at 18:20, on Zulip):

Shall we leave discussion of stage 3 until after we have stage 1 and 2 mostly done?

nikomatsakis (Jan 24 2019 at 18:20, on Zulip):

related question:

Do we want to block moving to borrowck=mir on having migated all existing uses of the old lexical checker? I don't see why we should, I guess (example would be things like wf checking and so forth)

nikomatsakis (Jan 24 2019 at 18:21, on Zulip):

yeah, I don't think we have to go into stage 3 just yet

Matthew Jasper (Jan 24 2019 at 18:21, on Zulip):

I'm hoping for 1.34 - migrate on 2015, 1.35 - full NLL on 2018 1.37 - full NLL everywhere.

nikomatsakis (Jan 24 2019 at 18:21, on Zulip):

oh, I hadn't considered the idea of turning on full NLL only for 2018

nikomatsakis (Jan 24 2019 at 18:21, on Zulip):

I was assuming that we'd just throw the switch for all editions

lqd (Jan 24 2019 at 18:22, on Zulip):

would turning on full NLL in 2018 and then 2015 be a "just in case" insurance (in case 2018 is the smaller rollout of the 2) ?

pnkfelix (Jan 24 2019 at 18:23, on Zulip):

i think we're probably better off throwing the switch for everyone.

pnkfelix (Jan 24 2019 at 18:23, on Zulip):

it will let us find out about problems sooner, and simplify bug reporting/reproduction

pnkfelix (Jan 24 2019 at 18:23, on Zulip):

The transition from migrate to full NLL has relatively small effect, compared to the original introduction of NLL

Matthew Jasper (Jan 24 2019 at 18:24, on Zulip):

I think that we need migrate mode on 2015 for a few releases before enabling full NLL, and that that would be what limits us stabilizing.

pnkfelix (Jan 24 2019 at 18:24, on Zulip):

so I don't see as much incentive for a migration path

pnkfelix (Jan 24 2019 at 18:24, on Zulip):

hmm

pnkfelix (Jan 24 2019 at 18:24, on Zulip):

I think that we need migrate mode on 2015 for a few releases before enabling full NLL, and that that would be what limits us stabilizing.

okay this is worth thinking about

nikomatsakis (Jan 24 2019 at 18:24, on Zulip):

I think that we need migrate mode on 2015 for a few releases before enabling full NLL, and that that would be what limits us stabilizing.

basically because 2015 folks are not yet getting warnings?

Matthew Jasper (Jan 24 2019 at 18:24, on Zulip):

Yes

Santiago Pastorino (Jan 24 2019 at 18:24, on Zulip):

yes that seems wise :)

nikomatsakis (Jan 24 2019 at 18:24, on Zulip):

well, let's add this as an unresolved question

nikomatsakis (Jan 24 2019 at 18:25, on Zulip):

I'm sort of inclined to not distinguish editions

nikomatsakis (Jan 24 2019 at 18:25, on Zulip):

and just wait for everyone

nikomatsakis (Jan 24 2019 at 18:25, on Zulip):

but .. maybe it's wise to start giving hard errors

nikomatsakis (Jan 24 2019 at 18:25, on Zulip):

it hasn't proven to be a big source of confusion thus far

nikomatsakis (Jan 24 2019 at 18:25, on Zulip):

I'm mostly just wary of having "ifs" in the compiler in general

Matthew Jasper (Jan 24 2019 at 18:25, on Zulip):

If it takes a few months to be ready, then I'm fine stabilizing both together

pnkfelix (Jan 24 2019 at 18:25, on Zulip):

a few months after what point?

nikomatsakis (Jan 24 2019 at 18:25, on Zulip):

there is another intermediate step

nikomatsakis (Jan 24 2019 at 18:25, on Zulip):

that we can do

nikomatsakis (Jan 24 2019 at 18:25, on Zulip):

which is, we can shift the warnings from warnings to deny-by-default lints

pnkfelix (Jan 24 2019 at 18:25, on Zulip):

a few months after we enable borrowck=migrate for 2015 edition?

Matthew Jasper (Jan 24 2019 at 18:26, on Zulip):

Yes

nikomatsakis (Jan 24 2019 at 18:26, on Zulip):

this is often a good idea if we want to encourage people to migate :)

pnkfelix (Jan 24 2019 at 18:27, on Zulip):

for some reason I have this vague impression that we would have problems turning this into a proper lint

pnkfelix (Jan 24 2019 at 18:27, on Zulip):

am I misremembering the current state of the lint infrastructure w.r.t. MIR analyses?

nikomatsakis (Jan 24 2019 at 18:27, on Zulip):

hmm, ok, so this is an interesting question. Basically the options for roll out are:

where some of those steps can be combined

nikomatsakis (Jan 24 2019 at 18:27, on Zulip):

i.e., we might make it deny-by-default on all editions first

lqd (Jan 24 2019 at 18:27, on Zulip):

I guess a crater run around the time to turn borrowck=migrate on 2015 would be an interesting datapoint wrt warnings and deny-by-default lints

nikomatsakis (Jan 24 2019 at 18:28, on Zulip):

for some reason I have this vague impression that we would have problems turning this into a proper lint

oh, it's not a proper lint? why should that be hard? I mean, you could just use the node-id of the fn

blitzerr (Jan 24 2019 at 18:28, on Zulip):

hmm, ok, so this is an interesting question. Basically the options for roll out are:

where some of those steps can be combined

How long do we expect it to take for all of them ?

nikomatsakis (Jan 24 2019 at 18:28, on Zulip):

(the main reason to use a lint is cap-dependencies)

pnkfelix (Jan 24 2019 at 18:28, on Zulip):

oh, it's not a proper lint? why should that be hard? I mean, you could just use the node-id of the fn

I'll just go double-check

nikomatsakis (Jan 24 2019 at 18:29, on Zulip):

well anyway it's not too important

nikomatsakis (Jan 24 2019 at 18:29, on Zulip):

I think we don't have to decide now whether to (e.g.) do deny-by-default first

nikomatsakis (Jan 24 2019 at 18:30, on Zulip):

it seems like we can collect issues that would block going to NLL 100% in a tracking issue

nikomatsakis (Jan 24 2019 at 18:30, on Zulip):

and if we decide we want to make a smaller step (e.g., going to NLL in 2018 only)

nikomatsakis (Jan 24 2019 at 18:30, on Zulip):

we can do that and make a new stage "on the fly"

nikomatsakis (Jan 24 2019 at 18:30, on Zulip):

anyway, I imagine that going to hard errors and not warnings on 2018 only has basically the same pre-reqs

nikomatsakis (Jan 24 2019 at 18:30, on Zulip):

except that it affects the crater run results

nikomatsakis (Jan 24 2019 at 18:30, on Zulip):

(does that sound right?)

pnkfelix (Jan 24 2019 at 18:31, on Zulip):

hmm, ok, so this is an interesting question. Basically the options for roll out are: [...]

where some of those steps can be combined

How long do we expect it to take for all of them ?

I think the main time-delays would be in us releasing the result and waiting for feedback

pnkfelix (Jan 24 2019 at 18:32, on Zulip):

except that it affects the crater run results

in the sense that the majority of crates.io right now is going to be 2015 edition code

pnkfelix (Jan 24 2019 at 18:32, on Zulip):

right?

nikomatsakis (Jan 24 2019 at 18:32, on Zulip):

yes

nikomatsakis (Jan 24 2019 at 18:32, on Zulip):

i.e., we still want all the soundness bugs fixed

nikomatsakis (Jan 24 2019 at 18:32, on Zulip):

but we might be able to move faster on 2018 only because it affects less code, and that code is more likely to have been updated

pnkfelix (Jan 24 2019 at 18:33, on Zulip):

seems like we would definitely want to do it across all editions for the initial crater runs

pnkfelix (Jan 24 2019 at 18:33, on Zulip):

just to cast as wide a net as possible

pnkfelix (Jan 24 2019 at 18:33, on Zulip):

we don't have to commit to that approach in what we deploy

nikomatsakis (Jan 24 2019 at 18:33, on Zulip):

so basically

pnkfelix (Jan 24 2019 at 18:33, on Zulip):

So I think the effect on crater is actually ... independent?

nikomatsakis (Jan 24 2019 at 18:33, on Zulip):

it doesn't matter yet

nikomatsakis (Jan 24 2019 at 18:33, on Zulip):

this is something we can decide once we have the crater results in place

nikomatsakis (Jan 24 2019 at 18:33, on Zulip):

i.e., first we have to fix all the bugs

nikomatsakis (Jan 24 2019 at 18:33, on Zulip):

and get the other steps done

davidtwco (Jan 24 2019 at 18:34, on Zulip):

:thumbs_up: for everything so far

lqd (Jan 24 2019 at 18:34, on Zulip):

the lint idea sounds like an interesting possible step in any case

nikomatsakis (Jan 24 2019 at 18:34, on Zulip):

if that is done and we have bad crater results, or 2015 hasn't had "enough time" to bake, then we decide to try 2018 only

pnkfelix (Jan 24 2019 at 18:34, on Zulip):

this all sounds both correct and good to me

pnkfelix (Jan 24 2019 at 18:35, on Zulip):

so that's one goal: Finish migration

pnkfelix (Jan 24 2019 at 18:35, on Zulip):

I can't imagine that taking up the whole year

pnkfelix (Jan 24 2019 at 18:35, on Zulip):

unless we decide to make it so

pnkfelix (Jan 24 2019 at 18:36, on Zulip):

in the sense that we decide to adopt a plan that has so many steps

pnkfelix (Jan 24 2019 at 18:36, on Zulip):

that we are waiting for user feedback a lot

pnkfelix (Jan 24 2019 at 18:36, on Zulip):

which would be fine

pnkfelix (Jan 24 2019 at 18:36, on Zulip):

But since that is time spent waiting

pnkfelix (Jan 24 2019 at 18:36, on Zulip):

it is time that we can use for other things

pnkfelix (Jan 24 2019 at 18:37, on Zulip):

so: any interest in talking about polonius goals for this year?

lqd (Jan 24 2019 at 18:38, on Zulip):

would we want a Minimum Viable Polonius for example ?

nikomatsakis (Jan 24 2019 at 18:38, on Zulip):

Apart from migration, I see a few things on my list:

nikomatsakis (Jan 24 2019 at 18:39, on Zulip):

I guess it seems, from that list, a strategy around Polonius might be the most fruitful thing to discuss at this moment

nikomatsakis (Jan 24 2019 at 18:39, on Zulip):

(as others suggested before I sent my Wall-o-text)

lqd (Jan 24 2019 at 18:40, on Zulip):

do we have to e.g implement move and initialization analysis in Polonius, to see how it impacts rustc, compile times and so on (which we have at the moment, not a very good idea of) ?

nikomatsakis (Jan 24 2019 at 18:40, on Zulip):

well

nikomatsakis (Jan 24 2019 at 18:40, on Zulip):

no

nikomatsakis (Jan 24 2019 at 18:40, on Zulip):

I mean we can go on using the code we are using now

nikomatsakis (Jan 24 2019 at 18:40, on Zulip):

I do think we want to replace the existing region solver code

nikomatsakis (Jan 24 2019 at 18:40, on Zulip):

because right now we're doing purely extra work, effectively

nikomatsakis (Jan 24 2019 at 18:41, on Zulip):

for that reason alone, it's probably a good idea to put off the move/initialization stuff

nikomatsakis (Jan 24 2019 at 18:41, on Zulip):

just so we can independently measure its effects

Santiago Pastorino (Jan 24 2019 at 18:41, on Zulip):

seems good

pnkfelix (Jan 24 2019 at 18:41, on Zulip):

what would be the expected benefits of doing move/init analyses in Polonius?

pnkfelix (Jan 24 2019 at 18:41, on Zulip):

would the downstream analyses in Polonius gain some sort of efficiency?

pnkfelix (Jan 24 2019 at 18:41, on Zulip):

I assume the actual results would not change

nikomatsakis (Jan 24 2019 at 18:41, on Zulip):

personally, I want to move towards doing as much as possible using datafrog-style rules

nikomatsakis (Jan 24 2019 at 18:41, on Zulip):

for uniformity

nikomatsakis (Jan 24 2019 at 18:41, on Zulip):

and because it makes things better specified

lqd (Jan 24 2019 at 18:42, on Zulip):

so more like a cleanup kind of task

nikomatsakis (Jan 24 2019 at 18:42, on Zulip):

however, I don't know what perf impact will be really.

pnkfelix (Jan 24 2019 at 18:42, on Zulip):

yes okay there' also the benefit that it cleans up the code

nikomatsakis (Jan 24 2019 at 18:42, on Zulip):

I would not be surprised if it were better

nikomatsakis (Jan 24 2019 at 18:42, on Zulip):

(but I also would not be surprised if there are cases where it is worse)

nikomatsakis (Jan 24 2019 at 18:42, on Zulip):

but yeah I don't think we gain expressiveness from it

pnkfelix (Jan 24 2019 at 18:42, on Zulip):

(unless we did something funky)

nikomatsakis (Jan 24 2019 at 18:43, on Zulip):

I guess in general I'd like to push as much of the logic into datafrog as we can, so that the inputs we are producing are simple and something we can "directly" read out from the MIR

Santiago Pastorino (Jan 24 2019 at 18:43, on Zulip):

the idea of making polonius run the naive analysis unless it fails still holds?

Santiago Pastorino (Jan 24 2019 at 18:43, on Zulip):

and how do you imagine the performance in those cases?

nikomatsakis (Jan 24 2019 at 18:43, on Zulip):

unless we did something funky

well what I guess I mean is: I think we could implement e.g. the rules around initializing fields out of order, but I think we could do that with today's system too

lqd (Jan 24 2019 at 18:43, on Zulip):

@Santiago Pastorino you mean the location insensitive analysis, not the naive one right ?

Santiago Pastorino (Jan 24 2019 at 18:44, on Zulip):

ahh ya, sorry, location insensitive yes

nikomatsakis (Jan 24 2019 at 18:44, on Zulip):

and how do you imagine the performance in those cases?

ah so yes this is part of my calculus: I think that once we move to rules that we express in datalog, we can also more readily do optimized variants

Santiago Pastorino (Jan 24 2019 at 18:44, on Zulip):

wasn't remembering the names properly :)

nikomatsakis (Jan 24 2019 at 18:44, on Zulip):

e.g., maybe there is a location insensitive version of the move-initialization rules we can do

Santiago Pastorino (Jan 24 2019 at 18:45, on Zulip):

shouldn't a strategy like that when you compare a huge program, cause a lot of benefits?

Santiago Pastorino (Jan 24 2019 at 18:45, on Zulip):

I'd expect you need location sensitive the less than location insensitive

nikomatsakis (Jan 24 2019 at 18:45, on Zulip):

potentially, I guess it depends what %age of compilation time is spent in those checks :)

Santiago Pastorino (Jan 24 2019 at 18:45, on Zulip):

yep

nikomatsakis (Jan 24 2019 at 18:45, on Zulip):

but that is the hope, certainly

Santiago Pastorino (Jan 24 2019 at 18:45, on Zulip):

yes

lqd (Jan 24 2019 at 18:45, on Zulip):

is it still possible that the polonius code is not the way we decide to go for "NLL 2.0" (what we punted from MIR borrowck into polonius) ? (e.g if it somehow performs extremely worse on benchmarks)

Santiago Pastorino (Jan 24 2019 at 18:45, on Zulip):

don't guess, measure

Santiago Pastorino (Jan 24 2019 at 18:46, on Zulip):

just thinking on possibilities

nikomatsakis (Jan 24 2019 at 18:46, on Zulip):

is it still possible that the polonius code is not the way we decide to go for "NLL 2.0" (what we punted from MIR borrowck into polonius) ? (e.g if it somehow performs extremely worse on benchmarks)

I suppose so

pnkfelix (Jan 24 2019 at 18:46, on Zulip):

(I'd still declare victory even if that happened)

nikomatsakis (Jan 24 2019 at 18:46, on Zulip):

so, I guess the meta question is: how do we want to manage the polonius stuff? I mean, maybe one question worth asking: should we make a WG-polonius?

nikomatsakis (Jan 24 2019 at 18:47, on Zulip):

(with e.g. a separate triage meeting and cycle?)

pnkfelix (Jan 24 2019 at 18:47, on Zulip):

considering how out of the loop I have been regarding Polonius, I would not object to a WG-polonius

lqd (Jan 24 2019 at 18:47, on Zulip):

would the WG be made in order to allow current wg-nll members to focus on non-polonius things ?

nikomatsakis (Jan 24 2019 at 18:48, on Zulip):

I guess my reasoning was a few things. I tend to view working groups as being focused on a goal, not perpetual entities. And it feels like the goal for wg-nll is in sight, and we should focus on it

nikomatsakis (Jan 24 2019 at 18:48, on Zulip):

but also that the tasks for polonius are quite distinct from the "migration" tasks

nikomatsakis (Jan 24 2019 at 18:48, on Zulip):

so maybe it's not helpful to conflate them

lqd (Jan 24 2019 at 18:48, on Zulip):

interesting yeah

nikomatsakis (Jan 24 2019 at 18:48, on Zulip):

and yeah, that might mean that e.g. @pnkfelix still helps with migration, but goes off to focus on other things

nikomatsakis (Jan 24 2019 at 18:49, on Zulip):

(conversely, I'm not sure that "triage" is relevant to polonius)

Santiago Pastorino (Jan 24 2019 at 18:49, on Zulip):

yeah, the idea is interesting

Santiago Pastorino (Jan 24 2019 at 18:49, on Zulip):

and it seems also a bit refreshing

lqd (Jan 24 2019 at 18:49, on Zulip):

needless to say if such a WG-polonius existed I would like to contribute to it as well :)

Santiago Pastorino (Jan 24 2019 at 18:50, on Zulip):

me too :)

nikomatsakis (Jan 24 2019 at 18:50, on Zulip):

needless to say, i'd like everyone to contribute :)

nikomatsakis (Jan 24 2019 at 18:50, on Zulip):

(though I don't want us to take our eye off the ball when it comes to migration)

nikomatsakis (Jan 24 2019 at 18:50, on Zulip):

(ps, from my list above, I sort of forgot the epic place-2.0 work that @csmoe and @Santiago Pastorino have been doing, but that doesn't really feel like it belongs in NLL per se, more like general compiler refactoring)

pnkfelix (Jan 24 2019 at 18:50, on Zulip):

yeah, if I suddenly find time in my schedule to do a deep dive into Polonius, I'd ask to join WG-polonius

pnkfelix (Jan 24 2019 at 18:51, on Zulip):

but right now its not in the cards

nikomatsakis (Jan 24 2019 at 18:51, on Zulip):

Hmm, I am liking this idea. One thing I am interested in doing a bit with Polonius is trying to dig a bit more into the design.

nikomatsakis (Jan 24 2019 at 18:51, on Zulip):

maybe with video chats?

lqd (Jan 24 2019 at 18:52, on Zulip):

I guess we should find out whether the polonius plan holds up when integrated a bit more into rustc, and then make a WG ? just in order not to become the shortest lived WG in history ? :)

nikomatsakis (Jan 24 2019 at 18:52, on Zulip):

(by this I mean more like "why are the rules the way they are")

blitzerr (Jan 24 2019 at 18:52, on Zulip):

Hmm, I am liking this idea. One thing I am interested in doing a bit with Polonius is trying to dig a bit more into the design.

It would be helpful. I know nothing about it

nikomatsakis (Jan 24 2019 at 18:52, on Zulip):

just in order not to become the shortest lived WG in history ? :)

I think it's ok if the WG outcome is "tried it, it failed"

nikomatsakis (Jan 24 2019 at 18:52, on Zulip):

but I also really don't expect that

nikomatsakis (Jan 24 2019 at 18:52, on Zulip):

I guess I think it's more likely that we "evolve" the plan

blitzerr (Jan 24 2019 at 18:53, on Zulip):

What are the cases it can fail ? Perf ?

lqd (Jan 24 2019 at 18:54, on Zulip):

it's the one that comes to my mind right now

nikomatsakis (Jan 24 2019 at 18:54, on Zulip):

I suppose, or maybe we realize the analysis is flawed in some way

pnkfelix (Jan 24 2019 at 18:54, on Zulip):

As someone who has been only tangentially following both projects, I would like to better understand whether we need separate Chalk vs Datafrog

blitzerr (Jan 24 2019 at 18:54, on Zulip):

But isn't @nikomatsakis proposing a datafrog dependent querying ? So will it affect all the future plans as well ?

pnkfelix (Jan 24 2019 at 18:54, on Zulip):

I mean, I do get that they are different kinds of logic programming

nikomatsakis (Jan 24 2019 at 18:54, on Zulip):

I don't know, the more I think about it, the more I feel like we should make a wg-polonius. Maybe try to "kick it off" post all hands -- not 100% sure what "kick it off" means anyway. I want to think a bit about how to manage our time, I don't want to go encouraging people to contribute and then we don't have enough time to keep things moving

lqd (Jan 24 2019 at 18:55, on Zulip):

maybe it'll depend on the curious case of the hereditary harrop predicate :)

nikomatsakis (Jan 24 2019 at 18:55, on Zulip):

@pnkfelix a good question, and one I would like to dig into, but perhaps not this second :)

nikomatsakis (Jan 24 2019 at 18:55, on Zulip):

one thing I could see trying to do

pnkfelix (Jan 24 2019 at 18:55, on Zulip):

@pnkfelix a good question, and one I would like to dig into, but perhaps not this second :)

oh yeah, that was totally a penny on the rails

nikomatsakis (Jan 24 2019 at 18:55, on Zulip):

maybe even next week

nikomatsakis (Jan 24 2019 at 18:55, on Zulip):

is to do a "compiler lecture series" sort of thing on polonius

nikomatsakis (Jan 24 2019 at 18:56, on Zulip):

in particular I've been wanting to kind of walk through some of the really interesting cases

nikomatsakis (Jan 24 2019 at 18:56, on Zulip):

and try to explain (read: remember) why I setup the rules just the way I did

nikomatsakis (Jan 24 2019 at 18:56, on Zulip):

it was definitely not accidental, and I sort of remember the process that led to them :)

nikomatsakis (Jan 24 2019 at 18:56, on Zulip):

but there are some subtle points that are easy to overlook...

nikomatsakis (Jan 24 2019 at 18:56, on Zulip):

this might be a chance @pnkfelix to also cover that question

nikomatsakis (Jan 24 2019 at 18:57, on Zulip):

(
the idea would be to shcedule a recorded video chat, basically)

lqd (Jan 24 2019 at 18:57, on Zulip):

would having this other WG not bite into your already limited time niko ?

nikomatsakis (Jan 24 2019 at 18:57, on Zulip):

well that is the concern, I think we need to figure out the leadership story

nikomatsakis (Jan 24 2019 at 18:57, on Zulip):

(similarly for WG-nll actually)

nikomatsakis (Jan 24 2019 at 18:57, on Zulip):

but I feel like I am not ready to let polonius go

nikomatsakis (Jan 24 2019 at 18:57, on Zulip):

:P

Santiago Pastorino (Jan 24 2019 at 18:57, on Zulip):

hahaha

Santiago Pastorino (Jan 24 2019 at 18:57, on Zulip):

:P

nikomatsakis (Jan 24 2019 at 18:57, on Zulip):

(I also think that there is overlap -- esp around regions -- with the chalk work)

lqd (Jan 24 2019 at 18:58, on Zulip):

oh yeah true

blitzerr (Jan 24 2019 at 18:59, on Zulip):

and try to explain (read: remember) why I setup the rules just the way I did

Do we have to formally verify the rules ?

nikomatsakis (Jan 24 2019 at 18:59, on Zulip):

we're kind of running up on an hour :)

lqd (Jan 24 2019 at 18:59, on Zulip):

were @Matthew Jasper @davidtwco @qmx also interested in polonius ?

nikomatsakis (Jan 24 2019 at 19:00, on Zulip):

@blitzerr we don't normally do that, but it's an interesting question to think about I think. e.g. one thing I would like to do is to try and compare the rules more to the work that @RalfJ and others are doing and map betwen them.

Matthew Jasper (Jan 24 2019 at 19:00, on Zulip):

Yes, once I have time for it...

nikomatsakis (Jan 24 2019 at 19:00, on Zulip):

so let's do this: we'll try to schedule a polonius design chat, and maybe post all hands try to figure out WG next steps?

nikomatsakis (Jan 24 2019 at 19:01, on Zulip):

(all hands being Feb 4-8 or something like that)

nikomatsakis (Jan 24 2019 at 19:01, on Zulip):

i.e. week after next

davidtwco (Jan 24 2019 at 19:01, on Zulip):

were @Matthew Jasper @davidtwco @qmx also interested in polonius ?

I've not really looked at it at all. I've not really been focusing on any area in particular as the WG-NLL work wound down. I think I'm going to hold off jumping in until after the All Hands to see what happens with working groups and if there are any interesting new ones.

qmx (Jan 24 2019 at 19:03, on Zulip):

I only stopped playing with polonius/NLL because wg-grammar takes all my time nowadays

qmx (Jan 24 2019 at 19:03, on Zulip):

but I still keep paying attention here in the hopes I'll have some spare cycles :)

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

did we want to touch on other subjects today ?

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

I feel like we're out of time, but I'd definitely like to know if there are things we missed that we should schedule for another time

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

BTW: on the topic of move and initialization analysis, one thing I might mention is that the Lark compiler does this with datafrog already, though I've not yet hooked it up to polonius (so its borrow checker isn't great). So e.g. @pnkfelix if you wanted to think about what it might mean ...

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

(...another thing it'd be fun to find a bit of time to talk about)

lqd (Jan 24 2019 at 19:05, on Zulip):

interesting

nikomatsakis (Jan 24 2019 at 19:05, on Zulip):

I kind of implemented it in a few hours so I don't really remember if it's equivalent to what rust does today, but I think it roughly is

nikomatsakis (Jan 24 2019 at 19:05, on Zulip):

but perhaps that's part of the point: I implemented it in a few hours ;)

lqd (Jan 24 2019 at 19:06, on Zulip):

:)

lqd (Jan 24 2019 at 19:07, on Zulip):

so migration, 2PB, Polonius, Polonius WG, are we missing something ?

lqd (Jan 24 2019 at 19:09, on Zulip):

kinda the closure work, lexical solver conversion, code cleanup (including neoplace maybe)

blitzerr (Jan 24 2019 at 19:11, on Zulip):

(Maybe the talk on Polonius and Lark ?)

lqd (Jan 24 2019 at 19:11, on Zulip):

(I have to take off, thanks all for the meeting. Good afternoon/evening everyone :wave: )

Last update: Nov 21 2019 at 13:30UTC