Stream: t-compiler

Topic: steering meeting 2018-12-14


nikomatsakis (Dec 14 2018 at 14:41, on Zulip):

Reminder @T-compiler (cc @WG-compiler-nll, @WG-compiler-traits):

We're having our Compiler Steering Meeting in ~20 minutes (10:00 UTC-05:00). I had intended to post a list of possible topics a few days back but this week ran away from me.

Update on last week's topics: @mw and I have been making some efforts to profile compiler etc, but ran into some challenges. I think it might make sense to find a few folks really interested in pursuing that. Preliminary measurements suggests that (a) parallel compilation is a win, (b) trait solving is a considerable source of time (~20-30%) for many benchmarks and involves solving the same tasks over and over (I would expect an ~95% hit rate for chalk-style caches). Future work that I would like to see is improving -Zself-profile and estimating impact of polymorphization (I'm working on that, hoping to collaborate with @davidtwco more on it today), as well as possibly finding ways to get better measurements with perf (backtraces are a persistent challenge).

For agenda, I was thinking we might take a slight turn from the technical and consider some of the following: please feel free to comment on which you think would be best.

1. Triage and other meetings: how should we structure? Can we improve the current setup? What are its flaws, strengths?
2. Mentoring and bus factor: How can we help move people from "working group participant" into "full-fledged team member"? How can we reduce the "bus factor" for critical modules like type-checker, type resolver, etc?

nikomatsakis (Dec 14 2018 at 14:41, on Zulip):

(Also feel free to suggest other potential agenda items)

davidtwco (Dec 14 2018 at 14:43, on Zulip):

a suggestion: create a T-compiler-meeting group here on Zulip with T-compiler and those interested in attending the meeting each week - it could be confusing if someone pings T-compiler for a question about something and all the non-T-compiler but meeting attendees are also pinged.

davidtwco (Dec 14 2018 at 14:44, on Zulip):

(not so much a suggestion for discussion at the meeting, just in general)

nikomatsakis (Dec 14 2018 at 14:49, on Zulip):

makes sense. I always want to have "opt-in" aliases for things like meetings.

nikomatsakis (Dec 14 2018 at 14:49, on Zulip):

I don't think we can actually make it opt-in, but having aliases for meetings makes it easy to add folks

nikomatsakis (Dec 14 2018 at 14:50, on Zulip):

(by opt-in, I mean something you can easily add yourself to)

davidtwco (Dec 14 2018 at 15:01, on Zulip):

(apparently anyone can edit those groups?)

Wesley Wiser (Dec 14 2018 at 15:01, on Zulip):

Hello :wave:

qmx (Dec 14 2018 at 15:01, on Zulip):

howdy!

Zoxc (Dec 14 2018 at 15:02, on Zulip):

I want to discuss https://github.com/rust-lang/rust/pull/56732. I think that path could lead to querifying the earlier parts of compiler which we could do pretty soon if we keep incremental compilation on the HIR stage. Then we could do stuff like parallel parsing.

Santiago Pastorino (Dec 14 2018 at 15:02, on Zulip):

hello!!

nikomatsakis (Dec 14 2018 at 15:03, on Zulip):

Hi all!

nikomatsakis (Dec 14 2018 at 15:03, on Zulip):

cc @T-compiler starting now

Zoxc (Dec 14 2018 at 15:03, on Zulip):

I also wondered why AST and HIR aren't allocated on an arena? We'd have to move away from folding by ownership for AST, but moving HIR to an arena seems easier.

Ariel Ben-Yehuda (Dec 14 2018 at 15:04, on Zulip):

, (b) trait solving is a considerable source of time (~20-30%) for many benchmarks and involves solving the same tasks over and over (I would expect an ~95% hit rate for chalk-style caches).

I remember the problem used to be confirmation being slow

nagisa (Dec 14 2018 at 15:04, on Zulip):

/me shows up and is very happy about finally getting powerpc64le work (damn you cfg(target_arch="powerpc64le") vs cfg(target_arch="powerpc64", target_endian="little")...)

Ariel Ben-Yehuda (Dec 14 2018 at 15:04, on Zulip):

but a better caching strategy would not have the "confirmation problem" where you have to confirm all the nested obligations

nikomatsakis (Dec 14 2018 at 15:05, on Zulip):

Maybe we can first settle the agenda, then? I proposed a few non-technical topics, and @Zoxc has been bringing up more technical possibilities. I'd be potentially open to either one, I think, though I feel like I might like to have a bit of prep on the technical topics (though that's true for any topic).

I'll post a few items as individual comments and people can use emojis, perhaps?

nikomatsakis (Dec 14 2018 at 15:05, on Zulip):
nikomatsakis (Dec 14 2018 at 15:05, on Zulip):
nikomatsakis (Dec 14 2018 at 15:05, on Zulip):
nikomatsakis (Dec 14 2018 at 15:06, on Zulip):
nikomatsakis (Dec 14 2018 at 15:07, on Zulip):

/me waits a minute or two

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

(ah, I see @pnkfelix told me he'd be unable to attend -- @mw, @eddyb are you around?)

mw (Dec 14 2018 at 15:08, on Zulip):

I'm here

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

particularly for technical topics, I think we kind of need them around =)

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

or at least for end-to-end queries :)

mw (Dec 14 2018 at 15:08, on Zulip):

I think the end-to-end query discussion would profit from being async (on irlo, for example)

nikomatsakis (Dec 14 2018 at 15:09, on Zulip):

potentially, yes

nikomatsakis (Dec 14 2018 at 15:09, on Zulip):

ok, well, why don't we start out talking a bit about mentoring + bus factors -- maybe we'll go for 30 minutes to start, and then revisit what to discuss in remaining time?

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

This may tie in with meeting structure too, I don't know

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

I guess I can start with the observation that there are a number of parts of the compiler that are not broadly understood -- I'm thinking of name resolution as the most urgent

mw (Dec 14 2018 at 15:10, on Zulip):

(though I'm not opposed to discussing end-to-end queries now too)

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

I have been wondering if it makes sense to try and get organized about improving the situation

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

One thought I had was to try and document the parts of the compiler and have people kind of sign up for the parts that they think they are an "expert" in -- this isn't to impart ownership per se, but just to document the lay of the land. Then we might imagine trying to take active steps to increase the number of experts -- either by helping new people work in an area, or perhaps by trying to write docs (and through that learn the code)? Not sure.

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

(though I'm not opposed to discussing end-to-end queries now too)

(I'd be game to try and kick off a bit of that later on)

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

I guess i'm partly curious to hear what other people think might be effective. Do we agree it's a problem? How actively do we want to try and resolve it?

qmx (Dec 14 2018 at 15:13, on Zulip):

at least on my experience, the docs are needed but actually fielding issues and working on that part of the codebase is what helped me to learn

oli (Dec 14 2018 at 15:13, on Zulip):

I think some way for ppl to get an answer to the question "I want to edit code X, who do I talk to" would be a good thing

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

yes, that makes sense

Zoxc (Dec 14 2018 at 15:13, on Zulip):

Name resolution has certainly scared me off

davidtwco (Dec 14 2018 at 15:13, on Zulip):

Yeah, I've found working on issues to be the most effective way to get familiar.

nikomatsakis (Dec 14 2018 at 15:14, on Zulip):

I think some way for ppl to get an answer to the question "I want to edit code X, who do I talk to" would be a good thing

one concern I had was how to keep it up to date

qmx (Dec 14 2018 at 15:14, on Zulip):

kinda like a compiler map?

mw (Dec 14 2018 at 15:14, on Zulip):

I do think that our current bus factor is a problem

nikomatsakis (Dec 14 2018 at 15:14, on Zulip):

but the idea of "who do I talk to" was definitely on my mind too

QuietMisdreavus (Dec 14 2018 at 15:14, on Zulip):

a fun project for someone to try would be to slap a #[warn(missing_docs)] on a module and walk through it to quantify how much code would need to be read through

nikomatsakis (Dec 14 2018 at 15:14, on Zulip):

interesting

davidtwco (Dec 14 2018 at 15:14, on Zulip):

I think some way for ppl to get an answer to the question "I want to edit code X, who do I talk to" would be a good thing

This would be super valuable. It's still hard to gauge whether I'd be able to tackle an issue in a reasonable timeframe outside of areas where I have some familiarity.

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

I think some way for ppl to get an answer to the question "I want to edit code X, who do I talk to" would be a good thing

I think this is also an easy thing to do and easily maintainable too

nikomatsakis (Dec 14 2018 at 15:15, on Zulip):

I see some connections here to both the Rust Reference and the Rustc Guide, I suppose

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

a list of people that can answer questions about some topics

oli (Dec 14 2018 at 15:15, on Zulip):

Up to date solves itself by person Y getting asked about file X and noticing that they don't know anymore enough about it to be of help

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

from those questions we could document stuff

davidtwco (Dec 14 2018 at 15:15, on Zulip):

Are doc comments included in the search on the documentation?

davidtwco (Dec 14 2018 at 15:15, on Zulip):

It'd be valuable for just that reason.

nikomatsakis (Dec 14 2018 at 15:15, on Zulip):

so I created this repository at some point

nikomatsakis (Dec 14 2018 at 15:15, on Zulip):

https://github.com/rust-lang/compiler-team/

nikomatsakis (Dec 14 2018 at 15:15, on Zulip):

I haven't done much with it yet, but it seems like a place that such a thing could live

Santiago Pastorino (Dec 14 2018 at 15:16, on Zulip):

I think a very valuable thing also is that people figure out relevant questions and have some stuff organized in a document

nikomatsakis (Dec 14 2018 at 15:16, on Zulip):

I'd like to start using it to coordinate ourselves better

Santiago Pastorino (Dec 14 2018 at 15:16, on Zulip):

as an informal way of documenting things and maybe that can be shaped later

Santiago Pastorino (Dec 14 2018 at 15:16, on Zulip):

I guess a lot of people repeatedly answer the same stuff over and over

Sunjay Varma (Dec 14 2018 at 15:16, on Zulip):

Completing more of the rustc guide would be helpful too. The last time I checked it still had blank sections

mw (Dec 14 2018 at 15:17, on Zulip):

one practical problem I've run into is: I like the idea of adding documentation (including the rustc guide) but in practice other things always felt like they are more urgent

nikomatsakis (Dec 14 2018 at 15:17, on Zulip):

Yes, it does, but I'm feeling like we need to change those priorities a bit

Sunjay Varma (Dec 14 2018 at 15:17, on Zulip):

Maybe there could be a Zulip channel per area of the compiler where people could hang out and answer questions? That way you wouldn't have to keep a list of people up to date, you could just have people in those groups

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

I guess the first step is figuring out what those "parts" are

davidtwco (Dec 14 2018 at 15:18, on Zulip):

One thing that I've thought might be a good idea is having a clear off-ramp process for working groups: as a working group starts to slow down (sort of like NLL at the moment, although there is still work for Polonius), try schedule a meeting with the active participants that would introduce them to the ongoing work/concepts involved in some other area where there is active work going on and that lets them just jump into that and hit the ground running.

oli (Dec 14 2018 at 15:18, on Zulip):

idk, would area streams really help? We already have the general stream and ppl will actively help or ping whomever they think can contrib

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

Yes, I like this idea, but it seems to require first that we have a clear idea of what is going on, so I've been focused on trying to bootstrap that process itself

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

idk, would area streams really help? We already have the general stream and ppl will actively help or ping whomever they think can contrib

yes, I'm not sure, though e.g. #t-compiler/const-eval has been a big win

davidtwco (Dec 14 2018 at 15:19, on Zulip):

Streams for a specific area would only make sense if there's a lot of traffic.

mw (Dec 14 2018 at 15:19, on Zulip):

with zulip topics, do we need separate streams?

davidtwco (Dec 14 2018 at 15:20, on Zulip):

If >60% of T-compiler topics were discussing name resolution then maybe a T-compiler/name-resolution might be warranted, for example.

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

so I created a HackMd document where we can maybe try to sketch out what we think the "areas" of the compiler are -- probably post meeting I will go over the code and try to fill it out

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

with zulip topics, do we need separate streams?

it's a bit unclear; the advantage of streams of course is that it's easier to see at a glance if the unread message might be something you care about. You can also sort of "mute" at the level of streams.

nikomatsakis (Dec 14 2018 at 15:21, on Zulip):

but I feel like creating streams is a bit of a step too far for this moment

nikomatsakis (Dec 14 2018 at 15:21, on Zulip):

another thought, that feels related:

nikomatsakis (Dec 14 2018 at 15:21, on Zulip):

I'd like to see us doing more comprehensive testing. For example, shooting for 100% branch coverage or something. I could imagine trying to break that down by area.

nikomatsakis (Dec 14 2018 at 15:21, on Zulip):

This also creates an accessible task for getting into the code: can you create tests that hit those untested LOC?

Sunjay Varma (Dec 14 2018 at 15:22, on Zulip):

Maybe a specific stream just for asking questions about the compiler? Like it wasn't clear to me that general is for that. I think some people might think that compiler team streams are not for questions about the compiler, just for members to have meetings

nikomatsakis (Dec 14 2018 at 15:22, on Zulip):

That said, I've never really used code coverage tools, and perhaps they are not that useful?

qmx (Dec 14 2018 at 15:22, on Zulip):

heck just being able to write tests, the bar is really low atm

Sunjay Varma (Dec 14 2018 at 15:22, on Zulip):

Or at least some better advertising of "come ask questions here"

qmx (Dec 14 2018 at 15:22, on Zulip):

/me thinks about trying to write tests for compiletest

nikomatsakis (Dec 14 2018 at 15:22, on Zulip):

Maybe a specific stream just for asking questions about the compiler? Like it wasn't clear to me that general is for that. I think some people might think that compiler team streams are not for questions about the compiler, just for members to have meetings

maybe in part what we need is better (read: any) documentation on how we use zulip

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

oh heck I forgot

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

last time I did this thing where you could use the :point_up: emoji to call attention to a comment that you want me to include in the final summary

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

I'm going to go back and add a few such emojis ;)

nagisa (Dec 14 2018 at 15:24, on Zulip):

It seems hard for people to ask mentorship for tasks that aren’t specifically mentioned E-mentor/E-easy

nagisa (Dec 14 2018 at 15:25, on Zulip):

(or those that don’t already have instructions written)

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

hard in what sense?

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

I don't disagree, just trying to drill in a bit

nagisa (Dec 14 2018 at 15:25, on Zulip):

whom to ask and where to ask :slight_smile:

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

there's no clear venue, for example

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

ok, yes

nikomatsakis (Dec 14 2018 at 15:26, on Zulip):

in principle you can ping on issues but .. some people .. might not be so good at checking their github notifications :see_no_evil:

nagisa (Dec 14 2018 at 15:26, on Zulip):

E-mentor/E-easy usually have instructions as well as a blip that tells where and whom to contact for more info

Wesley Wiser (Dec 14 2018 at 15:26, on Zulip):

whom to ask and where to ask :)

I've run into that personally. +1 from me

nikomatsakis (Dec 14 2018 at 15:26, on Zulip):

so actually, speaking of zulip streams, I wonder if some kind of #t-compiler/beginners stream might be nice

nagisa (Dec 14 2018 at 15:27, on Zulip):

This is especially relevant now that we are split over 2/3 venues

davidtwco (Dec 14 2018 at 15:27, on Zulip):

I think for some small-to-medium implementation work that normally one experienced person handles, it could be good to use that as an opportunity to pair up with someone that's got some intermediate experience in the compiler and work on that together. When @Oli and @RalfJ (both of whom are of course very experienced) were working together on const-eval, I felt that things like that could be beneficial to contributors with some experience to get hands-on in new areas where most of the work is normally just bug-fixes.

nikomatsakis (Dec 14 2018 at 15:27, on Zulip):

Yes, so, it seems like a perfect "WG"

nikomatsakis (Dec 14 2018 at 15:28, on Zulip):

but I'm not sure that either @Oli or @RalfJ is necessarily up to trying to do more organizational work per se

davidtwco (Dec 14 2018 at 15:28, on Zulip):

I was just using them as an example as it was observing that work that made me think of it.

nikomatsakis (Dec 14 2018 at 15:28, on Zulip):

(I know both have many demands on their time, etc)

Ariel Ben-Yehuda (Dec 14 2018 at 15:28, on Zulip):

so actually, speaking of zulip streams, I wonder if some kind of #t-compiler/beginners stream might be nice

I think a #t-compiler/help might be better. Even non-beginners sometimes need help in areas they are not experienced in.

nikomatsakis (Dec 14 2018 at 15:28, on Zulip):

Yes, I'm just thinking out loud. It does feel like we should be able to call better attention to places where we have introductory work available

nikomatsakis (Dec 14 2018 at 15:29, on Zulip):

think a #t-compiler/help might be better. Even non-beginners sometimes need help in areas they are not experienced in.

agreed

nikomatsakis (Dec 14 2018 at 15:29, on Zulip):

one other concept that I've been wondering about:

nikomatsakis (Dec 14 2018 at 15:30, on Zulip):

I wonder if there is value in having a more refined concept of a "reviewer"? I guess normally that's sort of just a mentor.

nikomatsakis (Dec 14 2018 at 15:30, on Zulip):

Mostly I'm thinking about whether there are times where people have an interest in an area but not the energy or time to be actively pursuing it, and I wonder if it's worth formalizing that,

mw (Dec 14 2018 at 15:30, on Zulip):

in an ideal world, reviewer and mentor would be different people

nikomatsakis (Dec 14 2018 at 15:31, on Zulip):

but now that I say it out loud it seems sort of irrelevant for this particular discussion. More germane perhaps to things like traits working group (where e.g. I might like to arrange to "review" what we've been doing with @Ariel Ben-Yehuda regularly)

nikomatsakis (Dec 14 2018 at 15:31, on Zulip):

in an ideal world, reviewer and mentor would be different people

yes I wonder about that sometimes :)

Ariel Ben-Yehuda (Dec 14 2018 at 15:31, on Zulip):

I wonder if there is value in having a more refined concept of a "reviewer"

In what sort of way?

davidtwco (Dec 14 2018 at 15:32, on Zulip):

It would be nice for a sort of mentoring that targets contributors that are trying to branch out into new areas of the compiler - for example, I try to avoid taking E-mentor issues now - I've been contributing to the compiler for long enough (not that long and still inexperienced, but still) that I feel I should leave those to people who're just starting out - but that makes it a little difficult to find good issues in those other parts of the compiler.

nikomatsakis (Dec 14 2018 at 15:33, on Zulip):

so ok to loop back a bit and try to summarize what I recall as the major points so far:

davidtwco (Dec 14 2018 at 15:33, on Zulip):

It might be more appealing for some people to mentor from some experience level rather than absolute beginner in the compiler?

davidtwco (Dec 14 2018 at 15:33, on Zulip):

(just brainstorming)

nikomatsakis (Dec 14 2018 at 15:33, on Zulip):

Yes, interesting, and very true.

nikomatsakis (Dec 14 2018 at 15:33, on Zulip):

This is sort of what I had hoped the "expert list" might lead to

nikomatsakis (Dec 14 2018 at 15:34, on Zulip):

in particular, e.g., maybe we say "well maybe we can find some intermediate/challenging problems in the area of name resolution for davidtwco to tackle" and kill 2 birds with 1 stone or something. But maybe it's best to try and separate them.

nikomatsakis (Dec 14 2018 at 15:34, on Zulip):

I like the idea of having distinct e-mentor levels

Ariel Ben-Yehuda (Dec 14 2018 at 15:34, on Zulip):

I'm not sure, we've put E-mentor on some "intermediate" issues

nikomatsakis (Dec 14 2018 at 15:34, on Zulip):

it seems like part of the problem is just "advertising" too, getting people with "here is work I would love to see done but don't have to do" connected to people who might do it?

nikomatsakis (Dec 14 2018 at 15:35, on Zulip):

I'm not sure, we've put E-mentor on some "intermediate" issues

yes, sometimes.

QuietMisdreavus (Dec 14 2018 at 15:35, on Zulip):

maybe the idea of combining E-mentor with "higher difficulty" labels like E-medium/E-hard would convey this?

nikomatsakis (Dec 14 2018 at 15:35, on Zulip):

makes sense

Santiago Pastorino (Dec 14 2018 at 15:35, on Zulip):

I like the idea of having distinct e-mentor levels

I think it could be nice if new contributors, when they start to familiarize with some concepts can quickly start helping mentoring other people too

nikomatsakis (Dec 14 2018 at 15:36, on Zulip):

It might be more appealing for some people to mentor from some experience level rather than absolute beginner in the compiler?

I'm trying to think: what is stopping this from happening. It doesn't feel like github issue labels are the full answer though =)

Ariel Ben-Yehuda (Dec 14 2018 at 15:36, on Zulip):

I think we have
1) "small" issues (glorified typo fixes) so you can get to know how to work with the compiler.
2) medium-size issues where there are mentor notes
3) large "implement a feature, given some mentor notes" issues

Wesley Wiser (Dec 14 2018 at 15:36, on Zulip):

Part of it might be that it's hard to tell who wants to mentor and who wants to be mentored

davidtwco (Dec 14 2018 at 15:37, on Zulip):

I'm trying to think: what is stopping this from happening. It doesn't feel like github issue labels are the full answer though =)

If someone experienced is looking for someone to mentor who isn't just starting out, then there's no real "directory" of who those people are unless you happen to just recognize someone's name after them being in a working group or in Discord/Zulip for some time.

nikomatsakis (Dec 14 2018 at 15:37, on Zulip):

yep

nikomatsakis (Dec 14 2018 at 15:37, on Zulip):

so one thing we might also consider:

nikomatsakis (Dec 14 2018 at 15:37, on Zulip):

creating a kind of list of "mid-level" compiler hackers?

davidtwco (Dec 14 2018 at 15:38, on Zulip):

A sort of equivalent to the docs team's "documentation peers" and language team's "language shepards"?

Sunjay Varma (Dec 14 2018 at 15:38, on Zulip):

What defines a mid-level compiler hacker?

nikomatsakis (Dec 14 2018 at 15:38, on Zulip):

I'm fishing around for a good term for this. I want to say journeyman but I'm annoyed because it's gendered.

nikomatsakis (Dec 14 2018 at 15:38, on Zulip):

I don't know exactly, that's a good question

mw (Dec 14 2018 at 15:38, on Zulip):

the expert list could also include people who'd like to be experts in some area

nikomatsakis (Dec 14 2018 at 15:38, on Zulip):

the expert list could also include people who'd like to be experts in some area

ah, interesting

nikomatsakis (Dec 14 2018 at 15:39, on Zulip):

What defines a mid-level compiler hacker?

I'm debating between it being 'opt in' or something that is given as 'recognition'. kind of like r+, though it feels more meaningful than r+

mw (Dec 14 2018 at 15:39, on Zulip):

apprentices :)

nikomatsakis (Dec 14 2018 at 15:39, on Zulip):

I've long wished for some intermediate steps along the way towards compiler membership

nikomatsakis (Dec 14 2018 at 15:39, on Zulip):

but one thing that I've been missing is how to incorporate it into processes

nikomatsakis (Dec 14 2018 at 15:39, on Zulip):

apprentices :)

yep, that was my next suggestion...

davidtwco (Dec 14 2018 at 15:40, on Zulip):

I'm debating between it being 'opt in' or something that is given as 'recognition'. kind of like r+, though it feels more meaningful than r+

I suspect if it was opt-in then the list would get large and unwieldly quite quickly.

nikomatsakis (Dec 14 2018 at 15:40, on Zulip):

yeah, I'd rather it be the sort of thing where: as a working group winds down, you look at the really active people, and you add them to this list

nikomatsakis (Dec 14 2018 at 15:40, on Zulip):

and (ideally) we have some times that we revisit it

nikomatsakis (Dec 14 2018 at 15:40, on Zulip):

e.g., one of the original hopes for this very steering meeting, as we get into our stride

nikomatsakis (Dec 14 2018 at 15:41, on Zulip):

is that it would be a time to check on our goals and compare our progress

davidtwco (Dec 14 2018 at 15:41, on Zulip):

Things like that where active contributors are recognized in little ways is hugely beneficial.

nikomatsakis (Dec 14 2018 at 15:41, on Zulip):

it might also be a time for people to talk about e.g. "well I was thinking about doing X, is there someone who wants to work on it with me?"

nikomatsakis (Dec 14 2018 at 15:41, on Zulip):

e.g., one of the original hopes for this very steering meeting, as we get into our stride

I am imagining this being more true in 2019, particularly after the all hands

Ariel Ben-Yehuda (Dec 14 2018 at 15:42, on Zulip):

this was one of my goals with the working group "kanban board"

nikomatsakis (Dec 14 2018 at 15:42, on Zulip):

( looking over the thesaurs entries for apprentice, I see nothing better. =) )

davidtwco (Dec 14 2018 at 15:43, on Zulip):

What I also don't want to do, in making these suggestions - all somewhat selfishly motivated as most of them I feel would help me in the position I'm in - is in any way put pressure on those in the compiler team (who are doing great work) to take on mentoring and those sorts of responsibilities if they don't want to.

nikomatsakis (Dec 14 2018 at 15:43, on Zulip):

Heh =) I think it has to be recognized that being on the compiler team doesn't necessarily mean you have to do mentoring etc.

nikomatsakis (Dec 14 2018 at 15:44, on Zulip):

but I do think that working with other people, if we can streamline the system, can be way more fun than working alone

nikomatsakis (Dec 14 2018 at 15:44, on Zulip):

ok, well, check-in: it's been ~30 minutes (a bit more)

nikomatsakis (Dec 14 2018 at 15:44, on Zulip):

we have 15 left

nikomatsakis (Dec 14 2018 at 15:44, on Zulip):

do we want to turn to another topic?

nikomatsakis (Dec 14 2018 at 15:45, on Zulip):

( I'm feeling reasonably good about what we've said so far, I'd be happy to keep going, but I think we also reached a reasonable point with a few actionable steps. )

mw (Dec 14 2018 at 15:45, on Zulip):

15min is not enough for end-to-end query discussions, I think

nikomatsakis (Dec 14 2018 at 15:45, on Zulip):

Perhaps 15 minutes is too short to reall. yes, that

mw (Dec 14 2018 at 15:45, on Zulip):

(and I have to run after the mtg)

oli (Dec 14 2018 at 15:45, on Zulip):

we should move the query stuff to some async thing I think

nikomatsakis (Dec 14 2018 at 15:46, on Zulip):

so, there is a meta point

mw (Dec 14 2018 at 15:46, on Zulip):

yup

nikomatsakis (Dec 14 2018 at 15:46, on Zulip):

something like archtecting the query system feels like a place where we could do a bit more up-front design, or at least design documentation

nikomatsakis (Dec 14 2018 at 15:46, on Zulip):

I'm not quite sure what form that should take but

nikomatsakis (Dec 14 2018 at 15:46, on Zulip):

I've been hoping to leverage the rustc-guide

nikomatsakis (Dec 14 2018 at 15:46, on Zulip):

e.g., create a PR that describes what you plan to do (written as if it is done, with a disclaimer)

oli (Dec 14 2018 at 15:47, on Zulip):

/me wants more graphs, less text

nikomatsakis (Dec 14 2018 at 15:47, on Zulip):

/me wants more graphs, less text

say more?

oli (Dec 14 2018 at 15:47, on Zulip):

I can understand systems faster if there's some form of graphical representation

nagisa (Dec 14 2018 at 15:47, on Zulip):

looking at graphs is faster than reading text

oli (Dec 14 2018 at 15:47, on Zulip):

I have been using graphviz a lot for that

nikomatsakis (Dec 14 2018 at 15:47, on Zulip):

I wouldn't make this a pre-requisite to opening a PR precisely, but I'm interested in seeing the docs get written before the PR lands, or as part of the means of how we discuss what to do

oli (Dec 14 2018 at 15:47, on Zulip):

it doesn't need to be formal

oli (Dec 14 2018 at 15:47, on Zulip):

and not complete

Vadim Petrochenkov (Dec 14 2018 at 15:48, on Zulip):

a bit more up-front design, or at least design documentation

This is something #56732 is certainly lacking.
+2,996 −1,814 diff with no design overview, motivation, goals.

nikomatsakis (Dec 14 2018 at 15:48, on Zulip):

yes, I see. I agree definitely and am curious if we can find nice ways to embed graphs etc

oli (Dec 14 2018 at 15:48, on Zulip):

the text can be complete

mw (Dec 14 2018 at 15:48, on Zulip):

would help to have a good go-to tool for that

nagisa (Dec 14 2018 at 15:48, on Zulip):

case in point… gimme a sec… stack layout graph for openpower ABI.

mw (Dec 14 2018 at 15:48, on Zulip):

my ascii art approach does not scale :)

nikomatsakis (Dec 14 2018 at 15:48, on Zulip):

This is something #56732 is certainly lacking.
+2,996 −1,814 with no design overview, motivation, goals.

definitely, though the problem is not unique to that PR

nikomatsakis (Dec 14 2018 at 15:49, on Zulip):

so, to make the question a bit more pointed:

nikomatsakis (Dec 14 2018 at 15:49, on Zulip):

should we try to do something like this for end-to-end queries?

mw (Dec 14 2018 at 15:49, on Zulip):

a rustc-guide entry might be a good level of abstraction for describing a design

nikomatsakis (Dec 14 2018 at 15:49, on Zulip):

prepare some kind of design document?

nikomatsakis (Dec 14 2018 at 15:49, on Zulip):

as a rustc guide entry?

mw (Dec 14 2018 at 15:49, on Zulip):

sgtm

nikomatsakis (Dec 14 2018 at 15:49, on Zulip):

maybe it makes sense for someone to work with @Zoxc on this

Wesley Wiser (Dec 14 2018 at 15:50, on Zulip):

would help to have a good go-to tool for that

I know nothing about the tool but lucidchart has a nice GitHub integration

nikomatsakis (Dec 14 2018 at 15:50, on Zulip):

I could imagine e.g. @Zoxc preparing some kind of outline, and it getting fleshed out, I don't know, that's an interesting question.

Wesley Wiser (Dec 14 2018 at 15:50, on Zulip):

https://blog.github.com/#lucidchart

oli (Dec 14 2018 at 15:50, on Zulip):

I'm using https://dreampuf.github.io/GraphvizOnline/ but that has zero integration

nikomatsakis (Dec 14 2018 at 15:50, on Zulip):

I know nothing about the tool but lucidchart has a nice GitHub integration

omg I can't believe we haven't mentioned https://crates.io/crates/tango yet

nikomatsakis (Dec 14 2018 at 15:50, on Zulip):

where is @pnkfelix when you need them!

nikomatsakis (Dec 14 2018 at 15:51, on Zulip):

I am definitely interested in finding a slick charting/graph software to use with rustc-guide

nagisa (Dec 14 2018 at 15:51, on Zulip):

https://blog.github.com/#lucidchart

not something you can embed into code though

mw (Dec 14 2018 at 15:51, on Zulip):

hm, so I think a rustc-guide PR is good for describing a design

mw (Dec 14 2018 at 15:51, on Zulip):

but not necessarily for coming up with it

davidtwco (Dec 14 2018 at 15:52, on Zulip):

It'd be nice IMO if it wasn't based on some external service but a local tool that we can run.

nikomatsakis (Dec 14 2018 at 15:52, on Zulip):

yep

nikomatsakis (Dec 14 2018 at 15:52, on Zulip):

but not necessarily for coming up with it

I agree it's probably not the starting point per se

nikomatsakis (Dec 14 2018 at 15:52, on Zulip):

are you thinking e.g. internals thread?

nagisa (Dec 14 2018 at 15:52, on Zulip):

literate programming is great, but not for everyone

mw (Dec 14 2018 at 15:52, on Zulip):

are you thinking e.g. internals thread?

yes, that's what I wanted to suggest

oli (Dec 14 2018 at 15:52, on Zulip):

It'd be nice IMO if it wasn't based on some external service but a local tool that we can run.

graphviz is that. The link I shared is just one of the many online editors

nikomatsakis (Dec 14 2018 at 15:53, on Zulip):

literate programming is great, but not for everyone

I didn't mean to suggest that aspect of tango; it has some kind of ascii-art-to-chart stuff too I think. Anyway.

nikomatsakis (Dec 14 2018 at 15:53, on Zulip):

yes, that's what I wanted to suggest

I feel like the internals thread we did on the parallel query stuff was helpful

Esteban Küber (Dec 14 2018 at 15:53, on Zulip):

not something you can embed into code though

Just having the path in the code to a png living in the same repo would be an improvement

nikomatsakis (Dec 14 2018 at 15:53, on Zulip):

I feel like the internals thread we did on the parallel query stuff was helpful

It would've been better still if we did a PR afterwards describing the final design in rustc-guide

mw (Dec 14 2018 at 15:53, on Zulip):

yes, that's what I wanted to suggest

I feel like the internals thread we did on the parallel query stuff was helpful

Yes, it wasn't perfect but definitely helpful.

davidtwco (Dec 14 2018 at 15:54, on Zulip):

Would be nice if ```graphviz blocks got rendered in rustdoc output.

mw (Dec 14 2018 at 15:54, on Zulip):

@nikomatsakis it's not too late for that :)

nikomatsakis (Dec 14 2018 at 15:54, on Zulip):

indeed

nikomatsakis (Dec 14 2018 at 15:54, on Zulip):

Would be nice if ```graphviz blocks got rendered in rustdoc output.

I wonder if we can extend mdbook to do that

nikomatsakis (Dec 14 2018 at 15:55, on Zulip):

who maintains mdbook anyway

nikomatsakis (Dec 14 2018 at 15:55, on Zulip):

I forget their name, have to look it up

QuietMisdreavus (Dec 14 2018 at 15:55, on Zulip):

who maintains mdbook anyway

in a sense, docs team, but i think one or two are the real frequent contributors

QuietMisdreavus (Dec 14 2018 at 15:55, on Zulip):

(for example, i haven't touched it before)

davidtwco (Dec 14 2018 at 15:55, on Zulip):

I think there should also be some effort to leave doc comments in the compiler too - I find I'm reading the compiler docs much more than the rustc guide just as a result of always having the compiler docs open.

mw (Dec 14 2018 at 15:56, on Zulip):

are compiler docs hosted somewhere?

nikomatsakis (Dec 14 2018 at 15:56, on Zulip):

it's not too late for that :)

so, back to the topic of process, for major design things:

QuietMisdreavus (Dec 14 2018 at 15:56, on Zulip):

are compiler docs hosted somewhere?

https://doc.rust-lang.org/nightly/nightly-rustc/rustc/

nikomatsakis (Dec 14 2018 at 15:56, on Zulip):

@mw https://doc.rust-lang.org/nightly/nightly-rustc/rustc/

nikomatsakis (Dec 14 2018 at 15:56, on Zulip):

@davidtwco yes, definitely, I use that a lot and would like to see a more concerted effort

nikomatsakis (Dec 14 2018 at 15:56, on Zulip):

at the same time, I feel like higher-level docs don't fit so well there

nikomatsakis (Dec 14 2018 at 15:56, on Zulip):

it's tough to balance though sometimes what should go where :/

davidtwco (Dec 14 2018 at 15:57, on Zulip):

Yeah, there's a certain kind of documentation that makes sense in a doc comment.

nikomatsakis (Dec 14 2018 at 15:57, on Zulip):

I'd like to see links back and forth between them, as well

QuietMisdreavus (Dec 14 2018 at 15:57, on Zulip):

that was why i mentioned #[warn(missing_docs)] earlier, lol

mw (Dec 14 2018 at 15:57, on Zulip):

It would be great to add actual links to relevant rustc-guide sections to the rustc docs

nikomatsakis (Dec 14 2018 at 15:57, on Zulip):

so I really do like the idea of making working groups around some of these things:

nikomatsakis (Dec 14 2018 at 15:57, on Zulip):

e.g., a goal of getting 100% missing_docs coverage

nikomatsakis (Dec 14 2018 at 15:57, on Zulip):

driven by somebody

Esteban Küber (Dec 14 2018 at 15:57, on Zulip):

Would it be ok to look at some structs in rustc that are a bit more esoteric without docs, filing tickets for them pinging the appropriate people based in git blame?

nagisa (Dec 14 2018 at 15:57, on Zulip):

@nikomatsakis I found it very easy to integrate high-level documentation into rustdoc output

nagisa (Dec 14 2018 at 15:58, on Zulip):

including stuff like changelogs etc

nagisa (Dec 14 2018 at 15:58, on Zulip):

basically I tend to do

/// high level documentation
mod readme {}

or whatever

nikomatsakis (Dec 14 2018 at 15:58, on Zulip):

It would be great to add actual links to relevant rustc-guide sections to the rustc docs

we do do this sometimes, the rustc-guide is hosted etc. We are also checking that links in the rustc-guide (which go to the rustc rustdocs) don't go dead, or we had plans to do so, and reporting it on PRs when they get broken

Wesley Wiser (Dec 14 2018 at 15:58, on Zulip):

e.g., a goal of getting 100% missing_docs coverage

Seems like this might be an "apprentice" level task: write the docs for a module; reading the code or pinging the appropriate people to learn how that module works.

nikomatsakis (Dec 14 2018 at 15:59, on Zulip):

I found it very easy to integrate high-level documentation into rustdoc output

this is an alternative -- I've found that less good overall to structured docs though. Just the table-of-contents alone on rustc-guide feels great

davidtwco (Dec 14 2018 at 15:59, on Zulip):

@nikomatsakis I found it very easy to integrate high-level documentation into rustdoc output

I've found this to be the case for smaller crates where the root of the crate is always an entrypoint. With the compiler docs being so large, I normally start somewhere in the middle of it all on some type, I very rarely find myself on the page for a module.

nagisa (Dec 14 2018 at 15:59, on Zulip):

We should make sure to cross-link documentation aggressively

nikomatsakis (Dec 14 2018 at 15:59, on Zulip):

yes, and I really like the idea of having ensuring those links don't go dead automatically

nagisa (Dec 14 2018 at 16:00, on Zulip):

not only have a list of all documentation documents on the topic, but also crosslink from within the documentation of each other

nikomatsakis (Dec 14 2018 at 16:00, on Zulip):

though I'm not sure if the process is right now -- in general I feel like our "follow through" on downstream breakage resulting from PRs is ungreat

nikomatsakis (Dec 14 2018 at 16:00, on Zulip):

(hmm maybe we need some labels for that, so we can track it in the triage meeting? e.g., when a PR breaks rustfmt or rustc-guide or whatever)

QuietMisdreavus (Dec 14 2018 at 16:00, on Zulip):

(with intra-doc links you may even be able to link to [some_module::readme] fairly easily, lol)

nagisa (Dec 14 2018 at 16:00, on Zulip):

though I'm not sure if the process is right now -- in general I feel like our "follow through" on downstream breakage resulting from PRs is ungreat

should get some autolinking support working somehow

nagisa (Dec 14 2018 at 16:01, on Zulip):

writing down link urls manually is untenable

nikomatsakis (Dec 14 2018 at 16:01, on Zulip):

hmm @QuietMisdreavus I sense another feature request coming on :)

nikomatsakis (Dec 14 2018 at 16:01, on Zulip):

although, I've not found it that bad to copy down rustdoc links

nikomatsakis (Dec 14 2018 at 16:01, on Zulip):

ok, it's 11am

nikomatsakis (Dec 14 2018 at 16:01, on Zulip):

I have to run and do a few other things (among them, more :coffee:)

Sunjay Varma (Dec 14 2018 at 16:02, on Zulip):

If all the docs are in the code, some guidance about where to start reading the code and in what order is also a good idea. Rustc is big and intimidating. These tips could go in the rustc guide

nikomatsakis (Dec 14 2018 at 16:02, on Zulip):

:zombie:

QuietMisdreavus (Dec 14 2018 at 16:02, on Zulip):

inter-doc links, then, to have a kind of url scheme to link to related docs? :thinking:

nikomatsakis (Dec 14 2018 at 16:02, on Zulip):

Any last thoughts before we call it?

davidtwco (Dec 14 2018 at 16:02, on Zulip):

Thanks all, I enjoyed these discussions.

mw (Dec 14 2018 at 16:02, on Zulip):

interesting meeting!

mw (Dec 14 2018 at 16:02, on Zulip):

I think the steering/triage meeting split was a great idea!

Esteban Küber (Dec 14 2018 at 16:03, on Zulip):

:wave:

nikomatsakis (Dec 14 2018 at 16:03, on Zulip):

I'll come back in a bit and try to summarize meeting as I have been doing, posting the summary to the internals thread and also adding to the compiler team repository.

BTW, If there is any feedback on these steering meetings, how they could be more useful, etc, I'd love to hear it, as well as the compiler team in general!

Wesley Wiser (Dec 14 2018 at 16:03, on Zulip):

:wave:

QuietMisdreavus (Dec 14 2018 at 16:03, on Zulip):

i'm glad i was around for one of these, lol :wave:

pnkfelix (Dec 17 2018 at 11:31, on Zulip):

literate programming is great, but not for everyone

I didn't mean to suggest that aspect of tango; it has some kind of ascii-art-to-chart stuff too I think. Anyway.

That's this project: https://github.com/pnkfelix/mon-artist which I have at times hooked into tango.

Last update: Nov 22 2019 at 05:50UTC