Stream: t-compiler/wg-nll

Topic: weekly meeting May 22


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

sorry for being late

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

no worries :)

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

:wave: I was just about to post a message

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

I'll brb

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

yeah I made the mistake of doing an impromptu Rust tutorial at the Rust Paris meetup

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

So lets see, here's a link to the triage page: https://paper.dropbox.com/doc/Non-lexical-lifetimes-NLL-Triage-Em2cJrvxQMMFWLE7lE5Be

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

I saw that @lqd pointed out above that the ongoing diagnostics work will have an unknown impact on Polonius. We should indeed chat about this.

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

shall we ping @everyone =) — not sure who is around

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

oh yes that seems like a good trick. :)

qmx (May 22 2018 at 19:35, on Zulip):

:wave:

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

I also wrote a general overview section in the dropbox paper that sketched out the next steps as I saw them (I think @pnkfelix this accords with what you and I were saying this morning)

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

yes I was just reading over that, saying "I don't remember this from last week"

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

and then realizing that it wasn't from last week. :)

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

:)

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

all the stuff Niko wrote was very useful, you guys just let me know where I can help

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

but the plan makes a lot of sense

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

I guess I was a bit verbose in that section

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

so I'll admit that I have had trouble following all of the polonius activity

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

I guess I was a bit verbose in that section

in the general overview section?

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

so I'll admit that I have had trouble following all of the polonius activity

I had more trouble than you for sure :P

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

can someone summarize 1. how we are estimating its performance, and 2. what the current estimate of "best" performance is?

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

that's why I think Niko's summary was very helpful

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

you could break it down more like this:

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

can someone summarize 1. how we are estimating its performance, and 2. what the current estimate of "best" performance is?

we have been estimating performance by measuring on the clap data set

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

at present, the "best" performance is about 800ms

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

versus a starting point of 160s :)

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

okay, I wasn;'t sure if we had incorporated other data sets

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

that is using @Santiago Pastorino's "location insensitive" analysis as a pre-filter

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

in the case of clap, it's precise enough

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

if we don't use that, it's about 5s-7s right now

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

but..there is no reason not to use the pre-filter :)

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

so basically the "raw perf" is solved at this point

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

well

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

though we have some ideas for further improvements

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

I certainly agree there's no reason not to use the pre-filter in the short term

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

imo or long term

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

because the vast majority of code in the wild will be written to satisfy the AST borrowck

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

note also that the pre-filter can help make the more precise analysis more efficient

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

because we can focus the analysis only on those loans that may cause errors

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

(though we've not tried that yet)

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

ah okay I didn't know it could be fed into the next analysis

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

because the vast majority of code in the wild will be written to satisfy the AST borrowck

and also I guess because most functions doesn't need the more precise analysis

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

that makes the calculation of "when it stops paying off" more difficult. :)

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

anyway — as I said — I think at this point perf is not the "bottleneck"

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

okay so that sounds good

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

we can always get better...

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

So my next question

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

My understanding is that we should be able to just plug in polonius and keep the existing mir-borrowck as is

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

(for the most part)

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

But I thought I saw some rumblings from niko that he might like for polonius to actually take on more of that duty, right?

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

or have I misunderstood those musings?

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

(or is it more that if that happens, it would be far future work?)

nikomatsakis (May 22 2018 at 19:47, on Zulip):

I think we could integrate roughly as is

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

The reason I ask this is, is that it impacts how we approach fixing diagnostics

nikomatsakis (May 22 2018 at 19:47, on Zulip):

I'm not exactly sure what I said before, but I think it's like this:

nikomatsakis (May 22 2018 at 19:47, on Zulip):

@Reed Koser already has a PR to emit the Invalidated facts (not yet landed, though it's r+)

nikomatsakis (May 22 2018 at 19:47, on Zulip):

this is somewhat refactored so that there is not gross code duplication

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

right now, if we integrate polonius in the simplest way, we'll wind up being less efficient than we might

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

because after polonius runs we will re-walk the MIR and look for violations

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

but polonius has already returned to us the full set of errors

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

in other words, the current code would be doing something like:

for each point P {
  check if there is an error at P
}

instead of:

for each error E {
  report the error E
}
nikomatsakis (May 22 2018 at 19:48, on Zulip):

however, changing that is non-trivial and I think something we would only do gradually

nikomatsakis (May 22 2018 at 19:49, on Zulip):

for one thing, polonius doesn't detect all errors right now

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

but its not currently the "full" set of errors, because polonius does not yet encode the other dataflows

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

oh you just said this

nikomatsakis (May 22 2018 at 19:49, on Zulip):

yeah, exactly

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

okay it is good to confirm that understanding

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

I basically just want to make sure we don't invest a bunch of effort perfecting the diagnostics for mir-borrowck

nikomatsakis (May 22 2018 at 19:51, on Zulip):

yeah, I can see that

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

and then discover that we should have instead been spending that effort figuring out how to encode those same diagnostics in a fashion that works via polonius

nikomatsakis (May 22 2018 at 19:51, on Zulip):

so... I think that the vast majority of that work is probably reusable? the red flags would be if we are inspecting the "values" of regions and using that

nikomatsakis (May 22 2018 at 19:51, on Zulip):

i.e., if we are using the regioncx basically

nikomatsakis (May 22 2018 at 19:51, on Zulip):

since that won't exist once polonius integration is complete

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

but its not currently the "full" set of errors, because polonius does not yet encode the other dataflows

sorry, hard to follow to a non native speaker but ... what does other dataflows here means?

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

example: computing which paths have been initialized or moved

let x = vec![];
drop(x);
drop(x); // <-- error, but polonius doesn't detect it
nikomatsakis (May 22 2018 at 19:52, on Zulip):

right now we compute a variety of things (about 5?), only some of which polonius encodes

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

:+1:

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

@nikomatsakis so wait: Are you saying that we should actively try to avoid using regioncx when implementing diagnostics

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

or just that we should take note of it when it happens

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

the latter I think

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

those are things we might have to redo

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

okay, good

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

I'm not sure when/if we would want to do that

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

I still feel a bit unsettled :)

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

Okay.

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

The next thing I'd like to discuss is the diagnostics list, as it currently stands

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

its not finished

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

(that is, about how we hope/plan to distribute work)

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

but there's things we can point out

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

this is the list: https://paper.dropbox.com/doc/KzroSvNgQ7lip3WQyiLTa

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

So its obvious that some of these tests are likely all going to be resolved at once, once the root cause is fixed

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

we've already got a bunch of MY EYES on there...

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

an example of this are the cases which say "we used to report a nice error about closures, we now report an indecipherable error about free regions. We need to detect free regions associated with closures."

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

Which I suspect already even has a corresponding issue on the rust repo that I just don't recall offhand

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

there's a ton of those

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

indeed

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

Something I realized today

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

is that one might erroneously think that the cases with multiple such tests

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

should take highest priority

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

due to some idea of "user impact"

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

but I don't think our set of tests

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

necessarily correspond, in terms of the distribution of the forms they use, to the cases that users encounter.

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

does that make sense? I'm just trying to warn

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

makes sense

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

i.e., we might have a lot of tests around some corner case people rarely hit

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

:+1:

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

that we should not necessarily prioritize based on the number of tests

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

yes exactly

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

(I independently wondered if there would be some way to actually attach a bias to each test to make it correspond to the number of users that hit that construct)

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

(but that seems like a research question)

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

Anyway

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

having said all that

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

I do think our users care about closures

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

and closures with free variables that have references

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

or rather, free regions in general I guess

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

yes

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

And thus, these cases should get a pretty high priority

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

that makes sense, yes

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

seems like we should file discrete rustc issues for said cases (or find them?) and try to find someone to hack on them?

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

@nikomatsakis Q: is mapping a free region back to its associated closure something that would be done via the regioncx, either today or in some future version of it?

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

let me see if I can find if an issue already exists

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

one thing I am wondering about is whether it's worth trying to e.g. tweet about it to drum up more folks, or if it's better to focus on those of us here who have more experience

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

and link it from the paper doc

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

another question: how much fuel to put into polonius vs this?

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

(I've said I do not want the paper doc to end up being the canonical database for these issues)

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

some part of me is inclined to say: we should have somebody working on polonius integration, and the rest of us on diagnostics

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

(but for now, its my canonical database...)

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

I got the impression that a lot of the volunteers at this meeting are super pumped about polonius

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

@nikomatsakis Q: is mapping a free region back to its associated closure something that would be done via the regioncx, either today or in some future version of it?

I have to look at the test, but it seems likely it will touch the regioncx

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

I don't want to squander that enthusiasm

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

I guess people can elect for themselves :)

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

Here's probably the relevant issue: https://github.com/rust-lang/rust/issues/49824

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

for closures

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

and free regions

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

one thing I am wondering about is whether it's worth trying to e.g. tweet about it to drum up more folks, or if it's better to focus on those of us here who have more experience

this is a thing I guess you guys need to decide, and I don't feel that knowledgeable yet to help someone, but if you feel that I can help somebody or work with somebody that is starting I'm open

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

but maybe that particular issue is about a more specific problem...

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

yeah, I'm not sure, I remember vaguely talking about it with @Santiago Pastorino

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

re: twitter vs not, I think it probably depends a lot on the issue

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

e.g. that closure stuff... is tricky and involves a lot of things

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

but maybe some of the "wrong span" cases, not so much?

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

these is also this issue: https://github.com/rust-lang/rust/issues/49397

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

hmm

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

I feel like that latter issue (49397) is more general

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

yes, and thus probably more appropriate, right?

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

well, I'd like to have an issue around that specific set of closure error messages

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

maybe I'll make its description link to all the relevant .nll.stderr files

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

oh interesting

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

but there are other "free region" sort of errors that we probably need to handle better

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

that don't fall into that set

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

okay true, free regions + closures is a more specific case, yes

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

(or did we consider it not so important that we target the closure case specifically?)

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

I kinda think it is, thinking on it now

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

particularly since free region errors are hard enough

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

we were downgrading instances of "closure may outlive current function"

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

(that is, we should seize "special case" opportunities where we can say something clear)

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

but the "free regions associated with closures" are all rated with MY EYES

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

okay we're 9 minutes over my preferred 30 min time limit

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

lets see if we can try to come to a conclusion here

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

I agree we need to figure out how to prioritize work between polonius and diagnostics

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

Maybe we can ask people to state, on the Triage Paper, which topic they would like to focus on in the near term

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

if too few say "diagnostics"

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

then we tweet about it?

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

(or we could just tweet about it regardless)

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

yeah I think we should open up some issues and see if we can get people interested

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

its a question of whether we want to invest time in onboarding if we can avoid it

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

and twitter etc remains an option

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

But then again

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

impl Days Paris is coming up

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

so I might try to strong-arm some people there

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

(as in, "I'll already be investing time in onboarding, so I shouldn't fear doing it.")

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

ok, seems like top priority then is to identify a discrete set of diagnostic issues

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

which I guess @pnkfelix you will be doing ?

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

yeah I'll keep going through the list

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

I can devote serious time to that tomorrow

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

... maybe some time tonight? Not sure. I was up late last night with going through "weak test" diagnostics, but i think that was as big mistake in the end.

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

:)

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

Any other specific high priority task to tackle this week?

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

besides the perf thing (which I think @David Wood is tackling)

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

I still think it'd be good to get polonius integration up and going

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

oh yes

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

so, regarding polonius integration

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

well

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

I guess I basically agree that a library is the way to go

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

seems like it's gonna be easier, though you're not wrong about the cycle time to test changes

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

I was briefly enamored with the hypothetically improved cycle time

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

but the reality is that there's a real serious cost to implementing that

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

and its work that ends up being thrown away in the end

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

yeah

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

anyway I would think that somebody should pursue that

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

might be a natural extension to @Reed Koser's existing PR, not sure if they are around

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

but doens't have to be them

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

ok well we'll figure it out

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

man, i thought this meeting would all be about :frog:

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

@Keith Yeung still looking for someone to do the :frog: integration :)

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

(you say my notes?)

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

Feel free to discuss :frog:. I have to close down this meetup and then go home, so I won't be able to participate live, but I'll try to read the transcript.

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

i was in fact reading frank's blog post about the treefrog leapjoin (or was it leapfrog triejoin?) function

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

good read :)

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

@nikomatsakis what work needs to be done there though? I thought we pretty much had it covered with the port from timely to :frog: for all strategies

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

well rustc is not using polonius yet

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

er, I guess I meant "integrating polonius into rustc"

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

(leapfrog triejoin is logicblox's, treefrog leapjoin is another similar worst case optimal join algorithm from the Ngo paper, named in classic mcsherry style :)

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

not really :frog: integration per se

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

ah, yes, i was indeed going over those notes you left on the triage docs

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

it is also a dilemma that we face if we are to fully integrate polonius into rustc, because it would seem like the work for improving diagnostics would be for naught

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

I dont' think so

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

but in any case I want to do the rustc-integration behind a switch of course

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

e.g., -Zpolonius

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

@Keith Yeung it would depend on how deep the integration goes

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

(as discussed earlier in this topic, i think?)

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

@Keith Yeung start from here: https://rust-lang.zulipchat.com/#narrow/stream/122657-wg-nll/subject/weekly.20meeting.20May.2022/near/126941478

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

@lqd btw just saw your PR 42, nice

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

the link doesn't work as intended, but i got the idea

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

I wish I was able to better test that it would actually report errors :) (or even at all)

qmx (May 22 2018 at 22:51, on Zulip):

did we ever ended up with graphviz visualizations for facts?

Reed Koser (May 23 2018 at 02:03, on Zulip):

might be a natural extension to @Reed Koser's existing PR, not sure if they are around

I'm open to working on Polonius integration into rustc. I can't participate live in these meetings as they're right in the middle of my work day, but I still have time to work on rustc stuff in the evenings.

Reed Koser (May 23 2018 at 06:05, on Zulip):

Also, @nikomatsakis my refactor didn't end up in https://github.com/rust-lang/rust/pull/50798 since I thought that had already landed when I made those changes, and did some git wizardry to convince Github not to include the refactor in the PR when I realized it hadn't and that it would invalidate your r+. I can push it for real though if you want to land it in the same merge however.

nikomatsakis (May 23 2018 at 09:09, on Zulip):

@Reed Koser by "my refactor" are you referring to this commit? if so, I think it is being actively tested by bors right now....

Vytautas Astrauskas (May 23 2018 at 14:06, on Zulip):

@pnkfelix

(I independently wondered if there would be some way to actually attach a bias to each test to make it correspond to the number of users that hit that construct)
(but that seems like a research question)

JFYI: As far as I understand, the main problem with computing the number of users that hit a specific error is that programmers rarely publish the code that does not compile. One way to obtain such information would be to write an IDE plugin that would log how a programmer writes a program. However, if we had such log, we could not only compute what problems are the most common but also train a machine learning model capable of proposing fixes for common errors.

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

There is ongoing discussion on trying to add Telemetry to the rust compiler. I imagine such a log would be a useful component of such telemetry, if we can actually get permission to gather such data in the first place...

Reed Koser (May 23 2018 at 14:48, on Zulip):

I was referring to that commit, and I don't think Bors tested it. That merge doesn't add the path_utils file that I added in the refactor commit

Reed Koser (May 23 2018 at 14:49, on Zulip):

sorry I've made a mess haven't I

Vytautas Astrauskas (May 23 2018 at 14:54, on Zulip):

Is there a tracking issue for Telemetry, or something that could give me an overview of the current situation?

Yes, there is a huge privacy concern here. We would need at least to get an explicit agreement from everyone giving away their data.

Reed Koser (May 23 2018 at 14:56, on Zulip):

Hello GDPR =)

Reed Koser (May 23 2018 at 14:59, on Zulip):

@nikomatsakis https://github.com/rust-lang/rust/pull/50998
Sorry, I thought it would be easier to do this in a separate PR. Didn't realize how deep Bor's queue was at the time...

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

I've considered adding telemetry to the playground, since the code is already "going somewhere else"

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

@Reed Koser oh, actually, you are correct, I was misreading Github.

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

@Reed Koser well, that commit looked good to me :)

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

@Vytautas Astrauskas telemetry hasn't progressed to that point yet, and the need for us to figure out stuff like that is part of why :) it's mostly a 'thought' at this juncture

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

I see. The privacy-related questions are definitely not easy to answer.

Last update: Nov 21 2019 at 13:25UTC