Stream: t-compiler

Topic: steering meeting 2019-01-04


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

Hello @T-compiler/meeting — as I wrote yesterday, we have a steering meeting scheduled for today, but I am wondering how many folks are around. I feel like it might've been wiser to schedule it for next week. =) So, if you're around, :wave: ?

nikomatsakis (Jan 04 2019 at 14:54, on Zulip):

Or perhaps I should make a vote =) :check: for "do it now!" and :x: for "do it next week!"

nikomatsakis (Jan 04 2019 at 15:01, on Zulip):

OK, well, it seems like we've got some folks, but not too many, and in particular we don't have many @mw, @eddyb, @pnkfelix, @Ariel Ben-Yehuda, or a number of other key members. But I'm still game to have some kind of chat =)

nikomatsakis (Jan 04 2019 at 15:02, on Zulip):

I kind of failed to follow up with some of the things we discussed last time, in particular I had hoped to write a kind of "zulip guide", mess with the rustc repository and make a map of parts of the compiler and experts therein, and a few other things, but I'm hoping to get to that this week.

nikomatsakis (Jan 04 2019 at 15:03, on Zulip):

I'm not sure if people have suggestions for a topic to focus on; I had previously thought it'd be good to talk over the agenda for upcoming All Hands, which we could start to do

nikomatsakis (Jan 04 2019 at 15:04, on Zulip):

We have this HackMD document which is kind of a big unstructured list

nikomatsakis (Jan 04 2019 at 15:05, on Zulip):

I'm trying to remember how we approached this last time; it seems like we might kind of sort the topics a bit based on priority

nikomatsakis (Jan 04 2019 at 15:05, on Zulip):

one lesson from last time was that preparation is pretty key

nikomatsakis (Jan 04 2019 at 15:05, on Zulip):

so I imagine that once we have some idea what things we want to talk about, we ought to assign some organizers to try and prepare (and check in on that...)

nikomatsakis (Jan 04 2019 at 15:05, on Zulip):

but I guess that can come a bit later perhaps

nikomatsakis (Jan 04 2019 at 15:06, on Zulip):

I also imagine that some of the topics might not be especially compiler team specific, so maybe we can sort those things...

nikomatsakis (Jan 04 2019 at 15:09, on Zulip):

I'm playing around a bit in the doc, I guess you can see it live?

nikomatsakis (Jan 04 2019 at 15:09, on Zulip):

I guess I think that it makes the most sense to use all hands times for things that need a bit of design -- but not too much

nikomatsakis (Jan 04 2019 at 15:10, on Zulip):

i.e., we're probably not going to whip out a laptop and edit code,

nikomatsakis (Jan 04 2019 at 15:10, on Zulip):

so it has to be design that is amenable to sketching on white boards and the like :)

nikomatsakis (Jan 04 2019 at 15:10, on Zulip):

or else someone needs to do enough legwork to identify key issues

Ariel Ben-Yehuda (Jan 04 2019 at 15:10, on Zulip):

hi I'm here

nikomatsakis (Jan 04 2019 at 15:10, on Zulip):

Hi @Ariel Ben-Yehuda :smile:

varkor (Jan 04 2019 at 15:11, on Zulip):

were there notes from the last all hands as to what worked well / didn't work so well in terms of planning?

nikomatsakis (Jan 04 2019 at 15:11, on Zulip):

Not really :) that would've been nice

nikomatsakis (Jan 04 2019 at 15:11, on Zulip):

stepping back from the list, maybe worth thinking a bit about the overall structure

nikomatsakis (Jan 04 2019 at 15:12, on Zulip):

I am wondering if it makes sense to have "breakout" topics that are focused on a particular area

nikomatsakis (Jan 04 2019 at 15:12, on Zulip):

where not everyone is participating

nikomatsakis (Jan 04 2019 at 15:12, on Zulip):

and then maybe have "reviews" where we discuss the things and share?

nikomatsakis (Jan 04 2019 at 15:12, on Zulip):

e.g., I feel like it'd be nice to have a few people clustered and maybe able to do some actual prototyping or something

nikomatsakis (Jan 04 2019 at 15:12, on Zulip):

were there notes from the last all hands as to what worked well / didn't work so well in terms of planning?

I can share what I recall though

nikomatsakis (Jan 04 2019 at 15:13, on Zulip):

the way we ran it last time, anyway, and we might change some things up, was kind of that there was some scheduling but people could kind of show up for meetings they thought would be interesting. Which meant that sometimes you had a lot of people show up to a discussion where you might not have expected that

nikomatsakis (Jan 04 2019 at 15:13, on Zulip):

This can be good (new perspectives) or annoying (beginner questions)

nikomatsakis (Jan 04 2019 at 15:14, on Zulip):

It depends a bit on how much you've prep'd, too

nikomatsakis (Jan 04 2019 at 15:14, on Zulip):

As for the compiler team itself, many of our meetings had the shape of all the team basically in a circle with one person kind of projecting their laptop, moderating and taking some notes

nikomatsakis (Jan 04 2019 at 15:14, on Zulip):

then at the end of the day, the different teams would all meet and brief each other on what was discussed

nikomatsakis (Jan 04 2019 at 15:15, on Zulip):

(the last part is sort of like what I was suggesting above, although because audience is like "all of rust", it tends to be quite high level)

varkor (Jan 04 2019 at 15:15, on Zulip):

depending on how much preparation there is, there could be a "prereading" for each meeting to at least help eliminate some of the beginner/obvious questions

nikomatsakis (Jan 04 2019 at 15:15, on Zulip):

yes, this is what I am thinking about

nikomatsakis (Jan 04 2019 at 15:16, on Zulip):

other things I can imagine:

Ariel Ben-Yehuda (Jan 04 2019 at 15:16, on Zulip):

btw, what's the motivation for MIR type-checking?

nikomatsakis (Jan 04 2019 at 15:16, on Zulip):

briefings explaining how some parts of the compiler work

nikomatsakis (Jan 04 2019 at 15:16, on Zulip):

e.g., maybe it'd be nice to just talk about how name resolution works, NLL, etc

nikomatsakis (Jan 04 2019 at 15:16, on Zulip):

which might then spark ideas for improvements

nikomatsakis (Jan 04 2019 at 15:16, on Zulip):

btw, what's the motivation for MIR type-checking?

context?

Ariel Ben-Yehuda (Jan 04 2019 at 15:17, on Zulip):

it's an item

nikomatsakis (Jan 04 2019 at 15:17, on Zulip):

Oh, I think @eddyb was raising that, I don't get it yet

nikomatsakis (Jan 04 2019 at 15:17, on Zulip):

I don't know how we can construct MIR without type checking

Ariel Ben-Yehuda (Jan 04 2019 at 15:17, on Zulip):

I don't think we need to use CFG info in type-checking

Ariel Ben-Yehuda (Jan 04 2019 at 15:17, on Zulip):

it might be good to have a "type-checking IR" with explicit coercions

nikomatsakis (Jan 04 2019 at 15:17, on Zulip):

briefings explaining how some parts of the compiler work

the more I think about it, the more I like this

varkor (Jan 04 2019 at 15:17, on Zulip):

e.g., maybe it'd be nice to just talk about how name resolution works, NLL, etc

I could imagine that being a helpful way to quickly get up to speed on an area someone's unfamiliar with (esp. for areas the rustc guide doesn't elaborate on so much yet)

nikomatsakis (Jan 04 2019 at 15:17, on Zulip):

i.e., if there is some area that we think we might want to improve, we can start with an explanation

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

yes, exactly

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

"here is what we have now" and "here are the problems"

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

in an ideal world, we'd record these meetings

QuietMisdreavus (Jan 04 2019 at 15:18, on Zulip):

heck, i may actively steal this if rustdoc team gets a slot >_>

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

but maybe we'll settle for good notes

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

@QuietMisdreavus say more?

QuietMisdreavus (Jan 04 2019 at 15:19, on Zulip):

the "here's how everything works" idea

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

let me rephrase: I feel like certain key tools (rustdoc, RLS)

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

are quite intrinsically tied to the compiler

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

(oh ps @Igor Matuszewski you around?)

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

and I could imagine that sharing some information about how they work

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

might be really helpful

Igor Matuszewski (Jan 04 2019 at 15:20, on Zulip):

yup

nikomatsakis (Jan 04 2019 at 15:20, on Zulip):

as an aside, I used to worry a lot about whether RLS/rustdoc should be "part of" compiler team or vice versa etc, but I think I've come to the conclusion that we should not worry about hierarchy (who cares) and instead just endeavor to have a lot of overlap between the teams

nikomatsakis (Jan 04 2019 at 15:20, on Zulip):

which we don't presently

nikomatsakis (Jan 04 2019 at 15:21, on Zulip):

so this could be a way to help engender that, but I also think it's something we should think about going forward -- i.e., part of the "reduce bus factor" initiative

QuietMisdreavus (Jan 04 2019 at 15:21, on Zulip):

definitely

nikomatsakis (Jan 04 2019 at 15:21, on Zulip):

anyway, ok, I like this spin -- so then we basically want to pick a few technical topics where we aim to do planning. Each topic begins with an introductory session, and then goes on to discuss challenges.

nikomatsakis (Jan 04 2019 at 15:22, on Zulip):

I think we should really, really aim to use this as a "bootstrap rustc-guide initiative" too

nikomatsakis (Jan 04 2019 at 15:22, on Zulip):

I don't quite know how to achieve that :)

nikomatsakis (Jan 04 2019 at 15:22, on Zulip):

I want to say 'each leader should have a rustc-guide chapter prepared in advance' but that seems unrealistic

nikomatsakis (Jan 04 2019 at 15:22, on Zulip):

but taking notes and trying to distill afterwards might be plausible

Igor Matuszewski (Jan 04 2019 at 15:24, on Zulip):

Should RLS and save-analysis infra have its own chapter in the rustc-guide?

varkor (Jan 04 2019 at 15:24, on Zulip):

maybe the rustc guide would be a good topic in itself to discuss

nikomatsakis (Jan 04 2019 at 15:25, on Zulip):

Should RLS and save-analysis infra have its own chapter in the rustc-guide?

probably, yes

nikomatsakis (Jan 04 2019 at 15:25, on Zulip):

maybe the rustc guide would be a good topic in itself to discuss

also, probably yes to this :)

nikomatsakis (Jan 04 2019 at 15:25, on Zulip):

I am wondering where RLS/rustdoc fit into my hackmd categorization

nikomatsakis (Jan 04 2019 at 15:25, on Zulip):

I guess they are "technical areas" too

nikomatsakis (Jan 04 2019 at 15:26, on Zulip):

outside of rustc-guide, I feel like there would be other "procdural matters" worth talking about

Ariel Ben-Yehuda (Jan 04 2019 at 15:26, on Zulip):

yea, especially if we can get a contributor

Ariel Ben-Yehuda (Jan 04 2019 at 15:26, on Zulip):

*an RLS/rustdoc person

nikomatsakis (Jan 04 2019 at 15:26, on Zulip):

we've spent a lot o time discussing ideas around mentoring, do we have something concrete enough to talk about? Something like our team structure itself?

nikomatsakis (Jan 04 2019 at 15:26, on Zulip):

I feel like we talked about that last time, but it felt a bit aimless, IIRC. =)

nikomatsakis (Jan 04 2019 at 15:27, on Zulip):

Though I still like the idea (never realized) of having some kind of "alert system" where we can send up when there is some bug that needs fixing semi-urgently and try to find someone interested who is not a full-time compiler contributor :)

nikomatsakis (Jan 04 2019 at 15:27, on Zulip):

I had forgotten about that until just now =)

nikomatsakis (Jan 04 2019 at 15:28, on Zulip):

well, ok, some thoughts:

nikomatsakis (Jan 04 2019 at 15:29, on Zulip):

hmm, is anybody familiar with cranelift?

nikomatsakis (Jan 04 2019 at 15:29, on Zulip):

I wonder if there will be any cranelift folks in attendance

nikomatsakis (Jan 04 2019 at 15:29, on Zulip):

I am pondering about areas where we could get some kind of "short introductions" to relevant "related work" that might inform some of the questions before us

varkor (Jan 04 2019 at 15:30, on Zulip):

the AH would probably be a good time to work out who the experts are in the various areas of the compiler, and work out specifically how to mentor people into those areas

nikomatsakis (Jan 04 2019 at 15:31, on Zulip):

@Aleksey Kladov you will be present, right?

varkor (Jan 04 2019 at 15:31, on Zulip):

(are there many people experienced with cranelift other than @Dan Gohman?)

nikomatsakis (Jan 04 2019 at 15:31, on Zulip):

I feel like rust-analyzer would also be an interesting "here is what we are doing" topic, particularly as we talk about designing RLS

nikomatsakis (Jan 04 2019 at 15:31, on Zulip):

(are there many people experienced with cranelift other than @Dan Gohman?)

don't know, @eddyb might know stuff. they tend to know everything.

nikomatsakis (Jan 04 2019 at 15:32, on Zulip):

except how to login to Zulip :flame:

nikomatsakis (Jan 04 2019 at 15:32, on Zulip):

ah, perhaps the grammar folks

Wesley Wiser (Jan 04 2019 at 15:32, on Zulip):

I am pondering about areas where we could get some kind of "short introductions" to relevant "related work" that might inform some of the questions before us

Some other "not-quite rustc" areas could be salsa, polonius, chalk, etc

nikomatsakis (Jan 04 2019 at 15:33, on Zulip):

@Wesley Wiser I have those on the list, yeah.. though I think salsa is the only real "not rustc" project at this point

nikomatsakis (Jan 04 2019 at 15:34, on Zulip):

Hmm, a topic I would like to cover is diagnostics

nikomatsakis (Jan 04 2019 at 15:34, on Zulip):

@Esteban Küber you around?

nikomatsakis (Jan 04 2019 at 15:34, on Zulip):

and will you be attending All Hands =)

nikomatsakis (Jan 04 2019 at 15:36, on Zulip):

Ok, I think I moved all the things from the existing list into the newer, shorter list at least

nikomatsakis (Jan 04 2019 at 15:36, on Zulip):

this is honestly probably more things than we will wind up having time for, but you never now

nikomatsakis (Jan 04 2019 at 15:36, on Zulip):

so a meta question: do we think it would make sense to have "parallel tracks" or stick to "single track"?

nikomatsakis (Jan 04 2019 at 15:36, on Zulip):

I am guessing single track is perhaps better

nikomatsakis (Jan 04 2019 at 15:37, on Zulip):

easier to manage, at least

Esteban Küber (Jan 04 2019 at 15:38, on Zulip):

I wasn't but I am now @nikomatsakis :yum:

Esteban Küber (Jan 04 2019 at 15:38, on Zulip):

And I am going

varkor (Jan 04 2019 at 15:38, on Zulip):

the difficulty with parallel meetings is that quite a few key members are experts in several/most of the areas, so it's tricky to parallelise without excluding people who ought to be involved

nikomatsakis (Jan 04 2019 at 15:38, on Zulip):

yes

nikomatsakis (Jan 04 2019 at 15:39, on Zulip):

@Esteban Küber I was pondering the idea of doing a "diagnostics focus session", where we talk about how diagnostics work, some of the --teach and other ideas, and whether we can establish any kind of focus on improving things.

matklad (Jan 04 2019 at 15:39, on Zulip):

Here, mostly lurking

nikomatsakis (Jan 04 2019 at 15:39, on Zulip):

I'm volunteering you to present something on rust-analyzer @Aleksey Kladov :stuck_out_tongue:

matklad (Jan 04 2019 at 15:40, on Zulip):

on AH? or in this thread?

nikomatsakis (Jan 04 2019 at 15:40, on Zulip):

at the AH

matklad (Jan 04 2019 at 15:40, on Zulip):

will do with pleasure :)

nikomatsakis (Jan 04 2019 at 15:41, on Zulip):

I knew I'd have to twist your arm

nikomatsakis (Jan 04 2019 at 15:41, on Zulip):

anyway, i'm actually pretty excited about this framing. Now the question is just to try and guestimate how many things we can actually do and how much time / who will lead etc

Plus, interestingly, dependencies between items.

nikomatsakis (Jan 04 2019 at 15:42, on Zulip):

some things may be semi-inseperable, like RLS + E2E queries

nikomatsakis (Jan 04 2019 at 15:45, on Zulip):

another question: all the ideas in this list have been kicking around for some time. are there "radical ideas" that are worth talking about? I added "pre-compiling things from crates.io and downloading compiled artifacts"

nikomatsakis (Jan 04 2019 at 15:45, on Zulip):

not sure if anybody else has thoughts in their backpockets along these lines, I guess some of the proposed IDE topics are pretty radical =)

QuietMisdreavus (Jan 04 2019 at 15:46, on Zulip):

/me rummages in irlo history

Zoxc (Jan 04 2019 at 15:46, on Zulip):

Does turning on parallel queries by default count as radical? =P

QuietMisdreavus (Jan 04 2019 at 15:46, on Zulip):

cough cough https://internals.rust-lang.org/t/design-discussion-proper-conditional-compilation-support-for-rustdoc/8844

Esteban Küber (Jan 04 2019 at 15:47, on Zulip):

I don't think there are _new_ radical ideas, just old ideas that we can now finally take a look at :slight_smile:

nikomatsakis (Jan 04 2019 at 15:48, on Zulip):

Does turning on parallel queries by default count as radical? =P

no :)

QuietMisdreavus (Jan 04 2019 at 15:48, on Zulip):

pretty sure i've linked that irlo thread here before and got an "interesting, sounds hard" from niko :rolling_on_the_floor_laughing:

nikomatsakis (Jan 04 2019 at 15:48, on Zulip):

ok, well, this seems like a super productive meeting. I'm happy to call it here. Move to adjourn?

nikomatsakis (Jan 04 2019 at 15:48, on Zulip):

pretty sure i've linked that irlo thread here before and got an "interesting, sounds hard" from niko :rolling_on_the_floor_laughing:

that about sums up my feeling :P

nikomatsakis (Jan 04 2019 at 15:49, on Zulip):

"oh god don't we have enough problems"

nikomatsakis (Jan 04 2019 at 15:49, on Zulip):

;)

nikomatsakis (Jan 04 2019 at 15:49, on Zulip):

actually though it may be .. sort of tractable, I don't know. It feels also like incremental compilation might be something we could leverage here

nikomatsakis (Jan 04 2019 at 15:50, on Zulip):

i.e., maybe recompiling for N configurations doesn't have to be very expensive, and the problem then becomes merging the data

matklad (Jan 04 2019 at 15:50, on Zulip):

This cfg stuff intersects with IDE stuff a lot

nikomatsakis (Jan 04 2019 at 15:50, on Zulip):

yes, that too

nikomatsakis (Jan 04 2019 at 15:51, on Zulip):

put another way: as much as I'd prefer not to think about it, it does seem kind of important...

matklad (Jan 04 2019 at 15:51, on Zulip):

i.e., maybe recompiling for N configurations doesn't have to be very expensive,

generating docs for all platforms is rare, we can be quite slow I think

nikomatsakis (Jan 04 2019 at 15:51, on Zulip):

"jump to def" a bit less so =)

matklad (Jan 04 2019 at 15:51, on Zulip):

we can't be slow in IDE thoug

Igor Matuszewski (Jan 04 2019 at 15:51, on Zulip):

In general unifying definitions across multiple differents cfgs is non-trivial

Igor Matuszewski (Jan 04 2019 at 15:52, on Zulip):

and not sure how jump to def should behave if any definition diverges across different cfgs

Igor Matuszewski (Jan 04 2019 at 15:52, on Zulip):

:sad:

matklad (Jan 04 2019 at 15:52, on Zulip):

My current plan (for rust-analyzer) is to have a single "active" cfg setupt, but process cfg-ed out bits as well, but ignore all errors from them.

QuietMisdreavus (Jan 04 2019 at 15:53, on Zulip):

my thought for rustdoc for "different definitions across cfgs" was to just include them all on the same page

Igor Matuszewski (Jan 04 2019 at 15:53, on Zulip):

It'd be great to support cfg(test) at the minimum, though

QuietMisdreavus (Jan 04 2019 at 15:53, on Zulip):

with the appropriate doc(cfg) banners

Igor Matuszewski (Jan 04 2019 at 15:54, on Zulip):

I know that VS C++ takes a hammer approach and maintains a single 'view' and anything cfg-ed out is just greyed and not analyzed at all (something we should do better, if possible)

Igor Matuszewski (Jan 04 2019 at 15:55, on Zulip):

but yeah, this might be worth revisiting at AH :smile:

Wesley Wiser (Jan 04 2019 at 15:56, on Zulip):

I know that VS C++ takes a hammer approach and maintains a single 'view' and anything cfg-ed out is just greyed and not analyzed at all (something we should do better, if possible)

That's basically what VS C# does as well FWIW

nikomatsakis (Jan 04 2019 at 15:59, on Zulip):

Thanks all for the great meeting, gotta run, I'll post some summary later

Last update: Nov 22 2019 at 04:40UTC