Stream: t-compiler

Topic: all hands meeting planning


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

Hello @T-compiler,

I started sketching out possible meetings in this dropbox paper document. This isn't really a complete list but I'd appreciate feedback on meetings that may be missing, or on agenda items.

I'm particularly interested in identifying the key unknowns or things where consensus would be useful, as that will help to judge the priority of meetings -- also on "homework" we can setup beforehand to help people get up to speed. Feel free to leave comments in dropbox paper or on this zulip thread.

(Also, there is a bunch of old material at the end I've not deleted yet.)

I think we plan over next few days to try and make a more concrete schedule so having this information get more concrete is great.

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

(ps, I'm using Dropbox paper for this for a few reasons: it's nice to edit, I like the 'comment' feature, and I expect it will be a major organizational tool at the All Hands.)

nikomatsakis (Jan 24 2019 at 14:23, on Zulip):

Let me post a few specific questions here

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

First off, for everyone:

The agenda for the Organizational Meeting is something we didn't really talk about at the Planning Meeting. Are there missing things? Is it too diverse? I could see trying to split out a separate meeting. On the other hand, we do have 2 hours, which might be enough.

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

For @mw, @Zoxc, @Josh Stone:

I wrote in a rustc parallelization meeting. I think that'd be a good thing to do, although @Zoxc won't be present. It'd probably be good to setup a few goals before hand (e.g., I don't think we want a Rayon fork long term -- I imagine we either want to use standard Rayon, or to roll our own, very simple threadpool, but not something in between). Are there other bits of research or write-ups we should produce? Who will do them?

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

For @scalexm and others from @WG-compiler-traits, perhaps @centril:

I put in two Chalk meetings, one on the "lowering rules" and one on "implementation details". The former I think overlaps somewhat with T-lang. The latter contains both some traits-specific questions but also some broader ones (e.g., the tcx). I'm not sure if we'll have time for both, but it'd be good to maybe leave thoughts on possible agenda items, deliverables, and the like.

Also, are there other trait-related topics? I could see e.g. trying to work out trait object upcasting.

nikomatsakis (Jan 24 2019 at 14:37, on Zulip):

@Oli / @centril:

Are there things that we need to decide about const generics? Would it be better to do a "lecture series" video on the topic?

Wesley Wiser (Jan 24 2019 at 14:37, on Zulip):

From the paper doc:

Estimate impact of inlining perhaps?

I have a very early prototype of MIR based inlining that can build a stage2 rustc. I've tried doing a rustc-perf run locally and the results are negligible. Would it be worth pushing my changes as a WIP branch and getting somebody else to look at them? Given that the results are very close to
+/- 0%, I'm probably doing something completely wrong.

davidtwco (Jan 24 2019 at 14:38, on Zulip):

If you're looking for topics to fill time, you previously mentioned discussing borrowck vocabulary.

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

Ah, @davidtwco, that reminds me, thanks =) I wanted to add something about 2PB

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

But also diagnostics

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

I doubt we'll have time for all this, but then there may be some amount of slack

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

actually I figure this sort of list is useful, as even after all hands we can try to have these conversations

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

@nikomatsakis did you want discussion of "Measure performance impact of local interners" #57214 to be considered part of the item "e.g., interning pools and so forth" ? I suspect not since this is more about the local vs global interning, right?

oli (Jan 24 2019 at 14:42, on Zulip):

Are there things that we need to decide about const generics? Would it be better to do a "lecture series" video on the topic?

I don't think there's much to be discussed, most of the things are simply taking their time in the RFC process

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

@Oli ok, I also had this sense. There is a meta question about process but...

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

@pnkfelix I was wondering where to fit that in

oli (Jan 24 2019 at 14:48, on Zulip):

yeaaa I didn't want to bring it up :D

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

@nikomatsakis compiler performance?

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

wait is that even a topic ... /me looks

oli (Jan 24 2019 at 14:48, on Zulip):

but if we need a guinnea pig for trying out a new way to do RFCs, https://github.com/rust-rfcs/const-eval/pull/8 can be used

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

yeaaa I didn't want to bring it up :D

I think we'll be discussing process as part of lang team -- probably compiler team should be involved. Still turning that over in my head a bit.

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

@pnkfelix I don't have a "compiler performance" meeting, seemed too broad. I think that interning pools do impact RLS, that particular PR is also relevant to chalk and other things

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

oh well if it impacts RLS then lets fold it in there

mw (Jan 24 2019 at 14:50, on Zulip):

I think that would also be part of the broader resource management question

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

well it feels mildly distinct

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

but releant

mw (Jan 24 2019 at 14:51, on Zulip):

i.e. we use interning a lot and we should talk about how impacts long-running compiler processes

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

in particular, the "short-lived intern pools" aren't really the question that the RLS needs to wrestle with. OTOH, if we remove them, it may increase pressure on the "global pool"

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

but perhaps an overall review of interning is fine

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

where is resource management as a topic?

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

I don't see us having time for that during the RLS discussion

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

well, maybe, but not in great depth

mw (Jan 24 2019 at 14:52, on Zulip):

@pnkfelix not in the list yet, but I suggested it in a comment there

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

that actually fits into another question I had

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

which is, do we want sometime to sketch out in more depth stuff like end-to-end queries?

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

( or do we envision doing that in the RLS )

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

@pnkfelix not in the list yet, but I suggested it in a comment there

I skimmed paper and do not see ... well, any comments on the right-hand margin

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

is that where you left it?

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

I think I added it to the lsit

nikomatsakis (Jan 24 2019 at 14:53, on Zulip):

and resolved the question

mw (Jan 24 2019 at 14:53, on Zulip):

ah, ok

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

/me looks again

nikomatsakis (Jan 24 2019 at 14:53, on Zulip):

@pnkfelix this is the comment you were referring to initially

nikomatsakis (Jan 24 2019 at 14:53, on Zulip):

I added that in response to something @mw wrote

mw (Jan 24 2019 at 14:53, on Zulip):

niko added as sub-point

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

oh okay, so I've come full circle.

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

I'm going to add a link to the PR somewhere in that case. Either in a comment or in a further subbullet.

nagisa (Jan 24 2019 at 14:57, on Zulip):

Estimate impact of inlining perhaps?

inlining has little benefit (in fact -- it is harmful to an extent) without other optimisations, of which we currently have very few/basic currently.

mw (Jan 24 2019 at 14:58, on Zulip):

would be interesting if MIR inlining has an effect on compile times (because LLVM has to do less of it)

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

right, my main interest is compilation time

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

we have in the past theorized that len, transmute and other such things would benefit

nagisa (Jan 24 2019 at 15:00, on Zulip):

@mw dubious we would see any notable benefits – LLVM/codegen would have to deal with more of the IR initially (as code would now be duplicated across all monomorphisations) and LLVM’s own structures are way more suited than current MIR for mutation that inlining involves.

nagisa (Jan 24 2019 at 15:01, on Zulip):

I anticipate benefits down the road once we can optimise the inlined MIR to remove unnecessary stuff, though.

Wesley Wiser (Jan 24 2019 at 15:03, on Zulip):

Currently, I'm not seeing much of an effect at all. Which might mean my prototype is just broken. Or it might mean it's not currently helpful and is something we should table for now.

davidtwco (Jan 24 2019 at 15:42, on Zulip):

Another potential topic could be compiletest improvements - moving things to UI tests, improving compiletest's tests, other desired improvements. There was some discussion of this a few months ago.

QuietMisdreavus (Jan 24 2019 at 15:43, on Zulip):

coincidentally, i'm planning on a test improvements meeting for rustdoc, lol

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

Another potential topic could be compiletest improvements - moving things to UI tests, improving compiletest's tests, other desired improvements. There was some discussion of this a few months ago.

Yeah I've been musing at times about trying to take ownership of compiletest itself and see if we can fix various things in it.

nagisa (Jan 24 2019 at 15:46, on Zulip):

fwiw, optimize(...) PR adds multiple improvements to codegen tests too.

nagisa (Jan 24 2019 at 15:46, on Zulip):

(you can now have multiple configurations there and it allows to specify arbitrary optimisation levels for all tests as well)

nagisa (Jan 24 2019 at 15:47, on Zulip):

(so now you should be able to get rid of approximately half of the run-make tests that exist entirely because we weren’t able to override the -O before)

nagisa (Jan 24 2019 at 15:47, on Zulip):

well s/now/when that PR lands/

pnkfelix (Jan 24 2019 at 16:00, on Zulip):

@nagisa r=me

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

(sorry for dropping out earlier, I had some connectivity troubles here)

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

anyway, I like the idea of compiletest, I can add that perhaps as a kind of mini-meeting

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

I've been thinking that some of these "meetings" might be things we can sort of "opportunistically" schedule

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

well what I really mean by this is

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

maybe it's not using one of the official conference rooms etc

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

but something more like "if there are people lokoing for things to do and they want to dig into it"

nikomatsakis (Jan 25 2019 at 20:20, on Zulip):

@Esteban Küber so I see you are attending the All Hands. I am currently contemplating the idea of having one or two "breakout" meetings, where the idea is that we split up a bit into smaller groups to work out the design of something, and then share it with the others.

Would you be interested in leading a breakout session focused on --teach? Are there other things in the area of diagnostics that might be good?

Esteban Küber (Jan 25 2019 at 20:24, on Zulip):

That sounds like a good idea. I'll think of other relevant topics.

Esteban Küber (Jan 25 2019 at 20:25, on Zulip):

Let's do it

nikomatsakis (Jan 25 2019 at 20:25, on Zulip):

Cool

nikomatsakis (Jan 25 2019 at 20:25, on Zulip):

it's not set in stone

nikomatsakis (Jan 25 2019 at 20:32, on Zulip):

To all:

My current spreadsheet is here, it combines compiler + lang team. I think those are the number of 2-hours slots we will have. (This isn't set in stone yet.)

To make the most of them, I've designated 2 slots as "breakout" topics. These are meant to be things that need focused elaboration. My thought is that we will break up into like 4 groups at each time, with ~60-90 minutes to work on something, and then report back to the others on the rough ideas.

The idea is that everybody picks one topic in any given session. The idea is, while you may be interested in many things, this way you can always hear what the other people did afterwards and give feedback then. I figure we'll adjust the set of topics a bit live, too, e.g. based on the outcome from the IDE/RLS discussion. And then we can spread out the topics to try and minimize "key conflicts".

I've put the organizational meeting at the end for two reasons:

Sorry that I keep creating new documents. I'm trying to out the best way to represent everything. =) I'll probably move the results ultimately back into a single DropBox Paper document.

Last update: Nov 16 2019 at 01:05UTC