Stream: t-compiler/wg-nll

Topic: making-plans


nikomatsakis (May 15 2018 at 12:59, on Zulip):

@pnkfelix so there are a few things we could sync up about...

pnkfelix (May 15 2018 at 13:02, on Zulip):

my main thing to report is that I'm about to rebase my match PR

pnkfelix (May 15 2018 at 13:02, on Zulip):

and it will include, under a -Z flag, the change to implement https://github.com/rust-lang/rfcs/issues/1006

pnkfelix (May 15 2018 at 13:02, on Zulip):

so that's sort of fun

nikomatsakis (May 15 2018 at 13:03, on Zulip):

what's 1006...?

nikomatsakis (May 15 2018 at 13:03, on Zulip):

ah, I see, neat

pnkfelix (May 15 2018 at 13:03, on Zulip):

" Allow local mutation and assignments in pattern guards"

nikomatsakis (May 15 2018 at 13:03, on Zulip):

that's great

pnkfelix (May 15 2018 at 13:03, on Zulip):

I'm so ready to be done with this subtask. :)

nikomatsakis (May 15 2018 at 13:03, on Zulip):

so, I guess the status in terms of the general analysis is:

nikomatsakis (May 15 2018 at 13:04, on Zulip):

heh, I bet

nikomatsakis (May 15 2018 at 13:04, on Zulip):
nikomatsakis (May 15 2018 at 13:04, on Zulip):

but not enough that we could ship like that

nikomatsakis (May 15 2018 at 13:04, on Zulip):
nikomatsakis (May 15 2018 at 13:04, on Zulip):

but not enough that we could ship like that :)

pnkfelix (May 15 2018 at 13:04, on Zulip):

What is state of SEME?

nikomatsakis (May 15 2018 at 13:04, on Zulip):

I implemented it but I've not tried integrating it

nikomatsakis (May 15 2018 at 13:05, on Zulip):

I guess it wouldn't be too hard to do

nikomatsakis (May 15 2018 at 13:05, on Zulip):

I'm not sure if it's a good use of time yet

pnkfelix (May 15 2018 at 13:05, on Zulip):

Okay I guess that is the question

nikomatsakis (May 15 2018 at 13:05, on Zulip):

one question is:

nikomatsakis (May 15 2018 at 13:05, on Zulip):

one of the ideas that I was thinking about for the borrow-check repository

nikomatsakis (May 15 2018 at 13:05, on Zulip):

was doing a "location-insensitive pre-pass"

nikomatsakis (May 15 2018 at 13:06, on Zulip):

I was hoping to work with somebody (maybe @Santiago Pastorino?) to prototype that and get a sense of how fast it goes

pnkfelix (May 15 2018 at 13:06, on Zulip):

yeah

nikomatsakis (May 15 2018 at 13:06, on Zulip):

it might be that this is way faster than the existing code

pnkfelix (May 15 2018 at 13:06, on Zulip):

that sounds like a smarter variant of my "run the AST-borrowck and if it passes, accept the code"

nikomatsakis (May 15 2018 at 13:06, on Zulip):

yes

nikomatsakis (May 15 2018 at 13:06, on Zulip):

that was the idea :)

nikomatsakis (May 15 2018 at 13:06, on Zulip):

but it may also be a better version of "try and get SEME working"

nikomatsakis (May 15 2018 at 13:06, on Zulip):

I'm not entirely sure

pnkfelix (May 15 2018 at 13:06, on Zulip):

do you think that's significantly easier to implement and reap beneftis from than SEME ?

nikomatsakis (May 15 2018 at 13:07, on Zulip):

no :)

nikomatsakis (May 15 2018 at 13:07, on Zulip):

I mean I think implementing the core idea is pretty easy

nikomatsakis (May 15 2018 at 13:07, on Zulip):

but we'd still have to integrate borrow-check into rustc

nikomatsakis (May 15 2018 at 13:07, on Zulip):

so maybe it's worth experimenting with SEME still

pnkfelix (May 15 2018 at 13:07, on Zulip):

... okay... and I imagine SEME is has an even higher chance of being fast

nikomatsakis (May 15 2018 at 13:07, on Zulip):

unclear

nikomatsakis (May 15 2018 at 13:07, on Zulip):

but you might think so

pnkfelix (May 15 2018 at 13:07, on Zulip):

As in, you think the chances are about the same?

nikomatsakis (May 15 2018 at 13:08, on Zulip):

I find it hard to predict to be honest :)

pnkfelix (May 15 2018 at 13:08, on Zulip):

(and that the location-insensitive prepass will accept more code, thus avoiding falling back on the slow path more often?)

nikomatsakis (May 15 2018 at 13:08, on Zulip):

yeah, I don't really know how they compare

pnkfelix (May 15 2018 at 13:08, on Zulip):

because, you know, we clearly are striving for a three tier system here

pnkfelix (May 15 2018 at 13:08, on Zulip):

or more

nikomatsakis (May 15 2018 at 13:08, on Zulip):

I know that I do not want to have SEME long term :)

nikomatsakis (May 15 2018 at 13:08, on Zulip):

or at least, I want to "encapsulate" any tiers within borrow-check repo

pnkfelix (May 15 2018 at 13:08, on Zulip):

I guess that is as good a reason as any not to invest too much time into it

nikomatsakis (May 15 2018 at 13:09, on Zulip):

however, I also know that I want us to be able to start "shipping" some version of NLL ASAP

nikomatsakis (May 15 2018 at 13:09, on Zulip):

so as to get warnings etc

nikomatsakis (May 15 2018 at 13:10, on Zulip):

maybe it's worth putting a bit more time into SEME — I imagine it will take a day or two? I guess it would depend how much time I have to truly work on it

pnkfelix (May 15 2018 at 13:10, on Zulip):

Remind me

pnkfelix (May 15 2018 at 13:10, on Zulip):

your current prototype

pnkfelix (May 15 2018 at 13:10, on Zulip):

is just atop the borrow_check repo?

nikomatsakis (May 15 2018 at 13:10, on Zulip):

(or maybe it's something somebody else might have an interest in)

pnkfelix (May 15 2018 at 13:11, on Zulip):

for some reason I had thought you weren't doing htat

nikomatsakis (May 15 2018 at 13:11, on Zulip):

your current prototype

prototype of what, sorry?

pnkfelix (May 15 2018 at 13:11, on Zulip):

of SEME

nikomatsakis (May 15 2018 at 13:11, on Zulip):

ah. no, it's independent

pnkfelix (May 15 2018 at 13:11, on Zulip):

okay. but its also not atop rustc ?

nikomatsakis (May 15 2018 at 13:11, on Zulip):

I just implemented core SEME concept in a standalone library which rustc can use

pnkfelix (May 15 2018 at 13:11, on Zulip):

I see

nikomatsakis (May 15 2018 at 13:11, on Zulip):

https://github.com/rust-lang-nursery/rustc-seme-regions

nikomatsakis (May 15 2018 at 13:11, on Zulip):

integrating that is easy, though I think I want to tweak it ever so slightly

nikomatsakis (May 15 2018 at 13:12, on Zulip):

basically we have to modify the region_infer::values module

pnkfelix (May 15 2018 at 13:12, on Zulip):

okay

pnkfelix (May 15 2018 at 13:13, on Zulip):

but there's of course different notions of integration

pnkfelix (May 15 2018 at 13:13, on Zulip):

like a shallow integration that just reuses the current data structures

nikomatsakis (May 15 2018 at 13:13, on Zulip):

the main problem is that the impl as it is designed today

nikomatsakis (May 15 2018 at 13:13, on Zulip):

takes a Location as the point (and wants an immediate dominator tree operating over locations)

nikomatsakis (May 15 2018 at 13:13, on Zulip):

I think I got fairly far but it seemed like I should back it out and do the refactorings that just landed first as their own thing

nikomatsakis (May 15 2018 at 13:13, on Zulip):

I guess I should check

nikomatsakis (May 15 2018 at 13:13, on Zulip):

anyway, the problem with using Location as I do now is just efficiency

nikomatsakis (May 15 2018 at 13:13, on Zulip):

I think it'd be faster to have the SEME impl understand BasicBlock with statement indices

nikomatsakis (May 15 2018 at 13:13, on Zulip):

in fact, I have this in a branch somewhere, I forgot

pnkfelix (May 15 2018 at 13:13, on Zulip):

that may not reap the performance benefits that we need

nikomatsakis (May 15 2018 at 13:14, on Zulip):

e.g. if you want to find mutual dominator of two locations, you can find mutual dominator of blocks and ignore the statements, etc

nikomatsakis (May 15 2018 at 13:14, on Zulip):

anyway

nikomatsakis (May 15 2018 at 13:14, on Zulip):

that may not reap the performance benefits that we need

right, so i think I had planned to integrate as is, and then improve

nikomatsakis (May 15 2018 at 13:14, on Zulip):

I guess it's worth seeing where my branch is

nikomatsakis (May 15 2018 at 13:14, on Zulip):

I forgot I already did some of this work

pnkfelix (May 15 2018 at 13:15, on Zulip):

I'm wondering, if I manage to tie off this match stuff quickly

pnkfelix (May 15 2018 at 13:15, on Zulip):

if I could try to do the integration instead of you

pnkfelix (May 15 2018 at 13:15, on Zulip):

but that may not make sense

nikomatsakis (May 15 2018 at 13:15, on Zulip):

well, ok, let's back up a second

pnkfelix (May 15 2018 at 13:15, on Zulip):

especially since I don't think you want people investing in the SEME model

nikomatsakis (May 15 2018 at 13:16, on Zulip):

there remain the two overall things:

1. push on SEME and existing codebase
- Why? Offers a potentially fast route to getting something NLL-like shippable
2. push on borrow-check
- what are the paths here?

nikomatsakis (May 15 2018 at 13:16, on Zulip):

it seems like we explored 1 to some extent

nikomatsakis (May 15 2018 at 13:16, on Zulip):

I'm curious to dig into 2 :)

pnkfelix (May 15 2018 at 13:16, on Zulip):

"push on borrow-check", right?

nikomatsakis (May 15 2018 at 13:17, on Zulip):

I see a few things needed there:

nikomatsakis (May 15 2018 at 13:17, on Zulip):

like, two major directions

nikomatsakis (May 15 2018 at 13:17, on Zulip):

we've so far focused on the 1st, and there's more to do, but it may be worth thinking about the 2nd too

pnkfelix (May 15 2018 at 13:17, on Zulip):

okay

pnkfelix (May 15 2018 at 13:18, on Zulip):

I could certainly poke at that

nikomatsakis (May 15 2018 at 13:18, on Zulip):

it seems like the work that @Reed Koser did on borrow-check#4 is relevant

Santiago Pastorino (May 15 2018 at 13:18, on Zulip):

@nikomatsakis :thumbs_up:

nikomatsakis (May 15 2018 at 13:18, on Zulip):

o/

nikomatsakis (May 15 2018 at 13:18, on Zulip):

:)

nikomatsakis (May 15 2018 at 13:18, on Zulip):

(@pnkfelix and I were thinking we might as well chat in public :) (feel free to chip in...)

pnkfelix (May 15 2018 at 13:19, on Zulip):

Link for convenience of audience: https://github.com/rust-lang-nursery/borrow-check/issues/4

nikomatsakis (May 15 2018 at 13:19, on Zulip):

so if we were going to integrate into rustc...

nikomatsakis (May 15 2018 at 13:19, on Zulip):

the way I did it before was kind of like this:

nikomatsakis (May 15 2018 at 13:20, on Zulip):
nikomatsakis (May 15 2018 at 13:20, on Zulip):

the Output has a list of which borrows are live where, in particular

nikomatsakis (May 15 2018 at 13:21, on Zulip):

then modify the borrow checker so that it no longer uses the borrows data-flow data

nikomatsakis (May 15 2018 at 13:21, on Zulip):

but instead queries that list

nikomatsakis (May 15 2018 at 13:21, on Zulip):

I have a branch somewhere with those changes, they were fairly straightforward

nikomatsakis (May 15 2018 at 13:21, on Zulip):

the only tricky bit was about generators

nikomatsakis (May 15 2018 at 13:21, on Zulip):

which do some kind of "different" things when they integrate

nikomatsakis (May 15 2018 at 13:22, on Zulip):

however, the refactorings that @Reed Koser was contemplating for #4 would seem to lead to a slightly different approach, I think

nikomatsakis (May 15 2018 at 13:22, on Zulip):

where basically the borrow-check repo would produce a list of which loans were invalidated where (and maybe we attach some metadata that allows us to drive error reporting from that?)

nikomatsakis (May 15 2018 at 13:22, on Zulip):

tl;dr I'm wondering if it makes sense to finish up that refactoring work first

pnkfelix (May 15 2018 at 13:23, on Zulip):

hmm

pnkfelix (May 15 2018 at 13:23, on Zulip):

certainly seems like a more natural thing to focus on

nikomatsakis (May 15 2018 at 13:23, on Zulip):

#4 unblocks a lot of things

nikomatsakis (May 15 2018 at 13:23, on Zulip):

personally @pnkfelix I think I would rather have you hacking on #4 and/or the borrow-check repo than SEME, in part because I want to not be on the criticial path

nikomatsakis (May 15 2018 at 13:24, on Zulip):

that is, I feel like I'm still the "main one" who understands that repo

pnkfelix (May 15 2018 at 13:24, on Zulip):

yeah okay

pnkfelix (May 15 2018 at 13:24, on Zulip):

that sounds fine with me

nikomatsakis (May 15 2018 at 13:26, on Zulip):

I guess you are still finishing up the match stuff anyway

nikomatsakis (May 15 2018 at 13:26, on Zulip):

I mean for today at least

pnkfelix (May 15 2018 at 13:26, on Zulip):

that's right. but I do want to figure out what to focus on next

pnkfelix (May 15 2018 at 13:26, on Zulip):

While part of me wants to focus on the "simplest thing that could possibly get NLL stabilized"

pnkfelix (May 15 2018 at 13:27, on Zulip):

(which, to my mind, is SEME)

nikomatsakis (May 15 2018 at 13:27, on Zulip):

ok so it seems like we are coming to this plan so far: nmatsakis will see how hard it is to stand up SEME integration, and others will push more on borrow-check, but we need to boil that down into discrete tasks

pnkfelix (May 15 2018 at 13:27, on Zulip):

((and by "get NLL stabilized", I suppose I really mean "get MIR-borrowck stabilized"))

nikomatsakis (May 15 2018 at 13:28, on Zulip):

(were you going to add more @pnkfelix?)

pnkfelix (May 15 2018 at 13:28, on Zulip):

No, I was just musing out loud

pnkfelix (May 15 2018 at 13:28, on Zulip):

about why I was focused on SEME

nikomatsakis (May 15 2018 at 13:28, on Zulip):

I see. Well, I guess there is a question of how realistic we think the borrow-check plans are:)

pnkfelix (May 15 2018 at 13:28, on Zulip):

but if you think you'll be able to put some time into it at some point this week

nikomatsakis (May 15 2018 at 13:28, on Zulip):

they're seeming fairly realistic to me at this point though

pnkfelix (May 15 2018 at 13:28, on Zulip):

then I can work on borrow_check repo

pnkfelix (May 15 2018 at 13:29, on Zulip):

and we can compare progress in a week?

nikomatsakis (May 15 2018 at 13:29, on Zulip):

sounds like a plan

pnkfelix (May 15 2018 at 13:29, on Zulip):

to maybe try to figure out what to really push on?

nikomatsakis (May 15 2018 at 13:29, on Zulip):

I'd still like to identify a few individual tasks for borrow-check

nikomatsakis (May 15 2018 at 13:29, on Zulip):

I Was working on one thing this morning

nikomatsakis (May 15 2018 at 13:29, on Zulip):

which requires tweaking rustc

nikomatsakis (May 15 2018 at 13:30, on Zulip):

it's hard to keep the "big picture" in mind

nikomatsakis (May 15 2018 at 13:30, on Zulip):

let me see if I can sketch out the "outline" of open things that I see

nikomatsakis (May 15 2018 at 13:32, on Zulip):
nikomatsakis (May 15 2018 at 13:33, on Zulip):

I'm going to edit as I go :)

pnkfelix (May 15 2018 at 13:33, on Zulip):

okay. I don't think I have much to contribute to this

pnkfelix (May 15 2018 at 13:33, on Zulip):

but I guess I'll try to ask Q's.

nikomatsakis (May 15 2018 at 13:34, on Zulip):

I think those are the major strands I see

nikomatsakis (May 15 2018 at 13:34, on Zulip):

well, I sort of figured I would sketch them out for the purpose of being asked questions :)

pnkfelix (May 15 2018 at 13:34, on Zulip):

/me goes to review #20

nikomatsakis (May 15 2018 at 13:38, on Zulip):

seems like a lot of lines lead to #4 :)

nikomatsakis (May 15 2018 at 13:39, on Zulip):

@pnkfelix I'm thinking of walking home — would be AFK for ~10 minutes — I'll ping when I get back?

pnkfelix (May 15 2018 at 13:39, on Zulip):

ok

nikomatsakis (May 15 2018 at 14:07, on Zulip):

ok, back

nikomatsakis (May 15 2018 at 14:08, on Zulip):

took longer than anticipated due to encountering people along the way

nikomatsakis (May 15 2018 at 14:08, on Zulip):

curse spring time and the beautiful weather and flowering trees. everybody's out and about =)

nikomatsakis (May 15 2018 at 14:10, on Zulip):

@Santiago Pastorino in terms of things to do today, I think a very concrete thing that I would be interested in

pnkfelix (May 15 2018 at 14:10, on Zulip):

so, for meeting tonight

nikomatsakis (May 15 2018 at 14:11, on Zulip):

is hacking up the locaiton-insensitive analysis

pnkfelix (May 15 2018 at 14:11, on Zulip):

do you want to just focus on these big picture plans

nikomatsakis (May 15 2018 at 14:11, on Zulip):

just to get an idea how long it takes

pnkfelix (May 15 2018 at 14:11, on Zulip):

or should we also dedicate some time to looking at any NLL issues that have been filed in rustc repo?

nikomatsakis (May 15 2018 at 14:11, on Zulip):

good question

nikomatsakis (May 15 2018 at 14:11, on Zulip):

I've not really looked at those

nikomatsakis (May 15 2018 at 14:12, on Zulip):

seems like both have value

nikomatsakis (May 15 2018 at 14:12, on Zulip):

I guess one outcome I would really like is to have concrete people for as many borrow-check related things as we can — so that we can make real progress there in order to hasten the "make or break" decision point

nikomatsakis (May 15 2018 at 14:13, on Zulip):

but we should probably do a quick triage — maybe now? — of the status of issues?

nikomatsakis (May 15 2018 at 14:13, on Zulip):

there are definitely bits of work (e.g., the mutability lint, what you've been hacking on) that are totally independent from all this

nikomatsakis (May 15 2018 at 14:13, on Zulip):

are there more?

Reed Koser (May 15 2018 at 14:17, on Zulip):

Error reporting? It's not totally independent but I think we have a pretty good handle on the high level interface at least

Reed Koser (May 15 2018 at 14:18, on Zulip):

I'm like 3 levels of sidetracked from that branch at the moment....

nikomatsakis (May 15 2018 at 14:18, on Zulip):

oh, that reminds me

nikomatsakis (May 15 2018 at 14:18, on Zulip):

so yes error-reporting is a good point

nikomatsakis (May 15 2018 at 14:18, on Zulip):

it's sort of hard to tell though how much work would be reusable there :/

nikomatsakis (May 15 2018 at 14:18, on Zulip):

probably a lot?

nikomatsakis (May 15 2018 at 14:18, on Zulip):

I guess there is definitely work to do in terms of categorizing current state

nikomatsakis (May 15 2018 at 14:19, on Zulip):

there is something else I am reminded of

Reed Koser (May 15 2018 at 14:19, on Zulip):

/me crosses his fingers

Santiago Pastorino (May 15 2018 at 14:19, on Zulip):

is hacking up the locaiton-insensitive analysis

:+1:

nikomatsakis (May 15 2018 at 14:19, on Zulip):

@Santiago Pastorino if you have time, I'd be up to pair with you a bit this morning to kind of "jump start that"

nikomatsakis (May 15 2018 at 14:19, on Zulip):

but it'd have to be soon :)

Santiago Pastorino (May 15 2018 at 14:19, on Zulip):

I have time

nikomatsakis (May 15 2018 at 14:20, on Zulip):

in any case, there is one other part of the borrow-check work we should figure out that I've been putting off; there is another class of errors besides invalidating a loan

nikomatsakis (May 15 2018 at 14:20, on Zulip):

e.g., fn foo(x: &'a u32) -> &'b u32 { x }

nikomatsakis (May 15 2018 at 14:20, on Zulip):

the subset relations etc can tell us to reject that program

nikomatsakis (May 15 2018 at 14:20, on Zulip):

but I think we should put off worrying about that ;)

nikomatsakis (May 15 2018 at 14:20, on Zulip):

@Santiago Pastorino now?

Santiago Pastorino (May 15 2018 at 14:20, on Zulip):

yes

Reed Koser (May 15 2018 at 14:22, on Zulip):

We should be able to reuse the existing nll universal region analysis I think? Though the representation of those regions might change so....

lqd (May 15 2018 at 14:23, on Zulip):

oh do we already have the invalidated facts for the location-insensitive analysis ?

nikomatsakis (May 15 2018 at 14:23, on Zulip):

well I want to rip out all that logic -- but we can derive the same info from the subset

Reed Koser (May 15 2018 at 14:24, on Zulip):

:+1:. @lqd not yet, I ran out of time last night. See the borrow-check #4 thread

Reed Koser (May 15 2018 at 14:24, on Zulip):

Oh location-insensitive

Reed Koser (May 15 2018 at 14:24, on Zulip):

I'm not sure where Niko was planning on getting those facts from

nikomatsakis (May 15 2018 at 14:24, on Zulip):

your branch :)

nikomatsakis (May 15 2018 at 14:25, on Zulip):

but we can start just by computing the subset relation etc without reference to locations

Reed Koser (May 15 2018 at 14:25, on Zulip):

Heh. No pressure on me then :sweat_smile:

lqd (May 15 2018 at 14:25, on Zulip):

yeah it seemed like a simplified TimelyOpt :)

Frank McSherry (May 15 2018 at 15:03, on Zulip):

just generally make stuff run faster? I don't have a lot of ideas here right now; @Frank McSherry mentioned the possibility of "backpressure" -- that also seems to depend on #4 :)
in particular, if we've found one error already, we might try to suppress further related errors
but I feel like that's low priority, because we are most worried about programs without errors

To try and clarify a bit, the intent wasn't to try and stop early, so much as once a bla(b, p) fact is derived due to some region r, we could (in principle) suppress further derivations of the same bla(p, b) fact. For example (and incorrectly), if rules only fire if they involve both a b and a p not already in bla(b,p).

Total speculation that this is possible, but it was my first reaction to the relative reduction in sizes between requires and bla. I think that this ratio has decreased due to subsequent optimizations on requires, though.

nikomatsakis (May 15 2018 at 15:16, on Zulip):

hey @everyone — so I was just chatting with @Santiago Pastorino and going over the borrow-check project kind of "live" style, and it occurred to me that it might be useful to do that more generally. Specifically, we did a simultaneous screen share and video chat, and then we could talk over the code and show how to e.g. modify it. Would people be interested in trying to schedule (and/or maybe record for those who cannot attend?) such a thing?

Santiago Pastorino (May 15 2018 at 15:19, on Zulip):

@nikomatsakis I told you about this before and I still believe the same, I think this sessions are awesome

Santiago Pastorino (May 15 2018 at 15:20, on Zulip):

my guess is that would be great to have this frequently with people and record or even when you're going to show some parts of the code to somebody just invite more people

Santiago Pastorino (May 15 2018 at 15:20, on Zulip):

I'm more towards making one on one sessions and recording

nikomatsakis (May 15 2018 at 15:20, on Zulip):

yeah, I'm intrigued. I'm still trying to figure out the best way to "bootstrap" a working group like this

nikomatsakis (May 15 2018 at 15:20, on Zulip):

well, so I do have a recording from the chat that @Santiago Pastorino and I had

Santiago Pastorino (May 15 2018 at 15:21, on Zulip):

so you can keep the conversation between you and the one that is going to work on something

nikomatsakis (May 15 2018 at 15:21, on Zulip):

let me view it first before I decide if it should be made public :P

nikomatsakis (May 15 2018 at 15:21, on Zulip):

yeah I can see value in that

Santiago Pastorino (May 15 2018 at 15:21, on Zulip):

yep, people can ask you questions in a more comfortable way

Vytautas Astrauskas (May 15 2018 at 15:24, on Zulip):

@nikomatsakis I think such sessions would be super valuable.

qmx (May 15 2018 at 15:24, on Zulip):

there's a ton of value on those pairing sessions

nikomatsakis (May 15 2018 at 16:25, on Zulip):

ok so if people are interested in watching the video, I have just uploaded it to YouTube. @Santiago Pastorino and I covered:

Jake Goulding (May 15 2018 at 17:01, on Zulip):

@nikomatsakis when can I subscribe to you on twitch? ;-)

nikomatsakis (May 15 2018 at 17:02, on Zulip):

I was wondering if we should consider some other thing :)

Jake Goulding (May 15 2018 at 17:03, on Zulip):

youtube does have livestreaming too. carol and i did it for advent of code

Jake Goulding (May 15 2018 at 17:03, on Zulip):

but then you are live

nikomatsakis (May 16 2018 at 14:22, on Zulip):

btw ping @David Wood and @Chris Vittal — we should discuss what y'all want to do :)

davidtwco (May 16 2018 at 14:33, on Zulip):

Yeah, can't chat right this instant but will have time in a few hours.

nikomatsakis (May 16 2018 at 14:34, on Zulip):

@David Wood ok — let me know when works, I may or may not be around :)

davidtwco (May 17 2018 at 11:23, on Zulip):

@nikomatsakis Sorry, my day ran on a bit yesterday, got time today whenever you're around to discuss what I can be working on.

nikomatsakis (May 17 2018 at 13:57, on Zulip):

@David Wood ok ping me when you're around

davidtwco (May 17 2018 at 15:38, on Zulip):

@nikomatsakis ping

nikomatsakis (May 17 2018 at 15:38, on Zulip):

pong

nikomatsakis (May 17 2018 at 15:39, on Zulip):

@David Wood so — I guess you want to chat about what to do =)

davidtwco (May 17 2018 at 15:40, on Zulip):

Yeah. I'm still a little behind on how the alias borrow checker works, not had a chance to read your blog post on it yet. Happy to take on whatever issue you'd like though.

nikomatsakis (May 17 2018 at 15:41, on Zulip):

I was thinking that maybe it makes sense to push a bit more on #4. In particular, @Reed Koser opened up https://github.com/rust-lang/rust/pull/50798, which has not yet landed in rustc — it adds the ability to emit Invalidated tuples. If we do a local build, we could run that on some example tests that are supposed to have errors, using the -Znll-facts option. This would produce directories with input data.

nikomatsakis (May 17 2018 at 15:41, on Zulip):

we can then take those directories and try to modify Polonius to use them

nikomatsakis (May 17 2018 at 15:42, on Zulip):

this would entail some light modification of the rules

nikomatsakis (May 17 2018 at 15:42, on Zulip):

might be a nice introduction

nikomatsakis (May 17 2018 at 15:42, on Zulip):

I can definitely help step you through it :)

nikomatsakis (May 17 2018 at 15:42, on Zulip):

(though you might also benefit from watching the video I posted the other day...I'll have to find the link though...)

davidtwco (May 17 2018 at 15:42, on Zulip):

Sounds good.

nikomatsakis (May 17 2018 at 15:43, on Zulip):

anyway, we should be able to modify Polonius to take the extended data and emit as a result not raw tuples

nikomatsakis (May 17 2018 at 15:43, on Zulip):

but rather "error at location X"

nikomatsakis (May 17 2018 at 15:43, on Zulip):

or, put another way, we should be able to get the "tuples" we dump out at the end to be the error set

nikomatsakis (May 17 2018 at 15:43, on Zulip):

and not the full set of "which loan is required where"

nikomatsakis (May 17 2018 at 15:43, on Zulip):

which would be awesome

nikomatsakis (May 17 2018 at 15:43, on Zulip):

but let's take this to the thread for #4

nikomatsakis (May 22 2018 at 13:15, on Zulip):

@pnkfelix brief sync then?

pnkfelix (May 22 2018 at 13:15, on Zulip):

okay so lets see

pnkfelix (May 22 2018 at 13:15, on Zulip):

First off: I've put a pause on -Z borrowck=subprocess

nikomatsakis (May 22 2018 at 13:15, on Zulip):

I feel like a lot has changed since last week

nikomatsakis (May 22 2018 at 13:16, on Zulip):

yes, that

pnkfelix (May 22 2018 at 13:16, on Zulip):

since you seem to think that the library integration will be the easiest/fastest path forward

nikomatsakis (May 22 2018 at 13:16, on Zulip):

also, as a side note

pnkfelix (May 22 2018 at 13:16, on Zulip):

(I'm still a little concerned about turn-around time for development)

pnkfelix (May 22 2018 at 13:16, on Zulip):

(but I'm willing to believe -Z borrowck=subprocess would be a net loss.)

nikomatsakis (May 22 2018 at 13:16, on Zulip):

in the Traits Working Group paper,

nikomatsakis (May 22 2018 at 13:16, on Zulip):

we created this table at the top

nikomatsakis (May 22 2018 at 13:16, on Zulip):

for trying to keep the "big picture" view

nikomatsakis (May 22 2018 at 13:16, on Zulip):

er

nikomatsakis (May 22 2018 at 13:17, on Zulip):

that is the wrong link I think

pnkfelix (May 22 2018 at 13:17, on Zulip):

I don't have access to whatever it was

nikomatsakis (May 22 2018 at 13:17, on Zulip):

I updated the link

nikomatsakis (May 22 2018 at 13:17, on Zulip):

try again :)

pnkfelix (May 22 2018 at 13:18, on Zulip):

I see

pnkfelix (May 22 2018 at 13:18, on Zulip):

Well

pnkfelix (May 22 2018 at 13:18, on Zulip):

lets chat

nikomatsakis (May 22 2018 at 13:18, on Zulip):

(arguably could/should live in the tracking issue)

pnkfelix (May 22 2018 at 13:18, on Zulip):

and then we can see about making something similar afterward

nikomatsakis (May 22 2018 at 13:18, on Zulip):

seems fine

pnkfelix (May 22 2018 at 13:19, on Zulip):

I'll just mention two more things

pnkfelix (May 22 2018 at 13:19, on Zulip):

1. I spent a little bit longer doing more triage of the diagnostic output.

pnkfelix (May 22 2018 at 13:19, on Zulip):

Namely I went through all the cases that have "compilation successful" in their .nll.stderr, since those were obvious candidates for "weak test"

pnkfelix (May 22 2018 at 13:19, on Zulip):

I'm hoping to go through and just update all those tests today

pnkfelix (May 22 2018 at 13:20, on Zulip):

so that we can just tie off that whole category

nikomatsakis (May 22 2018 at 13:20, on Zulip):

ok that's smart

pnkfelix (May 22 2018 at 13:20, on Zulip):

(there's only just 20 just instances)

pnkfelix (May 22 2018 at 13:21, on Zulip):

and 2. there was some feedback from ariel on my match PR

pnkfelix (May 22 2018 at 13:21, on Zulip):

I posted my Q to him, but basically I think ariel's comments were a series of statement where he was convincing himself that the technique I used is actually necessary

nikomatsakis (May 22 2018 at 13:21, on Zulip):

ok :)

pnkfelix (May 22 2018 at 13:21, on Zulip):

(he had started off by suggesting an alternative that would have been simpler but unsound)

pnkfelix (May 22 2018 at 13:21, on Zulip):

(deleted)

pnkfelix (May 22 2018 at 13:22, on Zulip):

So that's my situation.

pnkfelix (May 22 2018 at 13:22, on Zulip):

oh there is a meta-question

pnkfelix (May 22 2018 at 13:22, on Zulip):

it took you+me about 45 minutes to go through the first 11 .nll.stderr tests

pnkfelix (May 22 2018 at 13:23, on Zulip):

there are 140 tests remaining (since I took care of the 20 obvious instances of "weak test")

pnkfelix (May 22 2018 at 13:23, on Zulip):

I think delegating here may not make sense

nikomatsakis (May 22 2018 at 13:24, on Zulip):

plausibly not

nikomatsakis (May 22 2018 at 13:24, on Zulip):

an advantage of having somebody "just do it" is that you get more consistency

pnkfelix (May 22 2018 at 13:24, on Zulip):

since I don't think the people we'd be delegating to would gain knowledge useful for future endeavors

pnkfelix (May 22 2018 at 13:24, on Zulip):

(except maybe exposure to the "interesting" cases exposed by tests? Not sure.)

pnkfelix (May 22 2018 at 13:24, on Zulip):

Yeah. So maybe I'm thinking I'll "just do it"

pnkfelix (May 22 2018 at 13:24, on Zulip):

but have you plan to spot check cases that bother me.

nikomatsakis (May 22 2018 at 13:24, on Zulip):

one thing I was not entirely happy with: adding data to paper is all well and good, but it felt like we might wind up with a lot of collation after the fact? e.g., common problems?

nikomatsakis (May 22 2018 at 13:25, on Zulip):

anyway that sounds ilke a reasonable plan

nikomatsakis (May 22 2018 at 13:25, on Zulip):

it will produce a list of delegatable test cases

nikomatsakis (May 22 2018 at 13:25, on Zulip):

er, delegatable work

pnkfelix (May 22 2018 at 13:25, on Zulip):

as in, multiple rows that are actually the same root problem?

nikomatsakis (May 22 2018 at 13:25, on Zulip):

right, we already saw some of those

pnkfelix (May 22 2018 at 13:25, on Zulip):

yes I agree that will happen

nikomatsakis (May 22 2018 at 13:25, on Zulip):

did you already do the "Weak test" stuff?

pnkfelix (May 22 2018 at 13:25, on Zulip):

This paper doc should probably not be the main reference we use to drive this work

pnkfelix (May 22 2018 at 13:25, on Zulip):

Yes, its in the paper doc

nikomatsakis (May 22 2018 at 13:25, on Zulip):

I mean

nikomatsakis (May 22 2018 at 13:25, on Zulip):

did you update them?

pnkfelix (May 22 2018 at 13:25, on Zulip):

https://paper.dropbox.com/doc/NLL-stderr-diagnostic-deviations-KzroSvNgQ7lip3WQyiLTa

pnkfelix (May 22 2018 at 13:25, on Zulip):

Oh no, I haven't done that yet

nikomatsakis (May 22 2018 at 13:25, on Zulip):

if not, maybe @David Wood or @Chris Vittal would be up for that

pnkfelix (May 22 2018 at 13:26, on Zulip):

I wanted to deal with match pR first

nikomatsakis (May 22 2018 at 13:26, on Zulip):

or somebody else

pnkfelix (May 22 2018 at 13:26, on Zulip):

I guess that is true

pnkfelix (May 22 2018 at 13:26, on Zulip):

oh

nikomatsakis (May 22 2018 at 13:26, on Zulip):

might be something worth floating at meeting today

pnkfelix (May 22 2018 at 13:26, on Zulip):

there were two cases I did want to double check with you aboit

pnkfelix (May 22 2018 at 13:26, on Zulip):

where I wasn't sure if it was a :100:

pnkfelix (May 22 2018 at 13:26, on Zulip):

i..e something that we expected to come from NLL

nikomatsakis (May 22 2018 at 13:26, on Zulip):

( or @Santiago Pastorino, who was asking me what they ought to do :)

nikomatsakis (May 22 2018 at 13:26, on Zulip):

ok

pnkfelix (May 22 2018 at 13:27, on Zulip):

these: https://github.com/rust-lang/rust/blob/master/src/test/ui/span/vec_refs_data_with_early_death.nll.stderr

pnkfelix (May 22 2018 at 13:27, on Zulip):

namely, it seems like somehow, the switch to NLL has had effects on how Vec is handled in terms of dropck

pnkfelix (May 22 2018 at 13:28, on Zulip):

the source for that test itself even says that we could loosen the rules for this case

nikomatsakis (May 22 2018 at 13:28, on Zulip):

well, we've seen some cases of that already — but they were more about us doing a better job of accounting for when the dtor actually runs than we used to do

pnkfelix (May 22 2018 at 13:28, on Zulip):

I just didn't expect NLL to have this effect.

pnkfelix (May 22 2018 at 13:28, on Zulip):

hmm okay

pnkfelix (May 22 2018 at 13:28, on Zulip):

it could be that this is another instance of that

pnkfelix (May 22 2018 at 13:28, on Zulip):

not sure

nikomatsakis (May 22 2018 at 13:28, on Zulip):

ok, I looked at the actual source for that test now

nikomatsakis (May 22 2018 at 13:28, on Zulip):

I see what you mean

nikomatsakis (May 22 2018 at 13:29, on Zulip):

I think this is expected

nikomatsakis (May 22 2018 at 13:29, on Zulip):

specifically what I think is happening is that: the borrows end after the assert

pnkfelix (May 22 2018 at 13:29, on Zulip):

because the borrows end up being shorter

nikomatsakis (May 22 2018 at 13:29, on Zulip):

so they never encounter the StorageDead for x and y

pnkfelix (May 22 2018 at 13:30, on Zulip):

hmm. But there may be a way to revise the test so that the borrows actually do outlive the vec

nikomatsakis (May 22 2018 at 13:30, on Zulip):

would that be an error?

pnkfelix (May 22 2018 at 13:30, on Zulip):

sure

nikomatsakis (May 22 2018 at 13:30, on Zulip):

oh, I think you don't mean what you said

nikomatsakis (May 22 2018 at 13:30, on Zulip):

I think you mean: outlive the source data

nikomatsakis (May 22 2018 at 13:31, on Zulip):

in that case, perhaps this?

nikomatsakis (May 22 2018 at 13:31, on Zulip):
fn main() { #![rustc_error] // rust-lang/rust#49855
    let mut v = Vec::new();

    {
        let x: i8 = 3;
        let y: i8 = 4;

        v.push(&x);
        v.push(&y);
    }

    assert_eq!(v, [&3, &4]);
}
pnkfelix (May 22 2018 at 13:31, on Zulip):

hmm I was thinking of something else

pnkfelix (May 22 2018 at 13:32, on Zulip):

but that looks good to me

pnkfelix (May 22 2018 at 13:32, on Zulip):

okay

nikomatsakis (May 22 2018 at 13:32, on Zulip):
let v = {
    let mut v = Vec::new();
    let x: i8 = 3;
    let y: i8 = 4;
    v.push(&x);
    v.push(&y);
    assert_eq!(v, [&3, &4]);
    v
};
pnkfelix (May 22 2018 at 13:32, on Zulip):

I'm happy with trying to do something like that.

nikomatsakis (May 22 2018 at 13:33, on Zulip):

I guess that might be sort of in the "spirit" of the original test too, though it's awfully similar

pnkfelix (May 22 2018 at 13:33, on Zulip):

okay I think that covers everything I had to report

nikomatsakis (May 22 2018 at 13:33, on Zulip):

but I think that might actually pass, since the dropck will consider the references dead

nikomatsakis (May 22 2018 at 13:34, on Zulip):

i.e., since you're not actually using v afterwards but just dropping it

nikomatsakis (May 22 2018 at 13:34, on Zulip):

ok so: that covers status of diagnostics

nikomatsakis (May 22 2018 at 13:34, on Zulip):

I guess one question is

nikomatsakis (May 22 2018 at 13:34, on Zulip):

do you think you'd have time to analyze more things until the meeting?

nikomatsakis (May 22 2018 at 13:34, on Zulip):

either way, we're starting to get some work items

pnkfelix (May 22 2018 at 13:35, on Zulip):

I've got maybe 1.5 hours after this meeting before I need to go get Logan at daycare

nikomatsakis (May 22 2018 at 13:35, on Zulip):

I wonder if it's worth trying to push through those

pnkfelix (May 22 2018 at 13:35, on Zulip):

and then my night is shot, in part because there is a Rust Meetup tonight

nikomatsakis (May 22 2018 at 13:35, on Zulip):

seems like it might be

pnkfelix (May 22 2018 at 13:35, on Zulip):

Yes I can to analyze more of the .nll.stderr things ,sure

nikomatsakis (May 22 2018 at 13:35, on Zulip):

in terms of rustc performance:

nikomatsakis (May 22 2018 at 13:36, on Zulip):

we got a small bump from my PR, @David Wood's has not landed yet,

nikomatsakis (May 22 2018 at 13:36, on Zulip):

there is still https://github.com/rust-lang/rust/issues/50934 which I don't think anyone has investigated yet

pnkfelix (May 22 2018 at 13:36, on Zulip):

do we have some sort of canonical link for NLL perf tracking

nikomatsakis (May 22 2018 at 13:36, on Zulip):

and doens't seem like the smartest thing ever but I can't think of anything better

pnkfelix (May 22 2018 at 13:36, on Zulip):

?

nikomatsakis (May 22 2018 at 13:36, on Zulip):

well there is https://github.com/rust-lang/rust/issues/47879

nikomatsakis (May 22 2018 at 13:36, on Zulip):

though not a lot of useful information there

nikomatsakis (May 22 2018 at 13:36, on Zulip):

(anymore)

nikomatsakis (May 22 2018 at 13:37, on Zulip):

This is the effect of my two PRs on clap:

Screen-Shot-2018-05-22-at-9.37.08-AM.png

pnkfelix (May 22 2018 at 13:37, on Zulip):

hmm

nikomatsakis (May 22 2018 at 13:37, on Zulip):

and here in tabular form

nikomatsakis (May 22 2018 at 13:37, on Zulip):

I did some new profiling

pnkfelix (May 22 2018 at 13:37, on Zulip):

its unfortunate that the nll color is reused in other charts

davidtwco (May 22 2018 at 13:37, on Zulip):

(I was intending to take a look at #50934 - moving this week so slightly busier than usual)

pnkfelix (May 22 2018 at 13:37, on Zulip):

that don't have nll

nikomatsakis (May 22 2018 at 13:38, on Zulip):

yes, that is sad

nikomatsakis (May 22 2018 at 13:38, on Zulip):

this is in general annoying

nikomatsakis (May 22 2018 at 13:38, on Zulip):

(i.e., same color should be "comparable dataset")

nikomatsakis (May 22 2018 at 13:38, on Zulip):

but anyway

nikomatsakis (May 22 2018 at 13:38, on Zulip):

so I did some further profiling, which we can dig into if you like

pnkfelix (May 22 2018 at 13:39, on Zulip):

well before we dig in

pnkfelix (May 22 2018 at 13:39, on Zulip):

I want to better understand your thoughts on polonius planning

nikomatsakis (May 22 2018 at 13:39, on Zulip):

me too

nikomatsakis (May 22 2018 at 13:40, on Zulip):

it's moving so fast it's hard to keep up :)

pnkfelix (May 22 2018 at 13:40, on Zulip):

(unless your thoughts there still are: "If we can make that work well, then we'll adopt it. But right now we need to focus on making the non-polonius version fast and its diagnostics readable"

pnkfelix (May 22 2018 at 13:40, on Zulip):

yes its a whirlwind over there

nikomatsakis (May 22 2018 at 13:41, on Zulip):

well

nikomatsakis (May 22 2018 at 13:41, on Zulip):

I guess my thoughts are still roughly in that same space but

nikomatsakis (May 22 2018 at 13:42, on Zulip):

it's moving so awfully fast that I can't help but wonder about it

nikomatsakis (May 22 2018 at 13:42, on Zulip):

e.g., right now, we've got the clap example down to ~5s, and I think that once @Santiago Pastorino's work gets going, it could plausibly be way faster than that

pnkfelix (May 22 2018 at 13:42, on Zulip):

okay. Maybe tonight someone whose been working deeply on it can report?

nikomatsakis (May 22 2018 at 13:43, on Zulip):

at which point, perf-wise, it's could we be faster than what rustc is doing (and fully precise)

nikomatsakis (May 22 2018 at 13:43, on Zulip):

however: integrating and getting everything up and going is still non-trivial effort

nikomatsakis (May 22 2018 at 13:43, on Zulip):

seems plausible (to have someone report)

nikomatsakis (May 22 2018 at 13:43, on Zulip):

I can try to sketch out what work I think would be needed

nikomatsakis (May 22 2018 at 13:43, on Zulip):

in terms of truly integrating

nikomatsakis (May 22 2018 at 13:44, on Zulip):

so we can perhaps get some of that underway

pnkfelix (May 22 2018 at 13:45, on Zulip):

there's "true integration" ... and then there's "superficial integration"

pnkfelix (May 22 2018 at 13:45, on Zulip):

we wanted just superficial integration just to be able to validate results

pnkfelix (May 22 2018 at 13:45, on Zulip):

how far away are we from that?

nikomatsakis (May 22 2018 at 13:45, on Zulip):

right

nikomatsakis (May 22 2018 at 13:45, on Zulip):

that I think is not so hard

nikomatsakis (May 22 2018 at 13:45, on Zulip):

I was thinking of sketching out two stories

nikomatsakis (May 22 2018 at 13:45, on Zulip):

first, superficial integration

pnkfelix (May 22 2018 at 13:45, on Zulip):

I'd prefer to see that up and running

nikomatsakis (May 22 2018 at 13:46, on Zulip):

second, deeper integration

pnkfelix (May 22 2018 at 13:46, on Zulip):

before we make people think too hard about full integration

nikomatsakis (May 22 2018 at 13:46, on Zulip):

yeah and I think the unknowns get a bit bigger

nikomatsakis (May 22 2018 at 13:46, on Zulip):

so let's just focus on superficial which will already tell us a lot

pnkfelix (May 22 2018 at 13:46, on Zulip):

(I can imagine that preparing for the full integration case might affect how things are done for the superficial integration case. But, it seems overall that if we aren't validating the results, then we cannot trust the performance numbers anyway)

nikomatsakis (May 22 2018 at 13:46, on Zulip):

e.g., perf, diagnostic info

pnkfelix (May 22 2018 at 13:47, on Zulip):

okay I think I'm happy with my understanding of things there.

pnkfelix (May 22 2018 at 13:47, on Zulip):

well

pnkfelix (May 22 2018 at 13:47, on Zulip):

not exactly happy

pnkfelix (May 22 2018 at 13:47, on Zulip):

since I'm still not clear what the true story is for how you plan to do superficial integration

pnkfelix (May 22 2018 at 13:47, on Zulip):

but

pnkfelix (May 22 2018 at 13:47, on Zulip):

I can wait until tonight to see you talk about that

nikomatsakis (May 22 2018 at 13:48, on Zulip):

I will try to write up something in bullet point form sketching out what I see as future avenues

pnkfelix (May 22 2018 at 13:48, on Zulip):

(or sometime later, if we don't get to it tonight, that is okay)

nikomatsakis (May 22 2018 at 13:48, on Zulip):

and run it by @lqd etc so they can add whatever latest ideas they've cooked up with @Frank McSherry =)

pnkfelix (May 22 2018 at 13:48, on Zulip):

okay so next (and final?) topic: Digging into profile of current rustc NLL

nikomatsakis (May 22 2018 at 13:48, on Zulip):

(jfyi I'm supposed to be focusing on some other edition stuff this week :p so I'm going to try not to spend too much time on NLL)

pnkfelix (May 22 2018 at 13:49, on Zulip):

(unfortunately I myself will be distracted by RustFest stuff at various points. Hopefully not too badly.)

nikomatsakis (May 22 2018 at 13:50, on Zulip):

yeah, so I did some profiling. The results are interesting. Here is some data.

Thing Percent of total execution time
MIR Borrowck 32%
compute_regions 8%
type_check_internal (part of computing regions) 7%
take_and_reset_data (part of type check) 3%
do_dataflow 10%
reconstruct_statement_effect (not during do_dataflow) 7%
kill_loans_out_of_scope_at_location 19%
nikomatsakis (May 22 2018 at 13:50, on Zulip):

let me add a bit more things onto that list, but you can already see the one that stands out =)

pnkfelix (May 22 2018 at 13:50, on Zulip):

this is with the PR that cuts the calls to kill_loans_out_of_scope_at_location in half? Or without it?

nikomatsakis (May 22 2018 at 13:50, on Zulip):

without

nikomatsakis (May 22 2018 at 13:50, on Zulip):

that hasn't landed yet

pnkfelix (May 22 2018 at 13:50, on Zulip):

just checking

nikomatsakis (May 22 2018 at 13:50, on Zulip):

I can merge it locally and re-run in a bit, that would be good to know

pnkfelix (May 22 2018 at 13:51, on Zulip):

wasn't sure if you had done some try run with it or something

pnkfelix (May 22 2018 at 13:51, on Zulip):

it should land soon I hope

pnkfelix (May 22 2018 at 13:51, on Zulip):

oh

pnkfelix (May 22 2018 at 13:51, on Zulip):

there was something I noticed

pnkfelix (May 22 2018 at 13:51, on Zulip):

it may not matter ...

pnkfelix (May 22 2018 at 13:51, on Zulip):

but I think we may still be making the bitsets 2x bigger

pnkfelix (May 22 2018 at 13:51, on Zulip):

even though we no longer have the Reserved/Active distinction

nikomatsakis (May 22 2018 at 13:52, on Zulip):

oh, really?

pnkfelix (May 22 2018 at 13:52, on Zulip):

I happened to notice the * 2 still in one of the methods in the impl BitDenotation for Borrows

pnkfelix (May 22 2018 at 13:52, on Zulip):

in bits_per_block

nikomatsakis (May 22 2018 at 13:53, on Zulip):

interesting

pnkfelix (May 22 2018 at 13:53, on Zulip):

it probably doesn't matter that much, but it would be good to fix it.

nikomatsakis (May 22 2018 at 13:53, on Zulip):

I should probably add some #[inline(never)] but it seems like we are spending our time roughly:

1/3 type-check
1/3 dataflow
1/3 walking the results afterwards

nikomatsakis (May 22 2018 at 13:53, on Zulip):

interestingly, the first 1/3 (type-check) we still have to do w/ polonius

nikomatsakis (May 22 2018 at 13:54, on Zulip):

the 1/3 dataflow .. unclear. some of that we would still do unless we extend polonius

nikomatsakis (May 22 2018 at 13:54, on Zulip):

e.g., to cover the initialization checks and so forth

nikomatsakis (May 22 2018 at 13:54, on Zulip):

I sort of think we should extend polonius but we've not done that yet and I'm not eager to add it into the mix

nikomatsakis (May 22 2018 at 13:54, on Zulip):

the final 1/3 — walking results afterwards — we also still have to do, but maybe we can optimize it a lot more if we do a "proper" polonius integration

nikomatsakis (May 22 2018 at 13:55, on Zulip):

but .. that would also hinge on the move path and so forth

nikomatsakis (May 22 2018 at 13:55, on Zulip):

anyway, not clear how much to distract ourselves with that

nikomatsakis (May 22 2018 at 13:55, on Zulip):

(what I mean by "proper" is: if we are feeding Invalidates facts to polonius, and it gives us back "here are the points with errors")

nikomatsakis (May 22 2018 at 13:56, on Zulip):

so TL;DR figuring out how to do reconstruct_statement_effect and kill_loans_out_of_scope_at_location more efficiently remains pretty high priority

nikomatsakis (May 22 2018 at 13:56, on Zulip):

I have some ideas for optimizing the type-check to be about 2x faster than it is

nikomatsakis (May 22 2018 at 13:56, on Zulip):

but that seems... less important. That would be a 3% win overall.

nikomatsakis (May 22 2018 at 13:57, on Zulip):

(specifically, we're still spending 3% of our time doing this one bit of work I think we just don't have to do)

nikomatsakis (May 22 2018 at 13:57, on Zulip):

however, it may be worth it, because under all future plans, we're still gonna have to do the type-check

pnkfelix (May 22 2018 at 13:57, on Zulip):

in terms of speeding up reconstruct_statement_effect

nikomatsakis (May 22 2018 at 13:58, on Zulip):

well... that is pretty much exclusively kill_loans_out_of_scope_at_location

pnkfelix (May 22 2018 at 13:59, on Zulip):

oh, I thought you were saying you had factored that out separately above

nikomatsakis (May 22 2018 at 13:59, on Zulip):

I was suggesting that

nikomatsakis (May 22 2018 at 13:59, on Zulip):

but looking again at the data, that is wrong

pnkfelix (May 22 2018 at 13:59, on Zulip):

okay

nikomatsakis (May 22 2018 at 14:00, on Zulip):

total time spent in reconstruct_statement_effect--- 7%

pnkfelix (May 22 2018 at 14:00, on Zulip):

(I was going to say we're maintaining five flow states: borrows, inits, uninits, move_outs, ever_inits

nikomatsakis (May 22 2018 at 14:00, on Zulip):

total time spent in kill_loans_out_of_scope_at_location, when invoked from reconstruct_statement_effect -- 7%

pnkfelix (May 22 2018 at 14:00, on Zulip):

and then was going to muse about whether we should e.g. restructure things to delay compuation of move_outs)

pnkfelix (May 22 2018 at 14:01, on Zulip):

but if its not a hotspot, then never mind.

nikomatsakis (May 22 2018 at 14:02, on Zulip):

or, in perf focus terms:

Call stack Percent
{reconstruct_statement_effect} 7%
{reconstruct_statement_effect}..{kill_loans_out_of_scope_at_location} 7%
{kill_loans_out_of_scope_at_location} 19%
nikomatsakis (May 22 2018 at 14:02, on Zulip):

kind of amazing

nikomatsakis (May 22 2018 at 14:02, on Zulip):

anyway

nikomatsakis (May 22 2018 at 14:02, on Zulip):

ok, that's enough of that. seems clear what the main hotspot is.

nikomatsakis (May 22 2018 at 14:03, on Zulip):

so in terms of existing rustc: I see basically two big tasks. Finish diagnostic triage and get started on the MY EYES cases, and fix kill_loans_out_of_scope_at_location performance somehow

pnkfelix (May 22 2018 at 14:08, on Zulip):

Regarding kill_loans_out_of_scope_at_location: Do you have any intuition as to the relative sizes of the number of regions at a location vs the number of borrows at a location?

pnkfelix (May 22 2018 at 14:09, on Zulip):

I was just musing about whether inverting the loop could make any sense

pnkfelix (May 22 2018 at 14:09, on Zulip):

(inverting the nested loop, that is. Iterate over the regions that contain the point and then check if they correspond to a bit in the borrow set)

nikomatsakis (May 22 2018 at 14:10, on Zulip):

did you see my proposal in the issue?

pnkfelix (May 22 2018 at 14:10, on Zulip):

I haven't read it carefully

pnkfelix (May 22 2018 at 14:10, on Zulip):

I guess I'll do that now

nikomatsakis (May 22 2018 at 14:11, on Zulip):

https://github.com/rust-lang/rust/issues/50934 <-- not sure if it's the best idea though!

Vytautas Astrauskas (May 22 2018 at 14:59, on Zulip):

@nikomatsakis @pnkfelix JFYI: I am still buried under my teaching responsibilities, but I should be able to get free time around Rust Fest (Friday → Tuesday) to work on NLL. So, please let me know if I could be helpful in some way. (I am personally most interested in getting Polonius into Rustc as fast as possible since this is needed for my work.)

nikomatsakis (May 22 2018 at 15:00, on Zulip):

great! I'm going to try and prep a 'lay of the land' doc soon-ish that will include various tasks related to that...

Vytautas Astrauskas (May 22 2018 at 15:02, on Zulip):

Cool! Thank you!

nikomatsakis (May 22 2018 at 18:06, on Zulip):

@pnkfelix any further diagnostic notes will be in that same paper?

pnkfelix (May 22 2018 at 18:09, on Zulip):

I won’t put them anywhere else for now

pnkfelix (May 22 2018 at 18:09, on Zulip):

But I also am busy with Rust meetup right now

nikomatsakis (May 22 2018 at 18:10, on Zulip):

yep ok; I was just adding some notes to the paper

nikomatsakis (May 22 2018 at 18:23, on Zulip):

@lqd @Santiago Pastorino I wrote up this section in the DropBox paper, summarizing my view of the current status — does the section on "future polonius performance" sound about right to y'all?

lqd (May 22 2018 at 18:26, on Zulip):

yes :simple_smile:

Santiago Pastorino (May 22 2018 at 18:27, on Zulip):

@lqd @Santiago Pastorino I wrote up this section in the DropBox paper, summarizing my view of the current status — does the section on "future polonius performance" sound about right to y'all?

will check it out :)

Santiago Pastorino (May 22 2018 at 18:56, on Zulip):

@nikomatsakis all that stuff makes a lot of sense :)

Santiago Pastorino (May 22 2018 at 18:56, on Zulip):

thanks for writing this

Santiago Pastorino (May 22 2018 at 18:56, on Zulip):

have clarified a lot for me that wasn't able to follow all the discussions

Santiago Pastorino (May 22 2018 at 18:57, on Zulip):

@nikomatsakis so I was about to give dump_enabled more sense

Santiago Pastorino (May 22 2018 at 18:57, on Zulip):

but figured that the "wrong" parts are in insensitive and naive

Santiago Pastorino (May 22 2018 at 18:58, on Zulip):

unsure if datafrog_opt is incomplete but it's dumping region_live_at, subset and requires if dump_enabled and borrow_live_at always

Santiago Pastorino (May 22 2018 at 18:59, on Zulip):

I think that case is fine

nikomatsakis (May 22 2018 at 18:59, on Zulip):

unsure if datafrog_opt is incomplete but it's dumping region_live_at, subset and requires if dump_enabled and borrow_live_at always

yeah I think it should be (a) computing the set of errors (not sure if @lqd did that yet) and then (b) dumping the rest only if dump_enabled

Santiago Pastorino (May 22 2018 at 18:59, on Zulip):

yes

Santiago Pastorino (May 22 2018 at 18:59, on Zulip):

that also

Santiago Pastorino (May 22 2018 at 18:59, on Zulip):

I was first going to fix the existing stuff

Santiago Pastorino (May 22 2018 at 19:00, on Zulip):

not sure neither if @lqd already did

Santiago Pastorino (May 22 2018 at 19:00, on Zulip):

but then naive doesn't output anything when dump_enabled

lqd (May 22 2018 at 19:00, on Zulip):

I updated the last part, I wasn't sure if anyone still needed the others

Santiago Pastorino (May 22 2018 at 19:00, on Zulip):

what's the last part?

lqd (May 22 2018 at 19:01, on Zulip):

https://github.com/rust-lang-nursery/polonius/pull/42

lqd (May 22 2018 at 19:01, on Zulip):

output errors instead of borrow_live_at, and only borrow_live_at when in verbose mode

lqd (May 22 2018 at 19:02, on Zulip):

and the rest I didn't modify, as it still helpful to debug and test, until we have more of those, and rustc integration

Santiago Pastorino (May 22 2018 at 19:02, on Zulip):

I see

Santiago Pastorino (May 22 2018 at 19:02, on Zulip):

makes sense

lqd (May 22 2018 at 19:02, on Zulip):

but I can make changes if you want

Santiago Pastorino (May 22 2018 at 19:04, on Zulip):

what changes?

lqd (May 22 2018 at 19:04, on Zulip):

some possible ones you'd like me to do :)

Santiago Pastorino (May 22 2018 at 19:04, on Zulip):

:)

Santiago Pastorino (May 22 2018 at 19:05, on Zulip):

I mean, from my point of view datafrog_opt is behaving correctly regarding dump_enabled flag

Santiago Pastorino (May 22 2018 at 19:05, on Zulip):

the wrong ones are naive and location_insensitive

Santiago Pastorino (May 22 2018 at 19:05, on Zulip):

I'm fixing those

Keith Yeung (May 22 2018 at 19:19, on Zulip):

Naive doesn't output anything??

Santiago Pastorino (May 22 2018 at 19:19, on Zulip):

when dump_enabled is not being filled

Keith Yeung (May 22 2018 at 19:20, on Zulip):

Hmm, what did I do...

lqd (May 22 2018 at 19:20, on Zulip):

@Keith Yeung I mentioned this to you on GH yeah, it's ok we can add it back :)

Santiago Pastorino (May 22 2018 at 19:20, on Zulip):

I'm about to finish

Keith Yeung (May 22 2018 at 19:21, on Zulip):

Oh you mean how the -v dump gives a different output than before

Santiago Pastorino (May 22 2018 at 19:25, on Zulip):

https://github.com/rust-lang-nursery/polonius/pull/43

pnkfelix (May 22 2018 at 19:32, on Zulip):

sorry for being late

nikomatsakis (May 29 2018 at 12:42, on Zulip):

@pnkfelix want to sync up then?

pnkfelix (May 29 2018 at 12:42, on Zulip):

yeah I was just debating whether to reuse this topic for that

pnkfelix (May 29 2018 at 12:43, on Zulip):

so lets just do it. :)

nikomatsakis (May 29 2018 at 12:43, on Zulip):

heh :)

pnkfelix (May 29 2018 at 12:43, on Zulip):

so, as you can tell, I've been spending what time I have looking at #47184

nikomatsakis (May 29 2018 at 12:43, on Zulip):

ok

nikomatsakis (May 29 2018 at 12:43, on Zulip):

that does seem like the major remaining soundness issue, right?

nikomatsakis (May 29 2018 at 12:44, on Zulip):

there is also #50716 which I think @Vytautas Astrauskas was looking at (maybe already an open PR?)

pnkfelix (May 29 2018 at 12:44, on Zulip):

yes and it seemed good

pnkfelix (May 29 2018 at 12:44, on Zulip):

i almost r+'ed it

pnkfelix (May 29 2018 at 12:44, on Zulip):

but then I realized that I don't think its test was quite right

pnkfelix (May 29 2018 at 12:44, on Zulip):

(and made a comment saying so)

nikomatsakis (May 29 2018 at 12:45, on Zulip):

ok

nikomatsakis (May 29 2018 at 12:46, on Zulip):

I am curious as to the status of diagnostics

Vytautas Astrauskas (May 29 2018 at 12:46, on Zulip):

but then I realized that I don't think its test was quite right

I have updated the PR.

pnkfelix (May 29 2018 at 12:46, on Zulip):

but then I realized that I don't think its test was quite right

I have updated the PR.

fantastic

nikomatsakis (May 29 2018 at 12:46, on Zulip):

but then I realized that I don't think its test was quite right

I have updated the PR.

fantastic

/me just nesting for fun

pnkfelix (May 29 2018 at 12:46, on Zulip):

okay the situation with diagnostics is unknwon to me

pnkfelix (May 29 2018 at 12:46, on Zulip):

although

pnkfelix (May 29 2018 at 12:47, on Zulip):

one thing I was meaning to do

pnkfelix (May 29 2018 at 12:47, on Zulip):

was review the tests that I merged after I fixed their test source codes

pnkfelix (May 29 2018 at 12:47, on Zulip):

to actually reflect the original test's intent under NLL

pnkfelix (May 29 2018 at 12:47, on Zulip):

in particular, I need to recategorize where they fall now that they are not 'weak test'

pnkfelix (May 29 2018 at 12:47, on Zulip):

anyway that doesn't get at your overall Q

nikomatsakis (May 29 2018 at 12:47, on Zulip):

to confirm: the intended meaning here was "review the tests that I merged after (I fixed their test source codes to actually reflect the original test's intent)", right?

nikomatsakis (May 29 2018 at 12:48, on Zulip):

that is, you fixed the test to reflect intent, but now have to review the resulting output

nikomatsakis (May 29 2018 at 12:48, on Zulip):

(vs review to ensure they reflect intent)

pnkfelix (May 29 2018 at 12:48, on Zulip):

well

pnkfelix (May 29 2018 at 12:48, on Zulip):

more to diff them against AST stderr output

nikomatsakis (May 29 2018 at 12:48, on Zulip):

right that's what I meant

nikomatsakis (May 29 2018 at 12:48, on Zulip):

ok

pnkfelix (May 29 2018 at 12:49, on Zulip):

I believe that the output they gave reflected intent from the POV of a compiler dev

pnkfelix (May 29 2018 at 12:49, on Zulip):

but they may not be acceptable diagnostic output for end users

nikomatsakis (May 29 2018 at 12:49, on Zulip):

ok

nikomatsakis (May 29 2018 at 12:49, on Zulip):

so, we may not have intended the paper doc to serve as the canonical database, but in practice I think ti is anyway

pnkfelix (May 29 2018 at 12:50, on Zulip):

no i will kill it!

nikomatsakis (May 29 2018 at 12:50, on Zulip):

Iv'e been trying to update with links to issues

pnkfelix (May 29 2018 at 12:50, on Zulip):

;)

pnkfelix (May 29 2018 at 12:50, on Zulip):

well it will be our canonical DB until we decide it cannot be such anymore

nikomatsakis (May 29 2018 at 12:50, on Zulip):

oh I see you filed some issues

nikomatsakis (May 29 2018 at 12:50, on Zulip):

as well

nikomatsakis (May 29 2018 at 12:50, on Zulip):

which is great

pnkfelix (May 29 2018 at 12:50, on Zulip):

yes I tried to provide links consistently on the far right column

pnkfelix (May 29 2018 at 12:51, on Zulip):

in addition to the inline link that provide info in context on the second column from the right

nikomatsakis (May 29 2018 at 12:51, on Zulip):

I think that @Matthew Jasper had something for borrowck/borrowck-move-error-with-note.nll.stderr

pnkfelix (May 29 2018 at 12:51, on Zulip):

(which is what I understand you've been adding)

nikomatsakis (May 29 2018 at 12:51, on Zulip):

not sure if it had an issue

nikomatsakis (May 29 2018 at 12:51, on Zulip):

yes I tried to provide links consistently on the far right column

makes sense

pnkfelix (May 29 2018 at 12:51, on Zulip):

ah I have no links there

pnkfelix (May 29 2018 at 12:51, on Zulip):

there was so much wrong

pnkfelix (May 29 2018 at 12:51, on Zulip):

that I wasn't prepared to tackle it. :)

nikomatsakis (May 29 2018 at 12:52, on Zulip):

they posted this gist of output https://gist.github.com/matthewjasper/15eac85086ee6a8adb806450b046c57a

nikomatsakis (May 29 2018 at 12:52, on Zulip):

which is looking pretty good

pnkfelix (May 29 2018 at 12:52, on Zulip):

i'll at least make links to the ones that are also covered elsewhere (namely highlighting binding site without also highlighting input expression, aka #51012 )

nikomatsakis (May 29 2018 at 12:53, on Zulip):

I am wondering if it would make sense to triage NLL-diagnostics label somehow

nikomatsakis (May 29 2018 at 12:53, on Zulip):

in particular, it seems like it'd be easier to drive "delegation and issue assignment" from GH than the paper

nikomatsakis (May 29 2018 at 12:53, on Zulip):

though keeping the paper up-to-date also makes sense to me

pnkfelix (May 29 2018 at 12:53, on Zulip):

sure

nikomatsakis (May 29 2018 at 12:53, on Zulip):

there are a a lot of issues tagged NLL-diagnostics

pnkfelix (May 29 2018 at 12:54, on Zulip):

yeah and I'm betting some can be marked as dupes

pnkfelix (May 29 2018 at 12:54, on Zulip):

we also deferred a lot of that work

nikomatsakis (May 29 2018 at 12:54, on Zulip):

yes and I guess we can tag others as NLL-deferred

nikomatsakis (May 29 2018 at 12:54, on Zulip):

(and then maybe - that label in our search?)

pnkfelix (May 29 2018 at 12:54, on Zulip):

so just taking a step back for a second

pnkfelix (May 29 2018 at 12:55, on Zulip):

plan of record ... is still to deploy using current implementation with location-insensitive analysis (i.e. not polonius)

pnkfelix (May 29 2018 at 12:55, on Zulip):

and thus we need to focus (apart from soundness which we believe fixed) on diagnostics, right?

pnkfelix (May 29 2018 at 12:55, on Zulip):

namely, NLL-complete stuff is basically being attached to polonius at this point?

pnkfelix (May 29 2018 at 12:55, on Zulip):

(at least any NLL-complete issues that are extensions beyond what AST-borrowck did)

pnkfelix (May 29 2018 at 12:56, on Zulip):

Does this sound correct?

nikomatsakis (May 29 2018 at 12:56, on Zulip):

yes

pnkfelix (May 29 2018 at 12:56, on Zulip):

Sorry if I'm reiterating things that I should already know

pnkfelix (May 29 2018 at 12:56, on Zulip):

I just want to have a clear mindset about prioritization

pnkfelix (May 29 2018 at 12:56, on Zulip):

which seems to be:

pnkfelix (May 29 2018 at 12:57, on Zulip):

1. Fix any soundness issues in old implementation,

nikomatsakis (May 29 2018 at 12:57, on Zulip):

well we should ask ourselves if we are truly behaving as if this is it the plan of record

nikomatsakis (May 29 2018 at 12:57, on Zulip):

but I believe it is

pnkfelix (May 29 2018 at 12:57, on Zulip):

2. Fix diagnostics in old implementation

nikomatsakis (May 29 2018 at 12:57, on Zulip):

(and I believe it still makes sense)

pnkfelix (May 29 2018 at 12:57, on Zulip):

3. We are happy to get improvements to polonius (which can cover any of Soundness, Completeness, Diagnostics),

pnkfelix (May 29 2018 at 12:57, on Zulip):

but they take lesser priority over 1 and 2.

pnkfelix (May 29 2018 at 12:58, on Zulip):

I think you and I agree that we mostly have item 1 (soundness of old implemention) under control

pnkfelix (May 29 2018 at 12:59, on Zulip):

and meanwhile I keep balking at putting effort into 2

nikomatsakis (May 29 2018 at 12:59, on Zulip):

yeah I think that is the area most in need

pnkfelix (May 29 2018 at 12:59, on Zulip):

because I keeping thinking/hoping that polonius is going to magically get plugged in

nikomatsakis (May 29 2018 at 12:59, on Zulip):

I'm not convinced it will change much when it comes to diagnostics

pnkfelix (May 29 2018 at 12:59, on Zulip):

oh no

pnkfelix (May 29 2018 at 12:59, on Zulip):

My belief is that it will regress diagnostics at the outset

pnkfelix (May 29 2018 at 12:59, on Zulip):

a lot

pnkfelix (May 29 2018 at 12:59, on Zulip):

and that we will need to budget much effort to get it up to speed

nikomatsakis (May 29 2018 at 13:00, on Zulip):

I see. I think it will regress some but not a lot

nikomatsakis (May 29 2018 at 13:00, on Zulip):

that said

pnkfelix (May 29 2018 at 13:00, on Zulip):

Interesting

nikomatsakis (May 29 2018 at 13:00, on Zulip):

the reason I say that:

nikomatsakis (May 29 2018 at 13:00, on Zulip):

my prior branch (based on differential-dataflow) basically had the same output

nikomatsakis (May 29 2018 at 13:00, on Zulip):

as existing NLL

nikomatsakis (May 29 2018 at 13:00, on Zulip):

that said, we are still using the old analysis for some stuff, maybe that's part of it

nikomatsakis (May 29 2018 at 13:01, on Zulip):

anyway, I think we shouldn't hold back from fixing diagnostics

nikomatsakis (May 29 2018 at 13:01, on Zulip):

the fact that polonius will regress is all the more reason to hold off on making it the official thing :)

nikomatsakis (May 29 2018 at 13:01, on Zulip):

that said, I'm not sure what to do about this PR: https://github.com/rust-lang/rust/pull/50938

nikomatsakis (May 29 2018 at 13:01, on Zulip):

which aims to cleanup some polonius stuff

nikomatsakis (May 29 2018 at 13:01, on Zulip):

but in the process does regress diagnostics :)

nikomatsakis (May 29 2018 at 13:01, on Zulip):

probably what I should do is not land it in that state

pnkfelix (May 29 2018 at 13:01, on Zulip):

okay

nikomatsakis (May 29 2018 at 13:01, on Zulip):

and try to mentor someone through fixing the diganostics :)

nikomatsakis (May 29 2018 at 13:02, on Zulip):

(I also have to fix an ICE...)

pnkfelix (May 29 2018 at 13:02, on Zulip):

sorry that I haven't looked at that seriously yet

nikomatsakis (May 29 2018 at 13:02, on Zulip):

the diagnostic effects aren't actually that bad, reviewing

nikomatsakis (May 29 2018 at 13:03, on Zulip):

it's mostly that we are picking worse spans in some cases

nikomatsakis (May 29 2018 at 13:03, on Zulip):

I think because we wind up picking the RETURN terminator sometimes

nikomatsakis (May 29 2018 at 13:03, on Zulip):

anyway

nikomatsakis (May 29 2018 at 13:03, on Zulip):

so what now?

pnkfelix (May 29 2018 at 13:03, on Zulip):

well

nikomatsakis (May 29 2018 at 13:03, on Zulip):

do we try to triage NLL-diagnostics?

pnkfelix (May 29 2018 at 13:03, on Zulip):

I think we need to figure out what we will be doing at the meeting tonight

pnkfelix (May 29 2018 at 13:03, on Zulip):

which could be something that results from triaging NLL diagnostics

nikomatsakis (May 29 2018 at 13:03, on Zulip):

(re: polonius I think there is still non-trivial work to fully integrate)

pnkfelix (May 29 2018 at 13:03, on Zulip):

but before I commit to that

pnkfelix (May 29 2018 at 13:04, on Zulip):

there this group of people at impl Days

pnkfelix (May 29 2018 at 13:04, on Zulip):

who have been putting serious effort into polonius stuff

nikomatsakis (May 29 2018 at 13:04, on Zulip):

(how long does that go btw?)

nikomatsakis (May 29 2018 at 13:04, on Zulip):

(today last day?)

pnkfelix (May 29 2018 at 13:04, on Zulip):

I don't know if all of them are aware of the meeting, or even available to participate

pnkfelix (May 29 2018 at 13:04, on Zulip):

Today is the last day

pnkfelix (May 29 2018 at 13:04, on Zulip):

but I figure any way that we can encourage them to stay engaged

pnkfelix (May 29 2018 at 13:04, on Zulip):

is effort well spent

nikomatsakis (May 29 2018 at 13:05, on Zulip):

oh certainly :)

pnkfelix (May 29 2018 at 13:05, on Zulip):

(I assume that many of them are seeing this output on their screens now. Arguably I should be sitting with them like I was yesterday, but I couldn't resist sitting with the Heroscape game)

nikomatsakis (May 29 2018 at 13:06, on Zulip):

:wave:

nikomatsakis (May 29 2018 at 13:06, on Zulip):

I don't know Heroscape is :)

pnkfelix (May 29 2018 at 13:06, on Zulip):

(lets not worry about that, it can only get me into trouble)

nikomatsakis (May 29 2018 at 13:08, on Zulip):

heh

pnkfelix (May 29 2018 at 13:08, on Zulip):

okay done

nikomatsakis (May 29 2018 at 13:08, on Zulip):

ok, so, I definitely think we should encourage people to hang around, and I remain sort of unsure how best to split the efforts between rustc and polonius

pnkfelix (May 29 2018 at 13:08, on Zulip):

I just announced the existence of the weekly meeting and explained how it works

nikomatsakis (May 29 2018 at 13:08, on Zulip):

ah, very nice

nikomatsakis (May 29 2018 at 13:08, on Zulip):

:'( I am sad I cannot attend RustFest

pnkfelix (May 29 2018 at 13:08, on Zulip):

we can talk at the meeting to try to take peoples' temperature about how many would be interested in assisting with the non-polonius effort

pnkfelix (May 29 2018 at 13:10, on Zulip):

based above prioriization scheme

nikomatsakis (May 29 2018 at 13:10, on Zulip):

ok.

nikomatsakis (May 29 2018 at 13:10, on Zulip):

I guess that https://github.com/rust-lang/rust/issues/49862 can be closed, right?

pnkfelix (May 29 2018 at 13:11, on Zulip):

ouais!

nikomatsakis (May 29 2018 at 13:11, on Zulip):

simiarly https://github.com/rust-lang/rust/issues/48879 ?

pnkfelix (May 29 2018 at 13:11, on Zulip):

for that I think the question at the end is still open

pnkfelix (May 29 2018 at 13:12, on Zulip):

namely I would want to either extend --compare-mode to compile-fail (and run-pass?) tests

nikomatsakis (May 29 2018 at 13:12, on Zulip):

oh, just saw that :)

nikomatsakis (May 29 2018 at 13:12, on Zulip):

I would rather not

nikomatsakis (May 29 2018 at 13:12, on Zulip):

those tests should become ui tests instead

pnkfelix (May 29 2018 at 13:12, on Zulip):

or port them all to ui/ tests

nikomatsakis (May 29 2018 at 13:12, on Zulip):

imho :)

pnkfelix (May 29 2018 at 13:12, on Zulip):

right sorry I didn't get to that

pnkfelix (May 29 2018 at 13:12, on Zulip):

in terms of my writing. :)

nikomatsakis (May 29 2018 at 13:12, on Zulip):

heh :) sorry

pnkfelix (May 29 2018 at 13:12, on Zulip):

I agree that the most sensible thing is to port to ui/

nikomatsakis (May 29 2018 at 13:13, on Zulip):

there are more reasons

pnkfelix (May 29 2018 at 13:13, on Zulip):

and in that case, blocking that bug on such a port ... is probably a mistake

pnkfelix (May 29 2018 at 13:13, on Zulip):

but we really should consider doing such a port

pnkfelix (May 29 2018 at 13:13, on Zulip):

before we try to stabilize NLL, at the very least

nikomatsakis (May 29 2018 at 13:13, on Zulip):

e.g., estebank was using the stderr files to help triage other sorts of error message issues

nikomatsakis (May 29 2018 at 13:13, on Zulip):

e.g. to avoid multiline spans

pnkfelix (May 29 2018 at 13:13, on Zulip):

or wait, I guess NLL stabilization will implicitly affect all tests

nikomatsakis (May 29 2018 at 13:13, on Zulip):

not to mention catching accidental regressions etc

pnkfelix (May 29 2018 at 13:14, on Zulip):

anyway, it sounds like you agree that such a port should happen (for many reasons)

nikomatsakis (May 29 2018 at 13:14, on Zulip):

yeah, I do agree that it would be good to up the priority of porting compile-fail and run-pass tests to ui tests

nikomatsakis (May 29 2018 at 13:14, on Zulip):

run-pass should be very easy to do I think?

pnkfelix (May 29 2018 at 13:14, on Zulip):

the only reason I objected was from back when the ui/ tests didn't support //~ERROR

nikomatsakis (May 29 2018 at 13:14, on Zulip):

all we need to do is to add // run-pass, now that revisions work

nikomatsakis (May 29 2018 at 13:14, on Zulip):

yeah so basically closed in favor of https://github.com/rust-lang/rust/issues/44844

pnkfelix (May 29 2018 at 13:16, on Zulip):

okay good

pnkfelix (May 29 2018 at 13:16, on Zulip):

ah, jinx

nikomatsakis (May 29 2018 at 13:17, on Zulip):

ok so .. I don't know how to approach the rest of this list:)

nikomatsakis (May 29 2018 at 13:17, on Zulip):

it's long

nikomatsakis (May 29 2018 at 13:17, on Zulip):

there do appear to be dups

pnkfelix (May 29 2018 at 13:19, on Zulip):

hmm

pnkfelix (May 29 2018 at 13:19, on Zulip):

22 open tickets

pnkfelix (May 29 2018 at 13:19, on Zulip):

(that is, you're looking at NLL-diagnostics alone, right?)

nikomatsakis (May 29 2018 at 13:19, on Zulip):

yep

pnkfelix (May 29 2018 at 13:19, on Zulip):

well

nikomatsakis (May 29 2018 at 13:19, on Zulip):

looks like https://github.com/rust-lang/rust/issues/45699 is the move errors

pnkfelix (May 29 2018 at 13:19, on Zulip):

some ideas for different ways to triage/categorize these

pnkfelix (May 29 2018 at 13:20, on Zulip):

1. attempt to identify dupes

pnkfelix (May 29 2018 at 13:20, on Zulip):

(maybe a thankless task; much effort with little potential payoff?)

pnkfelix (May 29 2018 at 13:20, on Zulip):

2. categorize issues. E.g. "needs better span", vs "needs suggestion" ...?

nikomatsakis (May 29 2018 at 13:21, on Zulip):

one other question: do we think that everything from the paper has at least one issue?

nikomatsakis (May 29 2018 at 13:21, on Zulip):

if so, it might make sense to just ignore the quality of the list

nikomatsakis (May 29 2018 at 13:21, on Zulip):

and pull off non-overlapping tasks

nikomatsakis (May 29 2018 at 13:21, on Zulip):

closing things as dup eagerly

nikomatsakis (May 29 2018 at 13:21, on Zulip):

when we encounter them

pnkfelix (May 29 2018 at 13:21, on Zulip):

so wait

pnkfelix (May 29 2018 at 13:21, on Zulip):

which list would be driving things, the Paper one, or the github one?

nikomatsakis (May 29 2018 at 13:22, on Zulip):

I am saying: make sure that the github is complete, and then use it to drive

pnkfelix (May 29 2018 at 13:22, on Zulip):

okay

pnkfelix (May 29 2018 at 13:22, on Zulip):

I don't think everything has an issue

pnkfelix (May 29 2018 at 13:22, on Zulip):

but almost everything does

pnkfelix (May 29 2018 at 13:22, on Zulip):

we can probably plug that hole right now

nikomatsakis (May 29 2018 at 13:23, on Zulip):

what do these letters like E, F, Q mean?

pnkfelix (May 29 2018 at 13:23, on Zulip):

They were my attempt to correlate rows

pnkfelix (May 29 2018 at 13:23, on Zulip):

before filing concrete issues

nikomatsakis (May 29 2018 at 13:23, on Zulip):

I see, ok

pnkfelix (May 29 2018 at 13:23, on Zulip):

that is why I'm saying we may be able to plug this quickly

nikomatsakis (May 29 2018 at 13:23, on Zulip):

well, it looks like (almost?) everything has an issue, I agree

nikomatsakis (May 29 2018 at 13:23, on Zulip):

in that case I kinda think we should just try to pick some diagnostic isuses to work on first

pnkfelix (May 29 2018 at 13:24, on Zulip):

the main thing I'd want to do

nikomatsakis (May 29 2018 at 13:24, on Zulip):

and "drain the queue" as we go

pnkfelix (May 29 2018 at 13:24, on Zulip):

is file issues for the remaining letters

pnkfelix (May 29 2018 at 13:24, on Zulip):

hmm at some point I may have stopped generating letters

pnkfelix (May 29 2018 at 13:25, on Zulip):

also, I was not planning to include "meh" rows

nikomatsakis (May 29 2018 at 13:25, on Zulip):

+1

pnkfelix (May 29 2018 at 13:27, on Zulip):

okay so I can spend some time right now creating fresh issues for the remaining rows. If there is duplicate issues filed in the end, so be it; we'll have to deal with existing dupes anyway

nikomatsakis (May 29 2018 at 13:27, on Zulip):

sounds fine

pnkfelix (May 29 2018 at 13:27, on Zulip):

once we have such issues

nikomatsakis (May 29 2018 at 13:27, on Zulip):

I will maybe try to look over the list of issues and pull out some for the paper

pnkfelix (May 29 2018 at 13:27, on Zulip):

i see, a sort of bidirectional update?

pnkfelix (May 29 2018 at 13:28, on Zulip):

i.e. you're going to potentially add new rows?

pnkfelix (May 29 2018 at 13:28, on Zulip):

If that's the plan, just make sure you include a link in the right hand column so I don't try to create an issue for the thing you're porting over

nikomatsakis (May 29 2018 at 13:28, on Zulip):

what?

nikomatsakis (May 29 2018 at 13:29, on Zulip):

I meant that i would go through the GH list

nikomatsakis (May 29 2018 at 13:29, on Zulip):

and maybe add things to the planning document

pnkfelix (May 29 2018 at 13:29, on Zulip):

OH OH

pnkfelix (May 29 2018 at 13:29, on Zulip):

the planning document Paper

nikomatsakis (May 29 2018 at 13:29, on Zulip):

yeah I guess that is ambiguous :)

pnkfelix (May 29 2018 at 13:29, on Zulip):

I was still thinking of the NLL-stderr-diagnostic-deviations paper

pnkfelix (May 29 2018 at 13:29, on Zulip):

okay

pnkfelix (May 29 2018 at 13:30, on Zulip):

Okay, so you'll try to pull out some issues to advertise as high priority work items, then?

pnkfelix (May 29 2018 at 13:31, on Zulip):

this all sounds good to me

pnkfelix (May 29 2018 at 13:31, on Zulip):

So that sounds like that would give us our main mtg agenda for tonight, beyond Polonius progress reporting from the people who feel like advertising that

pnkfelix (May 29 2018 at 13:40, on Zulip):

oh Niko there is one more thing I did want to ask you

pnkfelix (May 29 2018 at 13:41, on Zulip):

some of the tests at https://paper.dropbox.com/doc/NLL-stderr-diagnostic-deviations-KzroSvNgQ7lip3WQyiLTa are pretty good, where the main issue I noted was that the error messages were out-of-order with respect to the input source text

pnkfelix (May 29 2018 at 13:41, on Zulip):

do you agree that it is "good" to try to canonicalize output in such a fashion, where the error emission order matches the source text order?

nikomatsakis (May 29 2018 at 13:42, on Zulip):

Hmm I do agree

nikomatsakis (May 29 2018 at 13:42, on Zulip):

I feel like as a user I sort of expect it

pnkfelix (May 29 2018 at 13:42, on Zulip):

i was tempted to treat it as meh, and filed it as such

pnkfelix (May 29 2018 at 13:42, on Zulip):

but I think fixing that

pnkfelix (May 29 2018 at 13:42, on Zulip):

will also improve our process overall

pnkfelix (May 29 2018 at 13:42, on Zulip):

in terms of easing comparison of stderr files

pnkfelix (May 29 2018 at 13:42, on Zulip):

by human eye

pnkfelix (May 29 2018 at 13:43, on Zulip):

sounds like I am justified in opening an issue for this. Okay.

nikomatsakis (May 29 2018 at 13:43, on Zulip):

man this triage is sort of hard :)

qmx (May 29 2018 at 14:00, on Zulip):

it definitely looks hard from the outside :)

nikomatsakis (May 29 2018 at 14:19, on Zulip):

I'm basically just going to spend time going through issues leaving notes on how to get started

nikomatsakis (Jun 05 2018 at 13:35, on Zulip):

@pnkfelix do we want to sync this morning?

pnkfelix (Jun 05 2018 at 13:35, on Zulip):

oh hmm

pnkfelix (Jun 05 2018 at 13:35, on Zulip):

yeah probably best that we do so

pnkfelix (Jun 05 2018 at 13:35, on Zulip):

but we can use Zulip for it

nikomatsakis (Jun 05 2018 at 13:36, on Zulip):

ok

pnkfelix (Jun 05 2018 at 13:36, on Zulip):

I think the biggest thing I want to try to hash out

pnkfelix (Jun 05 2018 at 13:36, on Zulip):

is the question of which strategy we are aiming for in deployment

pnkfelix (Jun 05 2018 at 13:36, on Zulip):

(this is the topic that we had that digression about in the meeting last Tuesday)

pnkfelix (Jun 05 2018 at 13:36, on Zulip):

or maybe

pnkfelix (Jun 05 2018 at 13:36, on Zulip):

we should delay this decision

nikomatsakis (Jun 05 2018 at 13:36, on Zulip):

ah, I think you convinced me we should strive for "always show MIR output"

pnkfelix (Jun 05 2018 at 13:37, on Zulip):

until we're further along in diagnostics implementation?

pnkfelix (Jun 05 2018 at 13:37, on Zulip):

oh hmm okay

nikomatsakis (Jun 05 2018 at 13:37, on Zulip):

I mean I guess we always have the option of "falling back" to HIR output

pnkfelix (Jun 05 2018 at 13:37, on Zulip):

I wanted to give you a chance to argue the virtues of what you wanted to do. :)

nikomatsakis (Jun 05 2018 at 13:37, on Zulip):

heh

pnkfelix (Jun 05 2018 at 13:37, on Zulip):

because I continue to not understand the point. :)

nikomatsakis (Jun 05 2018 at 13:37, on Zulip):

I think it was just worse

pnkfelix (Jun 05 2018 at 13:37, on Zulip):

(beyond it being ultra-conservative warning period stuff)

pnkfelix (Jun 05 2018 at 13:38, on Zulip):

(to let people prepare for new compiler errors, and perhaps report back to us cases that they "need" to work.)

nikomatsakis (Jun 05 2018 at 13:38, on Zulip):

I didn't want to have to try to "match up" MIR + HIR diagnostics at some fine-grained level or something

nikomatsakis (Jun 05 2018 at 13:38, on Zulip):

but you're plan doesn't require that

nikomatsakis (Jun 05 2018 at 13:38, on Zulip):

so I think it's all good

pnkfelix (Jun 05 2018 at 13:38, on Zulip):

Okay

pnkfelix (Jun 05 2018 at 13:38, on Zulip):

that's good then

nikomatsakis (Jun 05 2018 at 13:39, on Zulip):

one thing that I am wondering about

pnkfelix (Jun 05 2018 at 13:39, on Zulip):

I did add yet another table to the unofficial stderr deviations database

nikomatsakis (Jun 05 2018 at 13:39, on Zulip):

we said we don't have to care about Complete

nikomatsakis (Jun 05 2018 at 13:39, on Zulip):

but I think that's not necessarily true

nikomatsakis (Jun 05 2018 at 13:39, on Zulip):

where does that database live now?

nikomatsakis (Jun 05 2018 at 13:39, on Zulip):

is there a google doc?

pnkfelix (Jun 05 2018 at 13:39, on Zulip):

same paper doc at moment

pnkfelix (Jun 05 2018 at 13:39, on Zulip):

https://paper.dropbox.com/doc/NLL-stderr-diagnostic-deviations-KzroSvNgQ7lip3WQyiLTa

nikomatsakis (Jun 05 2018 at 13:39, on Zulip):

ah ok

pnkfelix (Jun 05 2018 at 13:39, on Zulip):

but an actual spread sheet

pnkfelix (Jun 05 2018 at 13:39, on Zulip):

might be a good thing to migrate to?

pnkfelix (Jun 05 2018 at 13:40, on Zulip):

... also

nikomatsakis (Jun 05 2018 at 13:40, on Zulip):

maybe

pnkfelix (Jun 05 2018 at 13:40, on Zulip):

yet another alternative

pnkfelix (Jun 05 2018 at 13:40, on Zulip):

is this thing: https://hackmd.io/

pnkfelix (Jun 05 2018 at 13:40, on Zulip):

which the RustFest people used

pnkfelix (Jun 05 2018 at 13:40, on Zulip):

its sort of like etherpad with markdown

pnkfelix (Jun 05 2018 at 13:40, on Zulip):

unlike Paper, it exposes the raw source view

pnkfelix (Jun 05 2018 at 13:40, on Zulip):

but

pnkfelix (Jun 05 2018 at 13:41, on Zulip):

I'm not clear on whether its free or not, since I'm not the one who set up the pages when we had RustFest meetings.

nikomatsakis (Jun 05 2018 at 13:41, on Zulip):

yeah, it's ok

nikomatsakis (Jun 05 2018 at 13:41, on Zulip):

I've usually found I (personally) prefer paper

nikomatsakis (Jun 05 2018 at 13:41, on Zulip):

but hackmd has its appeal

nikomatsakis (Jun 05 2018 at 13:41, on Zulip):

editing tables in markdown really stinks

pnkfelix (Jun 05 2018 at 13:42, on Zulip):

okay if you're already familiar with it then I'll say no more

nikomatsakis (Jun 05 2018 at 13:42, on Zulip):

(but I agree that having the raw markdown is nice)

nikomatsakis (Jun 05 2018 at 13:42, on Zulip):

anyway, so mainly I want to avoid being surprised by sleeper issues we were overlooking

pnkfelix (Jun 05 2018 at 13:42, on Zulip):

yeah. but cut-and-paste out of Paper and into Google Sheet actually kind of worked

nikomatsakis (Jun 05 2018 at 13:42, on Zulip):

it seems to me that there is the matter of "user-given annotations" is such an issue

nikomatsakis (Jun 05 2018 at 13:42, on Zulip):

we're not overlooking it

nikomatsakis (Jun 05 2018 at 13:42, on Zulip):

but it may be a non-trivial amount of work

pnkfelix (Jun 05 2018 at 13:42, on Zulip):

ah yes

nikomatsakis (Jun 05 2018 at 13:43, on Zulip):

but also there may be completeness or other bugs lurking in GH

pnkfelix (Jun 05 2018 at 13:43, on Zulip):

because we don't yet know how we're going to solve it in general

nikomatsakis (Jun 05 2018 at 13:43, on Zulip):

right

nikomatsakis (Jun 05 2018 at 13:43, on Zulip):

did your match PR land yet?

pnkfelix (Jun 05 2018 at 13:43, on Zulip):

I sort of want to focus on finishing the diagnostics stuff

nikomatsakis (Jun 05 2018 at 13:43, on Zulip):

I also agree

nikomatsakis (Jun 05 2018 at 13:43, on Zulip):

that is, i want to be aware of the unknowns

pnkfelix (Jun 05 2018 at 13:43, on Zulip):

..... boy i sure hope that match PR landed ....

nikomatsakis (Jun 05 2018 at 13:43, on Zulip):

but it doesn't mean we should try to solve them yet

nikomatsakis (Jun 05 2018 at 13:43, on Zulip):

that particular one I think can wait

pnkfelix (Jun 05 2018 at 13:43, on Zulip):

https://github.com/rust-lang/rust/pull/50783 merged, whoopdiedoo

nikomatsakis (Jun 05 2018 at 13:43, on Zulip):

I mean we don't know just how we'll plumb the data

nikomatsakis (Jun 05 2018 at 13:44, on Zulip):

but .. we'll plumb it somehow ...

nikomatsakis (Jun 05 2018 at 13:44, on Zulip):

I've been focusing on two things : perf + region diagnostics

pnkfelix (Jun 05 2018 at 13:44, on Zulip):

(always great to see bugs from 2015 getting fixed)

nikomatsakis (Jun 05 2018 at 13:44, on Zulip):

perf is getting .. trickier ..

nikomatsakis (Jun 05 2018 at 13:44, on Zulip):

I have something I want to try that I think could be a big win but it's hard to tell

nikomatsakis (Jun 05 2018 at 13:44, on Zulip):

but it's a mildly long road to get there

pnkfelix (Jun 05 2018 at 13:44, on Zulip):

what is our current status on perf ?

nikomatsakis (Jun 05 2018 at 13:45, on Zulip):

http://perf.rust-lang.org/nll-dashboard.html

nikomatsakis (Jun 05 2018 at 13:45, on Zulip):

that is the current commit

nikomatsakis (Jun 05 2018 at 13:45, on Zulip):

cargo check

nikomatsakis (Jun 05 2018 at 13:45, on Zulip):

so the worst case for NLL

pnkfelix (Jun 05 2018 at 13:45, on Zulip):

holy cow

nikomatsakis (Jun 05 2018 at 13:45, on Zulip):

the results I see on my machine are somewhat better

nikomatsakis (Jun 05 2018 at 13:45, on Zulip):

but not dramatically so

nikomatsakis (Jun 05 2018 at 13:45, on Zulip):

e.g., for clap-rs we get 200% overhead, not 300%

nikomatsakis (Jun 05 2018 at 13:45, on Zulip):

I don't know what's up with that one case

nikomatsakis (Jun 05 2018 at 13:45, on Zulip):

must be something "special"

pnkfelix (Jun 05 2018 at 13:45, on Zulip):

do we know what's up with inflate?

nikomatsakis (Jun 05 2018 at 13:45, on Zulip):

no, it'd be worth digging into

nikomatsakis (Jun 05 2018 at 13:45, on Zulip):

I doubt it will generalzie

nikomatsakis (Jun 05 2018 at 13:46, on Zulip):

but I guess you never know

nikomatsakis (Jun 05 2018 at 13:46, on Zulip):

I should at least do some profiles

nikomatsakis (Jun 05 2018 at 13:46, on Zulip):

I did a bunch of other profiles

nikomatsakis (Jun 05 2018 at 13:46, on Zulip):

for cargo, sentry-cli

pnkfelix (Jun 05 2018 at 13:46, on Zulip):

Are there other people

nikomatsakis (Jun 05 2018 at 13:46, on Zulip):

maybe another serde

pnkfelix (Jun 05 2018 at 13:46, on Zulip):

who have been getting experience with generating profiles

nikomatsakis (Jun 05 2018 at 13:46, on Zulip):

they looked kind of similar-ish

pnkfelix (Jun 05 2018 at 13:46, on Zulip):

in a similar manner to what you've been doing?

nikomatsakis (Jun 05 2018 at 13:46, on Zulip):

not that I know of

nikomatsakis (Jun 05 2018 at 13:46, on Zulip):

but anybody with a linux machine can do it

pnkfelix (Jun 05 2018 at 13:46, on Zulip):

it might be good to screen cast it

nikomatsakis (Jun 05 2018 at 13:46, on Zulip):

cough @Santiago Pastorino cough

nikomatsakis (Jun 05 2018 at 13:46, on Zulip):

or @qmx

pnkfelix (Jun 05 2018 at 13:47, on Zulip):

then we could just point at the screen cast

nikomatsakis (Jun 05 2018 at 13:47, on Zulip):

yeah, that's not a bad idea

pnkfelix (Jun 05 2018 at 13:47, on Zulip):

though of course

nikomatsakis (Jun 05 2018 at 13:47, on Zulip):

ok, let's add that to the paper as Thing

pnkfelix (Jun 05 2018 at 13:47, on Zulip):

the benefit of pair programming

pnkfelix (Jun 05 2018 at 13:47, on Zulip):

is that the teacher finds out about all the blind spots they had internalized

nikomatsakis (Jun 05 2018 at 13:47, on Zulip):

I think it makes sense to kind of setup a Performance Focus group

nikomatsakis (Jun 05 2018 at 13:47, on Zulip):

I started writing a blog post

nikomatsakis (Jun 05 2018 at 13:47, on Zulip):

that summarized our plan

nikomatsakis (Jun 05 2018 at 13:47, on Zulip):

and I was hoping to do a kind of "call to action"

nikomatsakis (Jun 05 2018 at 13:48, on Zulip):

but I was afraid we don't quite know what people should do

nikomatsakis (Jun 05 2018 at 13:48, on Zulip):

we don't have a clear list of things to "attack"

nikomatsakis (Jun 05 2018 at 13:49, on Zulip):

we're at a phase that I'm finding it hard to "get ahead" and create lists of things

nikomatsakis (Jun 05 2018 at 13:49, on Zulip):

we have a lot of diagnostic issues obviously

pnkfelix (Jun 05 2018 at 13:49, on Zulip):

yeah

pnkfelix (Jun 05 2018 at 13:49, on Zulip):

I tried to tag the ones

pnkfelix (Jun 05 2018 at 13:49, on Zulip):

that are likely to be subsumed by my check_access_permissions work

pnkfelix (Jun 05 2018 at 13:50, on Zulip):

there's still a lot leftover

nikomatsakis (Jun 05 2018 at 13:51, on Zulip):

that's a good start

nikomatsakis (Jun 05 2018 at 13:51, on Zulip):

so it seems like a "Call to action" -- well, an "open" one -- is perhaps not what we need now

nikomatsakis (Jun 05 2018 at 13:51, on Zulip):

what we sort of need is people who've got at least some familiary with what's going on

nikomatsakis (Jun 05 2018 at 13:51, on Zulip):

doesn't have to be WG-nll per se but in general people who've hacked a few compiler bugs

nikomatsakis (Jun 05 2018 at 13:51, on Zulip):

maybe?

nikomatsakis (Jun 05 2018 at 13:51, on Zulip):

anyway

nikomatsakis (Jun 05 2018 at 13:52, on Zulip):

I started adding some notes to the paper document

pnkfelix (Jun 05 2018 at 13:52, on Zulip):

sorry

pnkfelix (Jun 05 2018 at 13:53, on Zulip):

was just tryign to clean up the stderr paper doc a little

pnkfelix (Jun 05 2018 at 13:53, on Zulip):

add some links to each of the tables

pnkfelix (Jun 05 2018 at 13:53, on Zulip):

so

pnkfelix (Jun 05 2018 at 13:54, on Zulip):

You summarized the perf situation, such as it is

pnkfelix (Jun 05 2018 at 13:54, on Zulip):

what is the region stuff you were looking at?

nikomatsakis (Jun 05 2018 at 13:54, on Zulip):

I was extending the NLL type checker to add minimal causal info to edges -- right now, categorizing them

nikomatsakis (Jun 05 2018 at 13:54, on Zulip):

you can see here the output from one test: https://gist.github.com/nikomatsakis/30729457b235586e31f5a975e3338ed3

nikomatsakis (Jun 05 2018 at 13:54, on Zulip):

I think this gives us the basic info we need to display a better version of the region errors

pnkfelix (Jun 05 2018 at 13:55, on Zulip):

so this is for : https://github.com/rust-lang/rust/issues/51188 , right?

nikomatsakis (Jun 05 2018 at 13:55, on Zulip):

basically yes

pnkfelix (Jun 05 2018 at 13:55, on Zulip):

I'm not going to assing the issue to you

pnkfelix (Jun 05 2018 at 13:55, on Zulip):

but I am going to put your name down

pnkfelix (Jun 05 2018 at 13:55, on Zulip):

in the second table

nikomatsakis (Jun 05 2018 at 13:55, on Zulip):

I've been focused on this test ui/underscore-lifetime/dyn-trait-underscore.rs

pnkfelix (Jun 05 2018 at 13:55, on Zulip):

as the "Last Known Investigator"

pnkfelix (Jun 05 2018 at 13:55, on Zulip):

so that people know to ask you about what you did

nikomatsakis (Jun 05 2018 at 13:55, on Zulip):

sounds good

pnkfelix (Jun 05 2018 at 14:00, on Zulip):

So what you were saying about a "Call to action" above

pnkfelix (Jun 05 2018 at 14:00, on Zulip):

are you thinking of more focused requests for help in e.g. #rustc ?

nikomatsakis (Jun 05 2018 at 14:03, on Zulip):

I don't know what i'm thinking really

nikomatsakis (Jun 05 2018 at 14:03, on Zulip):

I gotta go though, bbiab

Santiago Pastorino (Jun 05 2018 at 14:22, on Zulip):

cough @Santiago Pastorino cough

@nikomatsakis I can do it or help if you want :)

nikomatsakis (Jun 05 2018 at 14:40, on Zulip):

ok — want to try now?

nikomatsakis (Jun 05 2018 at 14:40, on Zulip):

actually, let me split to a distinct topic

nikomatsakis (Jun 05 2018 at 14:40, on Zulip):

also, i'm back :)

Santiago Pastorino (Jun 05 2018 at 15:42, on Zulip):

hey, I'm kind of back

nikomatsakis (Jul 17 2018 at 11:23, on Zulip):

so @pnkfelix seeing as we are both here we should discuss current status, pre-triage, etc

pnkfelix (Jul 17 2018 at 11:23, on Zulip):

sounds good

nikomatsakis (Jul 17 2018 at 11:24, on Zulip):

the big picture seems similar at least, though we've made great progress on the region errors

nikomatsakis (Jul 17 2018 at 11:24, on Zulip):

I guess first thing might be to skim for untriaged issues

nikomatsakis (Jul 17 2018 at 11:25, on Zulip):

this search for issues tagged A-nll but not deferred and not on a milestone shows 14 issues

nikomatsakis (Jul 17 2018 at 11:25, on Zulip):

though some of them look old

pnkfelix (Jul 17 2018 at 11:27, on Zulip):

may want to filter out the ones tagged as NLL-fixed-by-NLL as well

nikomatsakis (Jul 17 2018 at 11:28, on Zulip):

oh yes I think I did that before

nikomatsakis (Jul 17 2018 at 11:28, on Zulip):

ok that gets us down to 8 issues

nikomatsakis (Jul 17 2018 at 11:28, on Zulip):

two of which are meta issues

nikomatsakis (Jul 17 2018 at 11:28, on Zulip):

let's look at https://github.com/rust-lang/rust/issues/52416

pnkfelix (Jul 17 2018 at 11:29, on Zulip):

silly question: does "NLL ICEs from nll-3 crater" supersede/obsolete "NLL ICEs from nll-1 crater" ?

nikomatsakis (Jul 17 2018 at 11:29, on Zulip):

I think it should

nikomatsakis (Jul 17 2018 at 11:29, on Zulip):

seems like #52416 is a relatively straightforward ICE and we should fix for EP

nikomatsakis (Jul 17 2018 at 11:29, on Zulip):

I'm going to nominate to write some directions

nikomatsakis (Jul 17 2018 at 11:29, on Zulip):

(that's the system I've been using; I do a first sweep and traige, then nominate things to revisit during meeting)

pnkfelix (Jul 17 2018 at 11:30, on Zulip):

Okay

nikomatsakis (Jul 17 2018 at 11:30, on Zulip):

though it also appears that @Matthew Jasper is on it

nikomatsakis (Jul 17 2018 at 11:30, on Zulip):

next is https://github.com/rust-lang/rust/issues/52384

nikomatsakis (Jul 17 2018 at 11:31, on Zulip):

I'm pondering this one; I don't think @Matthew Jasper's diagnosis is 100% correct, but it's in the right direction

pnkfelix (Jul 17 2018 at 11:31, on Zulip):

wait, what's wrong with diagnosis?

pnkfelix (Jul 17 2018 at 11:31, on Zulip):

you don't think the user-annotated 'static is the relevant bit in the original bug?

nikomatsakis (Jul 17 2018 at 11:32, on Zulip):

see my comment

nikomatsakis (Jul 17 2018 at 11:33, on Zulip):

actually @lqd or @simulacrum, do you know if #52054 is a subset of #52217 ?

nikomatsakis (Jul 17 2018 at 11:33, on Zulip):

that is, should we close the former as a duplicate?

pnkfelix (Jul 17 2018 at 11:34, on Zulip):

aha

pnkfelix (Jul 17 2018 at 11:34, on Zulip):

they are different, since one is with 2-phase borrows and one is without

pnkfelix (Jul 17 2018 at 11:34, on Zulip):

but we should probably only care about #52217

nikomatsakis (Jul 17 2018 at 11:34, on Zulip):

they are technically different

pnkfelix (Jul 17 2018 at 11:34, on Zulip):

since we ... only care about runs with 2 phase borrows enabled, right?

nikomatsakis (Jul 17 2018 at 11:34, on Zulip):

but I think that the ICEs would've ccurred either way

lqd (Jul 17 2018 at 11:34, on Zulip):

I think it is yeah

lqd (Jul 17 2018 at 11:34, on Zulip):

that is, they are both the same ICEs

lqd (Jul 17 2018 at 11:35, on Zulip):

lemme check again

nikomatsakis (Jul 17 2018 at 11:35, on Zulip):

ok let's just close #52054

nikomatsakis (Jul 17 2018 at 11:35, on Zulip):

anyway there are already separate issues for each item in the list

nikomatsakis (Jul 17 2018 at 11:35, on Zulip):

so https://github.com/rust-lang/rust/issues/52147 -- diagnostic issue, agree it's ungreat, @Matthew Jasper assigned themselves, I think I will mark for EP2

lqd (Jul 17 2018 at 11:35, on Zulip):

yup we can close 52054 I feel

nikomatsakis (Jul 17 2018 at 11:36, on Zulip):

in general more tailred closure errors are something we should probably try to act on, esp as @David Wood is now free :)

nikomatsakis (Jul 17 2018 at 11:36, on Zulip):

yup we can close 52054 I feel

done

nikomatsakis (Jul 17 2018 at 11:36, on Zulip):

well actually I'm going to mark https://github.com/rust-lang/rust/issues/52147 as RC

pnkfelix (Jul 17 2018 at 11:36, on Zulip):

okay good

nikomatsakis (Jul 17 2018 at 11:36, on Zulip):

it feels (to me) like we could ship EP2 with this if push came to shove?

nikomatsakis (Jul 17 2018 at 11:36, on Zulip):

one thing @pnkfelix -- @Aaron Turon and I were talking about the general triage process

nikomatsakis (Jul 17 2018 at 11:37, on Zulip):

and I'm probably going to go over our milestones with somebody else, disconnected from NLL, later on -- you don't have to be a part of it necessarily as I expect it will fall outside of normal working hours -- the goal is mainly to get an outsider's assessment of priority

pnkfelix (Jul 17 2018 at 11:38, on Zulip):

that sounds like a good idea

nikomatsakis (Jul 17 2018 at 11:38, on Zulip):

https://github.com/rust-lang/rust/issues/52078

pnkfelix (Jul 17 2018 at 11:39, on Zulip):

(i just transcribed playground text into the description)

nikomatsakis (Jul 17 2018 at 11:39, on Zulip):

very curious

nikomatsakis (Jul 17 2018 at 11:39, on Zulip):

i guess the question before us: EP2 vs RC

pnkfelix (Jul 17 2018 at 11:39, on Zulip):

I'm ... surprised by a bug like this

nikomatsakis (Jul 17 2018 at 11:40, on Zulip):

@lqd do you have a sense of how often https://github.com/rust-lang/rust/issues/52078 occurred, was it just the one crate?

lqd (Jul 17 2018 at 11:41, on Zulip):

I feel there is definitely some weirdness in the area, I can't say for sure if it's exactly the same, but it feels related to implied bounds, and associated types, on a few crates, maybe more than 5 but less than 10

nikomatsakis (Jul 17 2018 at 11:42, on Zulip):

ok. I'll probably investigate some, particularly as @Tyler Mandry has a PR in that area that I have review anyway

lqd (Jul 17 2018 at 11:42, on Zulip):

I'll check quickly how many

nikomatsakis (Jul 17 2018 at 11:43, on Zulip):

I think my general feeling is that EP2 is about completeness + completely unusable diagnostics

nikomatsakis (Jul 17 2018 at 11:43, on Zulip):

which I guess means that it fits into that bucket

lqd (Jul 17 2018 at 11:44, on Zulip):

around 5 that could be considered in the same general area of bugginess, but that's why it'd be nice for either niko or felix to do a quick pass over these preliminary results :)

nikomatsakis (Jul 17 2018 at 11:44, on Zulip):

https://github.com/rust-lang/rust/issues/52059 does not seem to fit that bucket

nikomatsakis (Jul 17 2018 at 11:44, on Zulip):

I guess RC

lqd (Jul 17 2018 at 11:45, on Zulip):

this one happened a couple times elsewhere

nikomatsakis (Jul 17 2018 at 11:45, on Zulip):

I think https://github.com/rust-lang/rust/issues/51170 is also RC, though @Matthew Jasper has a pending PR (r? @pnkfelix)

pnkfelix (Jul 17 2018 at 11:45, on Zulip):

ah brilliant

nikomatsakis (Jul 17 2018 at 11:46, on Zulip):

ok, all triaged

nikomatsakis (Jul 17 2018 at 11:47, on Zulip):

here is the list of issues on the EP2 milestone

nikomatsakis (Jul 17 2018 at 11:47, on Zulip):

plenty :)

nikomatsakis (Jul 17 2018 at 11:47, on Zulip):

I guess to start here are the 5 ICEs

nikomatsakis (Jul 17 2018 at 11:48, on Zulip):

of those, @mikhail-m1 is working on #51351 (I'm going to add you, @mikhail-m1, to the NLL team so I can assign it to you properly...)

nikomatsakis (Jul 17 2018 at 11:48, on Zulip):

/me grumbles about stupid github

nikomatsakis (Jul 17 2018 at 11:50, on Zulip):

regarding https://github.com/rust-lang/rust/issues/49250 I have a branch that is like 80% of the way there

nikomatsakis (Jul 17 2018 at 11:50, on Zulip):

regarding https://github.com/rust-lang/rust/issues/52057 it feels pretty similar (potentially related?) to the implied bounds error that we were just looked at, and also to @Tyler Mandry's PR, maybe i'll assign myself to investigate the bundle today

nikomatsakis (Jul 17 2018 at 11:51, on Zulip):

I think an hour or so ought to suffice to at least undesratnd what the problem is there

nikomatsakis (Jul 17 2018 at 11:51, on Zulip):

https://github.com/rust-lang/rust/issues/52113 is follow-up work to #51351 and I owe @mikhail-m1 some more detailed thoughts

nikomatsakis (Jul 17 2018 at 11:51, on Zulip):

ok, so ICEs are fine...

nikomatsakis (Jul 17 2018 at 11:52, on Zulip):

there are 14 non-ICEs

nikomatsakis (Jul 17 2018 at 11:52, on Zulip):

ps @pnkfelix or anyone, feel free to interrupt if you disagree with my conclusions :) just trying to get through the list

nikomatsakis (Jul 17 2018 at 11:53, on Zulip):

oh also @DPC I've invited you to the team as well

nikomatsakis (Jul 17 2018 at 11:53, on Zulip):

in terms of performance, we have only one issue currently, which is #52034 (liveness improvements)

nikomatsakis (Jul 17 2018 at 11:56, on Zulip):

I... think that's probably ok. I do think we've got more work to do here though. I'd like us to set some goals -- I was talking to scottmcm about it and they had an interesting perspective, coming from a book on human perception. The TL;DR was that about a 20% slowdown is where things tend to be noticeable (but only if the time is sufficiently large), so you should typically shoot for 10-15%. That kind of fits with my hopes and dreams, but I don't know how realistic it is. =) Anyway, I think we can .. probably put off the details of that for now.

nikomatsakis (Jul 17 2018 at 11:56, on Zulip):

not the focus of current round of bug fixing anyway

nikomatsakis (Jul 17 2018 at 11:56, on Zulip):

seems like we can close https://github.com/rust-lang/rust/issues/51827, which was just about doing a crater run

nikomatsakis (Jul 17 2018 at 11:56, on Zulip):

we've done that now

nikomatsakis (Jul 17 2018 at 11:56, on Zulip):

@lqd -- are the results even fully analyzed?

nikomatsakis (Jul 17 2018 at 11:56, on Zulip):

I think so, right?

nikomatsakis (Jul 17 2018 at 11:57, on Zulip):

(pretty amazing!)

pnkfelix (Jul 17 2018 at 11:57, on Zulip):

@nikomatsakis what do you want to do about https://github.com/rust-lang/rust/issues/51915 ?

lqd (Jul 17 2018 at 11:57, on Zulip):

I think

nikomatsakis (Jul 17 2018 at 11:57, on Zulip):

@pnkfelix a good question, I wanted to raise that

nikomatsakis (Jul 17 2018 at 11:58, on Zulip):

how many regressions do we think it accounts for I guess

nikomatsakis (Jul 17 2018 at 11:58, on Zulip):

I think we encountered at least some with crater?

lqd (Jul 17 2018 at 11:58, on Zulip):

(ICEs are done, and root regressions but split into "dependency errors" and "crate errors" so we could then triage them; apart from gross incompetence on my part, I think it just needs a final pass to be sure)

lqd (Jul 17 2018 at 11:58, on Zulip):

oh yeah some

nikomatsakis (Jul 17 2018 at 12:00, on Zulip):

I guess another question is how hard it would be

lqd (Jul 17 2018 at 12:00, on Zulip):

(sometimes the line is hard to draw for me but I've seen some cases related to this, IMO)

nikomatsakis (Jul 17 2018 at 12:00, on Zulip):

yeah it's not entirely obvious

nikomatsakis (Jul 17 2018 at 12:01, on Zulip):

@lqd regarding follow-up, if you want I can try to put an hour or two into it, maybe in another topic you can send me precisely the pointers I should follow up on

pnkfelix (Jul 17 2018 at 12:01, on Zulip):

@nikomatsakis I suppose we could tag 51915 as RC

lqd (Jul 17 2018 at 12:01, on Zulip):

sure

pnkfelix (Jul 17 2018 at 12:01, on Zulip):

@nikomatsakis and then during the preview, based on how many people complain

pnkfelix (Jul 17 2018 at 12:01, on Zulip):

@nikomatsakis make a delayed decision about whether to keep that target, or just not bother.

nikomatsakis (Jul 17 2018 at 12:02, on Zulip):

that sounds reasonable, let's do that

nikomatsakis (Jul 17 2018 at 12:03, on Zulip):

so it seems like we can close https://github.com/rust-lang/rust/issues/51918

nikomatsakis (Jul 17 2018 at 12:03, on Zulip):

which is great

nikomatsakis (Jul 17 2018 at 12:03, on Zulip):

the remaining 3 NLL-complete bugs are assigned to me ;)

nikomatsakis (Jul 17 2018 at 12:06, on Zulip):

one of them though is just added a test, and the others are ones we talked about already

pnkfelix (Jul 17 2018 at 12:07, on Zulip):

I had a 1:1 with spastorino about 46908

nikomatsakis (Jul 17 2018 at 12:07, on Zulip):

remaining issues

pnkfelix (Jul 17 2018 at 12:07, on Zulip):

it seemed like they were close to having the buffering of the MIR-borrowck errors done

nikomatsakis (Jul 17 2018 at 12:07, on Zulip):

ok, that's good

pnkfelix (Jul 17 2018 at 12:07, on Zulip):

I'm actually a little surprised they don't have a PR up. Maybe they didn't have as much free time as they expected

pnkfelix (Jul 17 2018 at 12:09, on Zulip):

anyway the buffering should also address 51167.

nikomatsakis (Jul 17 2018 at 12:09, on Zulip):

ah, yes

nikomatsakis (Jul 17 2018 at 12:09, on Zulip):

I'll assign to @Santiago Pastorino then

nikomatsakis (Jul 17 2018 at 12:10, on Zulip):

ps @pnkfelix if you write e.g. #46908 we get links now :)

pnkfelix (Jul 17 2018 at 12:10, on Zulip):

oh nice

pnkfelix (Jul 17 2018 at 12:11, on Zulip):

the remaining issues, we already touched on #52384

nikomatsakis (Jul 17 2018 at 12:12, on Zulip):

so it seems like the major remaining things are:

pnkfelix (Jul 17 2018 at 12:12, on Zulip):

though I don't know if @nikomatsakis (who I see as the obvious person to attack it) have the cycles to address #52384.

nikomatsakis (Jul 17 2018 at 12:12, on Zulip):

I plan to write up mentoring instructions

nikomatsakis (Jul 17 2018 at 12:12, on Zulip):

I think that should be fairly easy

nikomatsakis (Jul 17 2018 at 12:12, on Zulip):

actually I may just fix it

nikomatsakis (Jul 17 2018 at 12:12, on Zulip):

might be just a line or two

nikomatsakis (Jul 17 2018 at 12:12, on Zulip):

it actually intersects with the other bug I am working on

nikomatsakis (Jul 17 2018 at 12:13, on Zulip):

that is, #48071

pnkfelix (Jul 17 2018 at 12:13, on Zulip):

okay. and you think you and @David Wood should be able to address #51188 ?

nikomatsakis (Jul 17 2018 at 12:13, on Zulip):

well I think we need to identify some more concrete next steps

nikomatsakis (Jul 17 2018 at 12:13, on Zulip):

I was thinking about it last night and I have a few

nikomatsakis (Jul 17 2018 at 12:14, on Zulip):

e.g., right now the stuff that tries to label the regions at play doesn't do a great job on closure upvars

nikomatsakis (Jul 17 2018 at 12:14, on Zulip):

and there is one other case that could be improved

nikomatsakis (Jul 17 2018 at 12:14, on Zulip):

those are the obvious, relatively easy tasks

nikomatsakis (Jul 17 2018 at 12:14, on Zulip):

somewhat more complex is then working on and fine-tuning how we present and classify the causes themselves

nikomatsakis (Jul 17 2018 at 12:14, on Zulip):

which remains relatively crude

nikomatsakis (Jul 17 2018 at 12:14, on Zulip):

I'll try to open up those first two issues after we are done talking

nikomatsakis (Jul 17 2018 at 12:15, on Zulip):

not sure @pnkfelix if you were following the progress we made there

pnkfelix (Jul 17 2018 at 12:15, on Zulip):

I skimmed the backlog a little

nikomatsakis (Jul 17 2018 at 12:15, on Zulip):

that said, there is also another layer of stuff we might do:

nikomatsakis (Jul 17 2018 at 12:15, on Zulip):

in particular #51027 -- special messages around closures

nikomatsakis (Jul 17 2018 at 12:16, on Zulip):

so i guess those are the current areas of exploration:

nikomatsakis (Jul 17 2018 at 12:16, on Zulip):

my feeling is that tailoring for closures may be the best next step

nikomatsakis (Jul 17 2018 at 12:16, on Zulip):

because it may lead to changing the structure of the message in some cases

nikomatsakis (Jul 17 2018 at 12:16, on Zulip):

and a surprisingly large number of the cases I would want to fine-tune

nikomatsakis (Jul 17 2018 at 12:17, on Zulip):

wind up related to closures

nikomatsakis (Jul 17 2018 at 12:17, on Zulip):

at least when I went poking about

nikomatsakis (Jul 17 2018 at 12:17, on Zulip):

I don't remember how I wanted to tailor things, I think I had a few notes in #51027

pnkfelix (Jul 17 2018 at 12:17, on Zulip):

there's definitely notes there

nikomatsakis (Jul 17 2018 at 12:18, on Zulip):

this is the current output

nikomatsakis (Jul 17 2018 at 12:18, on Zulip):
error: unsatisfied lifetime constraints
  --> $DIR/issue-45983.rs:17:18
   |
LL |     let x = None;
   |         - lifetime `'2` appears in the type of `x`
LL |     give_any(|y| x = Some(y));
   |               -  ^^^^^^^^^^^ free region requires that `'1` must outlive `'2`
   |               |
| lifetime `'1` appears in this argument
nikomatsakis (Jul 17 2018 at 12:18, on Zulip):

for https://github.com/rust-lang/rust/blob/master/src/test/ui/borrowck/issue-45983.nll.stderr

nikomatsakis (Jul 17 2018 at 12:18, on Zulip):

not nearly as terrible as before

pnkfelix (Jul 17 2018 at 12:18, on Zulip):

right

pnkfelix (Jul 17 2018 at 12:18, on Zulip):

I've been musing about whether we could punt this to RC

nikomatsakis (Jul 17 2018 at 12:18, on Zulip):

one of the things (closure upvars) would probably improve the "lifetime '2 appears in the type of x"

pnkfelix (Jul 17 2018 at 12:18, on Zulip):

but it'd be nice to fix

pnkfelix (Jul 17 2018 at 12:18, on Zulip):

because otherwise we'll get lots of complaints for something we know is wrong

nikomatsakis (Jul 17 2018 at 12:18, on Zulip):

but I think that the worst part of this is the "free region requires that '1 must outlive '2"

pnkfelix (Jul 17 2018 at 12:18, on Zulip):

which means its noise

nikomatsakis (Jul 17 2018 at 12:18, on Zulip):

which is pretty goofy

nikomatsakis (Jul 17 2018 at 12:18, on Zulip):

that's the part I wanted to tailor

nikomatsakis (Jul 17 2018 at 12:19, on Zulip):

it doesn't even really make sense

nikomatsakis (Jul 17 2018 at 12:19, on Zulip):

still, overall the state of the EP2 seems...kinda good, maybe we should glance over the RC issues

DPC (Jul 17 2018 at 12:20, on Zulip):

@nikomatsakis maybe for that error we can add a line on how to solve it?

nikomatsakis (Jul 17 2018 at 12:20, on Zulip):

I'm gonna nominate the #51027 for further progress

nikomatsakis (Jul 17 2018 at 12:21, on Zulip):

@DPC yeah; I think the first thing is we have to identify the situation. Actually fixing that particular problem is non-trivial and I don't how we could suggest a sol'n. Mostly i'd want to convey that y is borrowed data valid only during the closure, so it cannot escape into x

nikomatsakis (Jul 17 2018 at 12:26, on Zulip):

ok so -- should we take a break for now? I kind of want to review my to do list and plan the rest of my day...

nikomatsakis (Jul 17 2018 at 12:26, on Zulip):

though I think we've not quite got as many nominated issues and things as I would like

pnkfelix (Jul 17 2018 at 12:26, on Zulip):

We can take a break. are you planning on being at the meeting tonight?

nikomatsakis (Jul 17 2018 at 12:26, on Zulip):

looking over njn's notes in https://github.com/rust-lang/rust/issues/52028 however gave me some good ideas, so I might try to open u an issue there

nikomatsakis (Jul 17 2018 at 12:26, on Zulip):

I was planning on it, yes. The time is quite late here but that's ok

pnkfelix (Jul 17 2018 at 12:27, on Zulip):

okay, i wasn't sure if you'd be busy with family or just, you know, enjoying the locale

nikomatsakis (Jul 17 2018 at 12:29, on Zulip):

@pnkfelix did you see my notes on my availability here btw?

pnkfelix (Jul 17 2018 at 12:30, on Zulip):

I did. Ah but I guess I didn't read the opening paragraph carefully.

pnkfelix (Jul 24 2018 at 13:07, on Zulip):

@nikomatsakis okay shall we do some status review / discussion?

nikomatsakis (Jul 24 2018 at 13:11, on Zulip):

ok gimme a minute

nikomatsakis (Jul 24 2018 at 13:17, on Zulip):

ok @pnkfelix — Emily and I were just realizing that our hotel in athens is actually right next to the area affected by these wildfires...

nikomatsakis (Jul 24 2018 at 13:17, on Zulip):

so I got a bit distracted :)

nikomatsakis (Jul 24 2018 at 13:17, on Zulip):

back now

pnkfelix (Jul 24 2018 at 13:20, on Zulip):

okay

pnkfelix (Jul 24 2018 at 13:20, on Zulip):

So just to update you on my current situation

pnkfelix (Jul 24 2018 at 13:20, on Zulip):

something has ... come back to bite me in the ass, slightly

pnkfelix (Jul 24 2018 at 13:21, on Zulip):

To accommodate the change in semantics for match guards

nikomatsakis (Jul 24 2018 at 13:21, on Zulip):

what's that?

pnkfelix (Jul 24 2018 at 13:21, on Zulip):

I changed the MIR codegen depending on whether you are in NLL or not

pnkfelix (Jul 24 2018 at 13:23, on Zulip):

and the MIR-borrowck'er is double checking certain things, like that you don't try to mutably borrow something via that &*tmp that is created by the match guard

nikomatsakis (Jul 24 2018 at 13:23, on Zulip):

ok

pnkfelix (Jul 24 2018 at 13:23, on Zulip):

now, its relatively easy to disable the check in that case, and say "let this through if we're in borrowck=migrate"

pnkfelix (Jul 24 2018 at 13:23, on Zulip):

the problem

pnkfelix (Jul 24 2018 at 13:23, on Zulip):

is that the MIR being generated here

pnkfelix (Jul 24 2018 at 13:23, on Zulip):

then subsequently causes an ICE downstream

pnkfelix (Jul 24 2018 at 13:24, on Zulip):

namely, in elaborate-drops

pnkfelix (Jul 24 2018 at 13:24, on Zulip):

where it runs the gather_moves pass

pnkfelix (Jul 24 2018 at 13:24, on Zulip):

and that is returning an Err

pnkfelix (Jul 24 2018 at 13:24, on Zulip):

because the generated code has a Move out of a borrowed thing

pnkfelix (Jul 24 2018 at 13:24, on Zulip):

when I say "generated here"

pnkfelix (Jul 24 2018 at 13:24, on Zulip):

I mean in the code from #27282

pnkfelix (Jul 24 2018 at 13:25, on Zulip):

which is what I am currently using as my reference case for migration

pnkfelix (Jul 24 2018 at 13:25, on Zulip):

so the question for me now is

pnkfelix (Jul 24 2018 at 13:25, on Zulip):

what's the "right" way to handle this

nikomatsakis (Jul 24 2018 at 13:25, on Zulip):

oh I see

pnkfelix (Jul 24 2018 at 13:25, on Zulip):

the "ideal" thing would be to have an oracle predict that MIR-borrowck is going to fail

pnkfelix (Jul 24 2018 at 13:25, on Zulip):

and then use the old MIR codegen

nikomatsakis (Jul 24 2018 at 13:25, on Zulip):

so this is code that should not have borrow-checked but did

pnkfelix (Jul 24 2018 at 13:25, on Zulip):

just for backwards compatibility

nikomatsakis (Jul 24 2018 at 13:26, on Zulip):

egads

nikomatsakis (Jul 24 2018 at 13:26, on Zulip):

quite a pickle :)

pnkfelix (Jul 24 2018 at 13:26, on Zulip):

yeah

pnkfelix (Jul 24 2018 at 13:26, on Zulip):

like, another solution would be to hack things up

pnkfelix (Jul 24 2018 at 13:26, on Zulip):

so that elaborate-drops accepts this code in some way

pnkfelix (Jul 24 2018 at 13:26, on Zulip):

but I worry about that injecting new bugs

pnkfelix (Jul 24 2018 at 13:27, on Zulip):

another option would be to accept new compiler errors in cases like this

pnkfelix (Jul 24 2018 at 13:27, on Zulip):

not ICE's (hopefully)

pnkfelix (Jul 24 2018 at 13:27, on Zulip):

but also not ensuring true backwards compatibility in all cases

pnkfelix (Jul 24 2018 at 13:27, on Zulip):

since this code is unsound anyway

nikomatsakis (Jul 24 2018 at 13:27, on Zulip):

hmm

nikomatsakis (Jul 24 2018 at 13:27, on Zulip):

so we could perhaps identify certain kinds of errors

nikomatsakis (Jul 24 2018 at 13:27, on Zulip):

e.g. moves from non-movable locations

nikomatsakis (Jul 24 2018 at 13:28, on Zulip):

and make those ALWAYS hard errors

nikomatsakis (Jul 24 2018 at 13:28, on Zulip):

this seems like a corner case, i'd be surpised if it cropped up in practice

pnkfelix (Jul 24 2018 at 13:28, on Zulip):

right

pnkfelix (Jul 24 2018 at 13:28, on Zulip):

especially since

pnkfelix (Jul 24 2018 at 13:28, on Zulip):

you have to be sidestepping the existing checks on mutation in guards

pnkfelix (Jul 24 2018 at 13:28, on Zulip):

(via a closure, like how #27282 does)

pnkfelix (Jul 24 2018 at 13:29, on Zulip):

of course, that will then mean that I'll have to find a new way to test -Z borrowck-migrate. :)

pnkfelix (Jul 24 2018 at 13:29, on Zulip):

luckily @lqd generated a list here

nikomatsakis (Jul 24 2018 at 13:30, on Zulip):

I think that's kind of reasonable

nikomatsakis (Jul 24 2018 at 13:30, on Zulip):

to make this a hard error

pnkfelix (Jul 24 2018 at 13:30, on Zulip):

okay lets try that

pnkfelix (Jul 24 2018 at 13:30, on Zulip):

after all, its not really reasonable to try to assign a semantics to the example from #27282

nikomatsakis (Jul 24 2018 at 13:31, on Zulip):

yeah

pnkfelix (Jul 24 2018 at 13:33, on Zulip):

okay so now that we've covered that

pnkfelix (Jul 24 2018 at 13:33, on Zulip):

lets triage

pnkfelix (Jul 24 2018 at 13:34, on Zulip):

I guess we'll start with untriaged issues

nikomatsakis (Jul 24 2018 at 13:34, on Zulip):

ok

pnkfelix (Jul 24 2018 at 13:35, on Zulip):

weird, suprised that html5ever (#52028) doesn't have a triage label?

pnkfelix (Jul 24 2018 at 13:35, on Zulip):

I guess it does have a milestone

nikomatsakis (Jul 24 2018 at 13:35, on Zulip):

I'm surprised by some of these

nikomatsakis (Jul 24 2018 at 13:35, on Zulip):

oh, ok

pnkfelix (Jul 24 2018 at 13:35, on Zulip):

I just added NLL-performant to it

pnkfelix (Jul 24 2018 at 13:36, on Zulip):

all of these are actually on a milestone (except for overall tracking issue #43234 )

pnkfelix (Jul 24 2018 at 13:36, on Zulip):

but it would still be good for them to have categorization labels

nikomatsakis (Jul 24 2018 at 13:36, on Zulip):

yes

pnkfelix (Jul 24 2018 at 13:37, on Zulip):

so lets see, #51915 is the "common regression with 2 phase borrows"

pnkfelix (Jul 24 2018 at 13:37, on Zulip):

that's NLL-complete, right?

pnkfelix (Jul 24 2018 at 13:37, on Zulip):

depending on one's POV

nikomatsakis (Jul 24 2018 at 13:37, on Zulip):

yep

nikomatsakis (Jul 24 2018 at 13:37, on Zulip):

right, depending on your POV

pnkfelix (Jul 24 2018 at 13:37, on Zulip):

likewise #51354 is nll-complete

nikomatsakis (Jul 24 2018 at 13:38, on Zulip):

yes

pnkfelix (Jul 24 2018 at 13:38, on Zulip):

I think I'd put #49579 in nll-deferred

pnkfelix (Jul 24 2018 at 13:38, on Zulip):

that or just make the test for it myself today. :)

nikomatsakis (Jul 24 2018 at 13:38, on Zulip):

sounds fine

pnkfelix (Jul 24 2018 at 13:39, on Zulip):

eh I'll make it nll-complete

pnkfelix (Jul 24 2018 at 13:39, on Zulip):

since the original bug was a completeness issue

pnkfelix (Jul 24 2018 at 13:39, on Zulip):

#46983 is nll-diagnostics

pnkfelix (Jul 24 2018 at 13:40, on Zulip):

the last three ... hmm.

nikomatsakis (Jul 24 2018 at 13:40, on Zulip):

I think that https://github.com/rust-lang/rust/issues/46983 is arguably just "fixed"

nikomatsakis (Jul 24 2018 at 13:40, on Zulip):

e.g. dyn-trait-underscore is (I think) more legibile than before

pnkfelix (Jul 24 2018 at 13:40, on Zulip):

yes you re right

nikomatsakis (Jul 24 2018 at 13:41, on Zulip):

as for the last 3...

pnkfelix (Jul 24 2018 at 13:42, on Zulip):

well obviously the NLL tracking issue can stay as is

pnkfelix (Jul 24 2018 at 13:42, on Zulip):

so really its just #46901 and #46702 that need some kind of more specific label

nikomatsakis (Jul 24 2018 at 13:43, on Zulip):

the "needs a specification"... I don't know, maybe NLL-deferred?

nikomatsakis (Jul 24 2018 at 13:43, on Zulip):

NLL-complete :)

nikomatsakis (Jul 24 2018 at 13:43, on Zulip):

no pun intended :)

nikomatsakis (Jul 24 2018 at 13:43, on Zulip):

well actually pun intended

pnkfelix (Jul 24 2018 at 13:43, on Zulip):

yeah lets tag #46901 with NLL-deferred

nikomatsakis (Jul 24 2018 at 13:43, on Zulip):

I think https://github.com/rust-lang/rust/issues/46702 is arguably just .. close?

nikomatsakis (Jul 24 2018 at 13:43, on Zulip):

I barely even remember what it means anymore

nikomatsakis (Jul 24 2018 at 13:44, on Zulip):

I guess I can look

pnkfelix (Jul 24 2018 at 13:44, on Zulip):

the note is still there

pnkfelix (Jul 24 2018 at 13:44, on Zulip):

in the code

pnkfelix (Jul 24 2018 at 13:45, on Zulip):

i have no idea what to do about this

pnkfelix (Jul 24 2018 at 13:45, on Zulip):

there is a presumably related fixme a few lines down

pnkfelix (Jul 24 2018 at 13:46, on Zulip):

namely this

pnkfelix (Jul 24 2018 at 13:47, on Zulip):

does this end up being related to the issue about respecting lifetimes written by the user?

nikomatsakis (Jul 24 2018 at 13:47, on Zulip):

I don't think so...

pnkfelix (Jul 24 2018 at 13:47, on Zulip):

or can the lifetimes in the example from the FIXME arise just from inference

nikomatsakis (Jul 24 2018 at 13:47, on Zulip):

iirc this is kind of a question about miri integration interacting with MIR and NLL

nikomatsakis (Jul 24 2018 at 13:47, on Zulip):

things may be a bit more complete now than they were before

nikomatsakis (Jul 24 2018 at 13:48, on Zulip):

I guess I would say NLL-deferred but leave the issue open

pnkfelix (Jul 24 2018 at 13:48, on Zulip):

but we're still pulling things off the value.ty instead of the value.val

pnkfelix (Jul 24 2018 at 13:48, on Zulip):

so it ... can't be finished ... right?

pnkfelix (Jul 24 2018 at 13:48, on Zulip):

okay I'm happy to tag with NLL-deferred if you are cool with that

nikomatsakis (Jul 24 2018 at 13:49, on Zulip):

ok

nikomatsakis (Jul 24 2018 at 13:49, on Zulip):

shall we review the EP2 stuff?

nikomatsakis (Jul 24 2018 at 13:49, on Zulip):

I think it looked like we were doing pretty well

pnkfelix (Jul 24 2018 at 13:50, on Zulip):

so, is this a good list to look at?

nikomatsakis (Jul 24 2018 at 13:51, on Zulip):

seems good

pnkfelix (Jul 24 2018 at 13:51, on Zulip):

okay. first up #52384

pnkfelix (Jul 24 2018 at 13:51, on Zulip):

you still working on this?

nikomatsakis (Jul 24 2018 at 13:51, on Zulip):

yeah, so, I haven't done anything on it but I still think it's an easy thing to add to my branch once I finish up the next few problems

pnkfelix (Jul 24 2018 at 13:52, on Zulip):

or should I try to take it on given that I'm hoping to wrap up Zborrowck=migrate ?

pnkfelix (Jul 24 2018 at 13:52, on Zulip):

okay I'll leave it with you for now

nikomatsakis (Jul 24 2018 at 13:52, on Zulip):

I could add some notes on how to fix it for the time being...

nikomatsakis (Jul 24 2018 at 13:52, on Zulip):

anyway, let's do the nxt

nikomatsakis (Jul 24 2018 at 13:52, on Zulip):

we can leave it on a "maybe" tag

pnkfelix (Jul 24 2018 at 13:52, on Zulip):

(lets also keep in mind that we know that @Santiago Pastorino was asking for tasks, right?)

pnkfelix (Jul 24 2018 at 13:52, on Zulip):

(at least in the back of our minds)

pnkfelix (Jul 24 2018 at 13:53, on Zulip):

okay, then next up: #52113

nikomatsakis (Jul 24 2018 at 13:53, on Zulip):

@mikhail-m1 is doing well

nikomatsakis (Jul 24 2018 at 13:54, on Zulip):

I have to get back to them which I plan to do today

pnkfelix (Jul 24 2018 at 13:54, on Zulip):

okay. is there a zulip topic for this one?

nikomatsakis (Jul 24 2018 at 13:54, on Zulip):

yes, issue-51351

nikomatsakis (Jul 24 2018 at 13:54, on Zulip):

oh wait

nikomatsakis (Jul 24 2018 at 13:54, on Zulip):

I might be confused :)

nikomatsakis (Jul 24 2018 at 13:54, on Zulip):

er, yes

nikomatsakis (Jul 24 2018 at 13:54, on Zulip):

they are related

pnkfelix (Jul 24 2018 at 13:55, on Zulip):

okay are they dupes?

nikomatsakis (Jul 24 2018 at 13:55, on Zulip):

not quite

pnkfelix (Jul 24 2018 at 13:55, on Zulip):

ah I see

nikomatsakis (Jul 24 2018 at 13:55, on Zulip):

but one builds on the other

pnkfelix (Jul 24 2018 at 13:55, on Zulip):

#52113 says its a spin off

pnkfelix (Jul 24 2018 at 13:55, on Zulip):

okay

nikomatsakis (Jul 24 2018 at 13:55, on Zulip):

https://github.com/rust-lang/rust/issues/52057 would be a good one for you to pick up:)

pnkfelix (Jul 24 2018 at 13:55, on Zulip):

okay lets assign that to me

nikomatsakis (Jul 24 2018 at 13:56, on Zulip):

it needs some investigation still and I haven't had time to do it

nikomatsakis (Jul 24 2018 at 13:56, on Zulip):

I might try to do a bit today

pnkfelix (Jul 24 2018 at 13:56, on Zulip):

okay you can feel free to look into it if time permits

nikomatsakis (Jul 24 2018 at 13:56, on Zulip):

but I won't be able to fix probably anyhow

pnkfelix (Jul 24 2018 at 13:56, on Zulip):

but I'll try to attack it after logan goes to bed

pnkfelix (Jul 24 2018 at 13:56, on Zulip):

(i'll be picking him up in a little bit as part of birthday celebration)

nikomatsakis (Jul 24 2018 at 13:57, on Zulip):

https://github.com/rust-lang/rust/issues/51351 we already covered

pnkfelix (Jul 24 2018 at 13:57, on Zulip):

right

pnkfelix (Jul 24 2018 at 13:57, on Zulip):

how is #51188 coming?

nikomatsakis (Jul 24 2018 at 13:57, on Zulip):

pretty well, @David Wood has been improving the closure cases

nikomatsakis (Jul 24 2018 at 13:58, on Zulip):

that's more of a "meta issue" I guess

nikomatsakis (Jul 24 2018 at 13:58, on Zulip):

it'd be good to identify some specific benchmark of "good enough"

pnkfelix (Jul 24 2018 at 13:58, on Zulip):

so

nikomatsakis (Jul 24 2018 at 13:58, on Zulip):

I think once @David Wood's next PR lands we should try to skim over the .nll.stderrs and look for horrible cases I guess

pnkfelix (Jul 24 2018 at 13:58, on Zulip):

my question

pnkfelix (Jul 24 2018 at 13:58, on Zulip):

is this an EP2 blocker for NLL?

pnkfelix (Jul 24 2018 at 13:58, on Zulip):

it probably isn't, right?

nikomatsakis (Jul 24 2018 at 13:58, on Zulip):

I think it was for sure, but we've made a lot of progress

pnkfelix (Jul 24 2018 at 13:58, on Zulip):

i see

nikomatsakis (Jul 24 2018 at 13:59, on Zulip):

I included it because errors like "free region ` does not outlive '_#18r" were terrible

pnkfelix (Jul 24 2018 at 13:59, on Zulip):

so while we might not close it, we might assert that its gotten good enough that we can move the milestone

nikomatsakis (Jul 24 2018 at 13:59, on Zulip):

yeah, I think that's what I meant by doing a review

pnkfelix (Jul 24 2018 at 13:59, on Zulip):

oh yes, https://github.com/rust-lang/rust/blob/master/src/test/ui/in-band-lifetimes/impl/dyn-trait.nll.stderr

nikomatsakis (Jul 24 2018 at 13:59, on Zulip):

i.e., I'd like to close it in favor of more specific changes

pnkfelix (Jul 24 2018 at 13:59, on Zulip):

that is much better, right?

nikomatsakis (Jul 24 2018 at 13:59, on Zulip):

that we can prioritize separately

nikomatsakis (Jul 24 2018 at 13:59, on Zulip):

definitely

pnkfelix (Jul 24 2018 at 14:00, on Zulip):

hmm okay

pnkfelix (Jul 24 2018 at 14:00, on Zulip):

so we might need to do another round of review of the deltas between .stderr and .nll.stderr ?

nikomatsakis (Jul 24 2018 at 14:00, on Zulip):

that's what I'm thinking

pnkfelix (Jul 24 2018 at 14:00, on Zulip):

rather than try to make sense of the current set of issues

pnkfelix (Jul 24 2018 at 14:00, on Zulip):

okay

davidtwco (Jul 24 2018 at 14:00, on Zulip):

(that case you linked there needs improvement because it talks about closures when there are none)

pnkfelix (Jul 24 2018 at 14:00, on Zulip):

should we .... leave this open until that review happens?

nikomatsakis (Jul 24 2018 at 14:01, on Zulip):

we could close and make a new issue for the review

pnkfelix (Jul 24 2018 at 14:01, on Zulip):

(that case you linked there needs improvement because it talks about closures when there are none)

ha ha ha

pnkfelix (Jul 24 2018 at 14:01, on Zulip):

"objects are just a poor man's closure!"

pnkfelix (Jul 24 2018 at 14:01, on Zulip):

we could close and make a new issue for the review

lets do this

nikomatsakis (Jul 24 2018 at 14:02, on Zulip):

what is story with diagnostic order (#51167)

pnkfelix (Jul 24 2018 at 14:03, on Zulip):

Filed #52663

pnkfelix (Jul 24 2018 at 14:03, on Zulip):

what is story with diagnostic order (#51167)

I want to take a shot at it now that buffered errors landed

pnkfelix (Jul 24 2018 at 14:03, on Zulip):

but borrowck=migrate is higher priority

pnkfelix (Jul 24 2018 at 14:04, on Zulip):

(and I had that pickle of an issue to resolve in that)

pnkfelix (Jul 24 2018 at 14:04, on Zulip):

however, I don't see a reason that I have to do #51167

pnkfelix (Jul 24 2018 at 14:04, on Zulip):

it could well be something that someone else could take on

pnkfelix (Jul 24 2018 at 14:04, on Zulip):

it should be very self-contained in terms of the rustc changes. the hard part is all the changes to error output.

pnkfelix (Jul 24 2018 at 14:05, on Zulip):

and also, I wanted your input as to whether #51167 is for EP2 or not

pnkfelix (Jul 24 2018 at 14:08, on Zulip):

Anyway #51167 is assigned to me and I think that is fine for now

pnkfelix (Jul 24 2018 at 14:08, on Zulip):

maybe we'll revise that at the meeting tonight

nikomatsakis (Jul 24 2018 at 14:09, on Zulip):

#51167 doesn't seem EP2 per se

pnkfelix (Jul 24 2018 at 14:09, on Zulip):

@nikomatsakis can we close #49824 now?

nikomatsakis (Jul 24 2018 at 14:09, on Zulip):

it's not visible to end-users very much

pnkfelix (Jul 24 2018 at 14:10, on Zulip):

yeah lets move it to RC

nikomatsakis (Jul 24 2018 at 14:10, on Zulip):

I believe that https://github.com/rust-lang/rust/issues/49824 was basically in the "needs test" state

nikomatsakis (Jul 24 2018 at 14:10, on Zulip):

I planned to add a test but haven't

nikomatsakis (Jul 24 2018 at 14:10, on Zulip):

or, put another way, we could adjust the tests we have

nikomatsakis (Jul 24 2018 at 14:10, on Zulip):

it's not really EP2

pnkfelix (Jul 24 2018 at 14:11, on Zulip):

lets tag as E-needstest

nikomatsakis (Jul 24 2018 at 14:11, on Zulip):

I think I included it just because it'd be nice to close it and be done with it

pnkfelix (Jul 24 2018 at 14:11, on Zulip):

well we can either tag as E-needstest and adjust the milestone, or we can close it

pnkfelix (Jul 24 2018 at 14:11, on Zulip):

which do you prefer?

pnkfelix (Jul 24 2018 at 14:12, on Zulip):

I'm going to tag it and adjust.

pnkfelix (Jul 24 2018 at 14:12, on Zulip):

if you want to close it feel free. :)

pnkfelix (Jul 24 2018 at 14:13, on Zulip):

oh is #49250 fixed by your universe change?

pnkfelix (Jul 24 2018 at 14:13, on Zulip):

shoot I need to review that asap

pnkfelix (Jul 24 2018 at 14:14, on Zulip):

maybe I'll get chance before mtg tonight if logan goes to sleep quickly enough

nikomatsakis (Jul 24 2018 at 14:14, on Zulip):

regarding that review, I'm still hacking on that a bit

nikomatsakis (Jul 24 2018 at 14:14, on Zulip):

but yes it fixes #49250

pnkfelix (Jul 24 2018 at 14:15, on Zulip):

great

pnkfelix (Jul 24 2018 at 14:15, on Zulip):

so that will address #49250 and #48071

pnkfelix (Jul 24 2018 at 14:15, on Zulip):

and I'm working on #46908

nikomatsakis (Jul 24 2018 at 14:15, on Zulip):

er, yes

pnkfelix (Jul 24 2018 at 14:15, on Zulip):

should hopefully have that done today

pnkfelix (Jul 24 2018 at 14:15, on Zulip):

fantastic, I'm feeling pretty good about things then.

nikomatsakis (Jul 24 2018 at 14:16, on Zulip):

one thing I'm wondering is if we want to look a bit at the next milestone

nikomatsakis (Jul 24 2018 at 14:16, on Zulip):

e.g. for folks like @Santiago Pastorino looking for work =)

pnkfelix (Jul 24 2018 at 14:16, on Zulip):

that would be good

pnkfelix (Jul 24 2018 at 14:16, on Zulip):

I'm picking up Logan in about 10min

pnkfelix (Jul 24 2018 at 14:16, on Zulip):

but we should be able to skim it in that time

nikomatsakis (Jul 24 2018 at 14:18, on Zulip):

ok

pnkfelix (Jul 24 2018 at 14:18, on Zulip):

so here's that list: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AWG-compiler-nll+milestone%3A%22Rust+2018+Release+Candidate%22

pnkfelix (Jul 24 2018 at 14:19, on Zulip):

23 issues, not too bad

nikomatsakis (Jul 24 2018 at 14:19, on Zulip):

where is the issue regarding user-given annotations scheduled...?

pnkfelix (Jul 24 2018 at 14:19, on Zulip):

except I'm on vacation for much of august. (I suspect I will try to get some work done during Logan downtime)

nikomatsakis (Jul 24 2018 at 14:19, on Zulip):

I kind of think that needs to be tackled once and for all

pnkfelix (Jul 24 2018 at 14:19, on Zulip):

yes lets see

nikomatsakis (Jul 24 2018 at 14:19, on Zulip):

not sure if it is RC exactly but it feels like RC

pnkfelix (Jul 24 2018 at 14:20, on Zulip):

oh dear https://github.com/rust-lang/rust/issues/47184

pnkfelix (Jul 24 2018 at 14:20, on Zulip):

it is on an interesting milestone

pnkfelix (Jul 24 2018 at 14:20, on Zulip):

one I think we already passed and thus we ignoring it ?

pnkfelix (Jul 24 2018 at 14:20, on Zulip):

https://github.com/rust-lang/rust/milestone/45

nikomatsakis (Jul 24 2018 at 14:20, on Zulip):

oh..yeah...sigh

nikomatsakis (Jul 24 2018 at 14:20, on Zulip):

I thought I removed all of those

pnkfelix (Jul 24 2018 at 14:20, on Zulip):

okay

nikomatsakis (Jul 24 2018 at 14:21, on Zulip):

but looks like I missed some

pnkfelix (Jul 24 2018 at 14:22, on Zulip):

okay so now #47184 is on the RC milestone where it belongs

nikomatsakis (Jul 24 2018 at 14:22, on Zulip):

I just removed everything from milestones

nikomatsakis (Jul 24 2018 at 14:22, on Zulip):

yeah I put it on there

nikomatsakis (Jul 24 2018 at 14:22, on Zulip):

the others did not look so imp't, thankfully

nikomatsakis (Jul 24 2018 at 14:23, on Zulip):

https://github.com/rust-lang/rust/issues/46413 .. is .. I think .. fixed?

pnkfelix (Jul 24 2018 at 14:23, on Zulip):

wait what list are you looking at now?

nikomatsakis (Jul 24 2018 at 14:24, on Zulip):

oh sorry, I was looking at "things that used to be on deprecated milestones". That list is:

nikomatsakis (Jul 24 2018 at 14:24, on Zulip):

but I think I was wrong about #46413 being fixed

nikomatsakis (Jul 24 2018 at 14:25, on Zulip):

that said, it's not a case where NLL is wrong

nikomatsakis (Jul 24 2018 at 14:25, on Zulip):

it's the matter of unexpected temporary lifetimes

pnkfelix (Jul 24 2018 at 14:26, on Zulip):

I don't think I had seen #46413 before

pnkfelix (Jul 24 2018 at 14:26, on Zulip):

I do wonder if its #22321

nikomatsakis (Jul 24 2018 at 14:27, on Zulip):

I just edited #46413 to summarize the situation

nikomatsakis (Jul 24 2018 at 14:28, on Zulip):

sounds related to #22321 potentially

nikomatsakis (Jul 24 2018 at 14:28, on Zulip):

I feel like we should mark it NLL-deferred for now

nikomatsakis (Jul 24 2018 at 14:28, on Zulip):

it's not really NLL

nikomatsakis (Jul 24 2018 at 14:28, on Zulip):

https://github.com/rust-lang/rust/issues/48697 (next in the list) no longer ICEs

nikomatsakis (Jul 24 2018 at 14:28, on Zulip):

it was marked as needs-test

nikomatsakis (Jul 24 2018 at 14:29, on Zulip):

the basic fix was not running AST borrowck

nikomatsakis (Jul 24 2018 at 14:29, on Zulip):

in cases where MIR borrowck is happy

pnkfelix (Jul 24 2018 at 14:29, on Zulip):

lets put #48697 on RC milestone then

nikomatsakis (Jul 24 2018 at 14:30, on Zulip):

sounds good

pnkfelix (Jul 24 2018 at 14:30, on Zulip):

#48643 is a case that has no milestone

pnkfelix (Jul 24 2018 at 14:31, on Zulip):

here is issue search I am curently using

pnkfelix (Jul 24 2018 at 14:31, on Zulip):

eek I have to go

nikomatsakis (Jul 24 2018 at 14:32, on Zulip):

ok

nikomatsakis (Jul 24 2018 at 14:32, on Zulip):

ttyl

pnkfelix (Jul 24 2018 at 14:32, on Zulip):

it seems like #48643 is still not meeting the bar you set for it

pnkfelix (Jul 24 2018 at 14:33, on Zulip):

although I'm not sure why you expect the function name to be highlighted

pnkfelix (Jul 24 2018 at 14:33, on Zulip):

it is currently trying to underline the span of the call, including the arguments

pnkfelix (Jul 24 2018 at 14:34, on Zulip):

so would you be satisfied if it just including the text "during the call" in the diagnostic?

pnkfelix (Jul 24 2018 at 14:34, on Zulip):

well that is indeed what you asked for: https://github.com/rust-lang/rust/pull/48592#discussion_r171263445

pnkfelix (Jul 24 2018 at 14:35, on Zulip):

I guess I can understand why you'd just underline the function itself

pnkfelix (Jul 24 2018 at 14:35, on Zulip):

okay really gotta go now

pnkfelix (Jul 31 2018 at 14:10, on Zulip):

@nikomatsakis not sure when you'll be available to chat today. I'll need to leave in about 1.5 hours or so to pick up Logan

pnkfelix (Jul 31 2018 at 15:41, on Zulip):

(well maybe we'll try to catch up before the mtg. but if you don't have time I totally understand. And also, i might not have much time based on how difficult Logan has been recently w.r.t. bedtime)

nikomatsakis (Aug 06 2018 at 12:10, on Zulip):

@pnkfelix around today?

pnkfelix (Aug 06 2018 at 12:15, on Zulip):

@nikomatsakis not really; the Internet at our Airbnb is pretty bad

Last update: Nov 21 2019 at 23:45UTC