Stream: wg-traits

Topic: goals and next steps


nikomatsakis (Feb 07 2020 at 21:07, on Zulip):

I've been thinking a lot about next steps and I want to start a conversation on the topic.

nikomatsakis (Feb 07 2020 at 21:08, on Zulip):

For a long time we've been kind of struggling with the queston of "is wg-traits better named wg-chalk"?

nikomatsakis (Feb 07 2020 at 21:08, on Zulip):

That is, how mcuh is this about improving rustc "in situ" and how much about adopting chalk

nikomatsakis (Feb 07 2020 at 21:08, on Zulip):

I've been thinking a bit about what "chalk" even is

nikomatsakis (Feb 07 2020 at 21:08, on Zulip):

I think that it is a bunch of things :)

nikomatsakis (Feb 07 2020 at 21:08, on Zulip):
nikomatsakis (Feb 07 2020 at 21:09, on Zulip):
nikomatsakis (Feb 07 2020 at 21:10, on Zulip):
nikomatsakis (Feb 07 2020 at 21:10, on Zulip):
nikomatsakis (Feb 07 2020 at 21:11, on Zulip):

It seems to me that this first one ("defining semantics") has clear value whatever happens -- but it also kind of requires some means of validating that the semantics are what we really expect. The best way to do that is to make it testable (hence \#3 and \#4), but not of course the only way.

nikomatsakis (Feb 07 2020 at 21:12, on Zulip):

I do have some doubts about \#3 (re-using a general purpose solver) -- not so much about the core concept of it, but I have some doubts that the existing solver will work for us

nikomatsakis (Feb 07 2020 at 21:13, on Zulip):

Also, I am very wary of perfect being enemy of good, second-system syndrome, and the like

nikomatsakis (Feb 07 2020 at 21:13, on Zulip):

At the same time I think there is so much promise in the idea of a re-usable, sharable library

nikomatsakis (Feb 07 2020 at 21:13, on Zulip):

So this leads me to think that the best is to pursue a kind of two-prong strategy:

nikomatsakis (Feb 07 2020 at 21:13, on Zulip):
nikomatsakis (Feb 07 2020 at 21:13, on Zulip):
nikomatsakis (Feb 07 2020 at 21:14, on Zulip):

I think part of where I always get bogged down here is trying to chart a bit too far into the future

nikomatsakis (Feb 07 2020 at 21:14, on Zulip):

I think probably the best idea is to set some "general goals" that we are moving towards for each of those two bullets

nikomatsakis (Feb 07 2020 at 21:14, on Zulip):

and chart out 2 or 3 actionable items

nikomatsakis (Feb 07 2020 at 21:14, on Zulip):

and once those are done, we lay out the rest of the steps as we go

Jack Huey (Feb 07 2020 at 21:14, on Zulip):

So this leads me to think that the best is to pursue a kind of two-prong strategy:

I think this has been a clear takeaway from recent meetings

nikomatsakis (Feb 07 2020 at 21:14, on Zulip):

this suggests a kind of "sprint-like" methodology, as we've tried before

nikomatsakis (Feb 07 2020 at 21:14, on Zulip):

I have some pretty specific ideas on the immediate steps for rustc

nikomatsakis (Feb 07 2020 at 21:15, on Zulip):

I also have some ideas for the steps on chalk, though I feel a bit more flexible there, I think there's some more room for experimentation

nikomatsakis (Feb 07 2020 at 21:16, on Zulip):

The final question that I still struggle with is how I can dedicate more reserved time. I feel like for my own emotional well being I kind of need to do that. I cannot live with chalk being unresolved another year:P I think I can pretty clearly dedicate 2 days a week (Monday, Friday). I would like to find a way to do 3, but I'm not sure that's realistic. Maybe 2.5 is plausible.

nikomatsakis (Feb 07 2020 at 21:18, on Zulip):

Not to suggest everything is blocked on me :)

nikomatsakis (Feb 07 2020 at 21:18, on Zulip):

But I do feel like I am a bottleneck and I want to work hard at reversing that

nikomatsakis (Feb 07 2020 at 21:20, on Zulip):

So, somewhat specifically, I think the immediate changes we should be making on rustc are:

nikomatsakis (Feb 07 2020 at 21:21, on Zulip):

On chalk I think the picture is a bit more complex :)

nikomatsakis (Feb 07 2020 at 21:21, on Zulip):

But also I think we've been charting a pretty clear course around

nikomatsakis (Feb 07 2020 at 21:22, on Zulip):
nikomatsakis (Feb 07 2020 at 21:22, on Zulip):

and we should probably keep at that

nikomatsakis (Feb 07 2020 at 21:23, on Zulip):

(One of the things I'd love to discuss, but not this second, is a new idea I had for an alternative chalk solver design; kind of a return to one of our older designs, but with a twist, that I think may help improve performance and address the associated type normalization problems)

nikomatsakis (Feb 07 2020 at 21:24, on Zulip):

I think the other big items that are not on this list are not so much "engineering and refactoring" as playing with the first bullet I listed above, of using chalk to define Rust semantics -- I think there are interesting open areas we're exploring around specialization, coherence, and negative reasoning, and I'd like to see us leveraging chalk for that, but I don't know how much we have bandwidth to pursue those as explicit goals

nikomatsakis (Feb 07 2020 at 21:26, on Zulip):

Anyway, that's all I have to say for now ;) hopefully that made sense to people? I may try to start opening issues around the predicate refactorings above and rustc

nikomatsakis (Feb 07 2020 at 21:26, on Zulip):

I'd love to find someone who wants to take them on

detrumi (Feb 07 2020 at 21:26, on Zulip):

There might be more bandwidth for that once chalk is better integrated in rustc, because it opens up possibilities

Jack Huey (Feb 07 2020 at 21:26, on Zulip):

I think the other big items that are not on this list are not so much "engineering and refactoring" as playing with the first bullet I listed above, of using chalk to define Rust semantics -- I think there are interesting open areas we're exploring around specialization, coherence, and negative reasoning, and I'd like to see us leveraging chalk for that, but I don't know how much we have bandwidth to pursue those as explicit goals

See, to me, that seems like (for lack of a better phrase) Chalk's purpose as a library: to provide a compiler-somewhat-independent way of exploring these areas

Jack Huey (Feb 07 2020 at 21:27, on Zulip):

(One of the things I'd love to discuss, but not this second, is a new idea I had for an alternative chalk solver design; kind of a return to one of our older designs, but with a twist, that I think may help improve performance and address the associated type normalization problems)

interesting, would love to hear :)

nikomatsakis (Feb 07 2020 at 21:27, on Zulip):

I guess the question I'm a bit interested is how much to treat those two things (improving rustc, improving chalk) as distinct areas of activity, or how much to overlap them (i.e., should we create a wg-chalk?). I see appeal both ways.

nikomatsakis (Feb 07 2020 at 21:28, on Zulip):

There might be more bandwidth for that once chalk is better integrated in rustc, because it opens up possibilities

yeah, so I think we should be aggressively pursuing this -- but I also think that if we are also working on improving rustc, it helps because I think the initial integration will be inefficient

nikomatsakis (Feb 07 2020 at 21:28, on Zulip):

and that's ok :)

detrumi (Feb 07 2020 at 21:28, on Zulip):

I don't think we should create a wg-chalk. Maybe if a split become possible when more work is done on the rustc side, but as of now there's no reason to

nikomatsakis (Feb 07 2020 at 21:28, on Zulip):

I lean that way too, I think ideally we'd have a group of folks comfortable with both codebases

nikomatsakis (Feb 07 2020 at 21:29, on Zulip):

because I suspect the path to success here is going to be moving them closer and closer together until they can be made one with relative ease

Jack Huey (Feb 07 2020 at 21:29, on Zulip):

I also lean against splitting, if only nothing else because there's already so few people involved

Jack Huey (Feb 07 2020 at 21:29, on Zulip):

but also because there's quite a bit of overlap in "theory"

nikomatsakis (Feb 07 2020 at 21:32, on Zulip):

OK, then we're all in agreement, it seems

nikomatsakis (Feb 07 2020 at 21:33, on Zulip):

See, to me, that seems like (for lack of a better phrase) Chalk's purpose as a library: to provide a compiler-somewhat-independent way of exploring these areas

to circle back to this, I think this is true, but it definitely will take work to (e.g.) pursue modeling specialization in chalk, and I'm not sure it's the work we should be doing right now (as opposed to trying to improve rustc's solver and integrate chalk to help validate the "lowerings" we have right now)

nikomatsakis (Feb 07 2020 at 21:34, on Zulip):

but I don't think that's obvious

nikomatsakis (Feb 07 2020 at 21:36, on Zulip):

something else I'm pondering is how to "organize" the group's efforts

nikomatsakis (Feb 07 2020 at 21:39, on Zulip):

I feel a strong need to have a relatively simple place listing out the "things the working group is doing", and I feel like the rust issue tracker is kind of overwhelming. I'm basically stuck trying to decide where to open up issues to describe the steps I wrote stuff about above :P

nikomatsakis (Feb 07 2020 at 21:39, on Zulip):

I sort of want to use https://github.com/rust-lang/wg-traits, I admit

nikomatsakis (Feb 07 2020 at 21:39, on Zulip):

maybe I'll just write stuff there for now

nikomatsakis (Feb 07 2020 at 21:40, on Zulip):

but it feels sort of wrong, maybe the answer is just to use the GH projects there and leave the issues on the projects they affect

detrumi (Feb 07 2020 at 21:42, on Zulip):

GH projects seem a bit easier to edit, especially now that we got added to the GH team

nikomatsakis (Feb 07 2020 at 21:43, on Zulip):

I'm thinking a bit now -- @Matthew Jasper is working e.g. on implementing the "always applicable" semantics for specialization, as they mentioned elsewhere -- that seems like work that is worth tracking here too

nikomatsakis (Feb 07 2020 at 21:44, on Zulip):

one final question is whether we should consider a "sprint-like" setup. It seems interesting to me to use sprints as a way to get people "hooked in"

nikomatsakis (Feb 07 2020 at 21:44, on Zulip):

we've never made much success with it

nikomatsakis (Feb 07 2020 at 21:45, on Zulip):

but I like the idea of saying (say):

i.e., rather than people kind of "showing up whenever"

nikomatsakis (Feb 07 2020 at 21:45, on Zulip):

but maybe it's solving a non-problem

Jack Huey (Feb 07 2020 at 21:47, on Zulip):

If we can split up work into 6 week chunks, then I think that could be super useful for getting people involved

detrumi (Feb 07 2020 at 21:47, on Zulip):

the main thing I like about 6-week sprints is the direction it gives. People turning up follows that

nikomatsakis (Feb 07 2020 at 21:48, on Zulip):

maybe we should try to start our first sprint next week? :)

nikomatsakis (Feb 07 2020 at 21:48, on Zulip):

give it one more try ;)

nikomatsakis (Feb 07 2020 at 21:48, on Zulip):

I continue to think it would be useful, it'll just take some discipline to make it work

Jack Huey (Feb 07 2020 at 21:48, on Zulip):

well, then we should think about goals :)

Jack Huey (Feb 07 2020 at 21:49, on Zulip):

maybe not next week though

Jack Huey (Feb 07 2020 at 21:49, on Zulip):

maybe the week after

Jack Huey (Feb 07 2020 at 21:49, on Zulip):

give us one week to plan

nikomatsakis (Feb 07 2020 at 21:49, on Zulip):

btw I'll be working weird hours the week after

nikomatsakis (Feb 07 2020 at 21:49, on Zulip):

and can't attend the meeting, for example

Jack Huey (Feb 07 2020 at 21:49, on Zulip):

then maybe a blog post to introduce the sprint

detrumi (Feb 07 2020 at 21:49, on Zulip):

ad-hoc meetings like this one work fine too

nikomatsakis (Feb 07 2020 at 21:50, on Zulip):

but honestly we could plan for the week after -- and it'd be fine

nikomatsakis (Feb 07 2020 at 21:50, on Zulip):

(though I'd not want to put everything on hold till then)

nikomatsakis (Feb 07 2020 at 21:50, on Zulip):

but if we wanted to write a blog post etc, maybe we should give ourselves a bit of time to do that

Jack Huey (Feb 07 2020 at 21:51, on Zulip):

also though, I feel like if we put out a blog post or internals post next Friday or the following Monday (or whichever week) and say "come to the Tuesday meeting if you want to get involved and/or have questions"

Jack Huey (Feb 07 2020 at 21:51, on Zulip):

then assuming people show up, we might not have a "meeting" that gets a ton of things done

Jack Huey (Feb 07 2020 at 21:52, on Zulip):

But if we do a sprint, I think we should think about how to make co-applicable to both rustc and chalk

Jack Huey (Feb 07 2020 at 21:52, on Zulip):

(if even possible)

nikomatsakis (Feb 07 2020 at 21:55, on Zulip):

maybe the answer is

nikomatsakis (Feb 07 2020 at 21:55, on Zulip):

maybe a "sprint planning meeting" isn't ideal, in short

nikomatsakis (Feb 07 2020 at 21:55, on Zulip):

sync meetings are always kind of hard to arrange anyway

nikomatsakis (Feb 07 2020 at 21:55, on Zulip):

I wonder if we could say "next week is sprint planning week, here are the tasks and the expectations, claim 'em"

nikomatsakis (Feb 07 2020 at 21:55, on Zulip):

and people can show up

nikomatsakis (Feb 07 2020 at 21:56, on Zulip):

we plan out in advance a certain number of tasks, depending on mentoring bandwidth

nikomatsakis (Feb 07 2020 at 21:56, on Zulip):

this might indeed start out fairly small but I think both of you could already mentor some tasks

nikomatsakis (Feb 07 2020 at 21:56, on Zulip):

jack certainly knows chalk-engine better than I do at this point :P

nikomatsakis (Feb 07 2020 at 21:57, on Zulip):

I do think we need to do the "write up what happened over the sprint" step though

Jack Huey (Feb 07 2020 at 21:58, on Zulip):

That's sort of what I'm thinking: decide on a few tasks of a similar theme (split between chalk and rustc), and have people claim then and give it a go

Jack Huey (Feb 07 2020 at 21:58, on Zulip):

I can definitely mentor through the engine

Jack Huey (Feb 07 2020 at 21:58, on Zulip):

probably at least in part through the other parts of chalk

Jack Huey (Feb 07 2020 at 21:59, on Zulip):

rustc not much at all

nikomatsakis (Feb 07 2020 at 21:59, on Zulip):

yep.

nikomatsakis (Feb 07 2020 at 21:59, on Zulip):

I like this idea

nikomatsakis (Feb 07 2020 at 21:59, on Zulip):

I am very into trying to find systems that help to take "capacity" into account

Jack Huey (Feb 07 2020 at 22:00, on Zulip):

Which sort of brings up what we want the sprint to be "about"

nikomatsakis (Feb 07 2020 at 22:00, on Zulip):

this is sort of what I was talking about in the beginning :)

Jack Huey (Feb 07 2020 at 22:00, on Zulip):

yes

nikomatsakis (Feb 07 2020 at 22:00, on Zulip):

i.e., those little bullet lists I made were kind of "sprint-worthy" tasks -- although, to be clear, I think some of them might take more than 6 weeks,

nikomatsakis (Feb 07 2020 at 22:00, on Zulip):

but I'd kind of be ok with "we'll push this boulder up the hill for 6 weeks"

Wesley Wiser (Feb 07 2020 at 22:01, on Zulip):

One of the issues we face doing sprints a lot at $dayjob is that a lot of the work is very interdependent and it makes it hard to distribute to people without everyone becoming blocked on each other. I don't know how much that applies here, but it might be good to try to find work that is pretty independent from each other. That will also help keep "velocity" up if people are unable to complete the work/stop showing up during the sprint.

nikomatsakis (Feb 07 2020 at 22:02, on Zulip):

but I'd kind of be ok with "we'll push this boulder up the hill for 6 weeks"

let me try to clarify what I'm saying here, I might well be wrong

nikomatsakis (Feb 07 2020 at 22:02, on Zulip):

what I'm saying is:

nikomatsakis (Feb 07 2020 at 22:02, on Zulip):

if we have some "larger goals", they obviously need to be broken into finer grained steps, to some extent

nikomatsakis (Feb 07 2020 at 22:03, on Zulip):

but e.g. a goal like "introduce implication goals into rustc" -- that's too high-level, I'm not sure what the series of commits/PRs is yet

nikomatsakis (Feb 07 2020 at 22:03, on Zulip):

I could well see though that only some prefix of them fit in 6 weeks

nikomatsakis (Feb 07 2020 at 22:03, on Zulip):

I could also see that these things are easiest to find by just starting and unrolling

nikomatsakis (Feb 07 2020 at 22:04, on Zulip):

so I'm debating how much of that to work out in advance, basically, or to just have "a step or two" available for each thing

nikomatsakis (Feb 07 2020 at 22:04, on Zulip):

ack! I gotta run to a mtg now :)

Jack Huey (Feb 07 2020 at 22:05, on Zulip):

but e.g. a goal like "introduce implication goals into rustc" -- that's too high-level, I'm not sure what the series of commits/PRs is yet

I think I missed this. Was this the lowering validation?

Jack Huey (Feb 07 2020 at 22:09, on Zulip):

We'll definitely discuss this next week. If not before, definitely at Tuesday's meeting. I'll put together 2-3 tasks (a short description of the problem and a bit of mentoring instructions) that can be done in Chalk that can be done within 6 weeks.

nikomatsakis (Feb 07 2020 at 23:32, on Zulip):

Some thoughts about this:

nikomatsakis (Feb 07 2020 at 23:32, on Zulip):

Ah, well, basically what @Jack Huey wrote :P

nikomatsakis (Feb 07 2020 at 23:32, on Zulip):

that is, I think maybe the way to do this is "sprint planning" is again to be sort of async; essentially folks can come up with a few tasks -- one (or two...) they might do, and (if applicable) some they might mentor

nikomatsakis (Feb 07 2020 at 23:33, on Zulip):

I don't know that we need more "top down" direction than that

nikomatsakis (Feb 07 2020 at 23:33, on Zulip):

I will try to make a list by Tuesday's meeting as well

nikomatsakis (Feb 08 2020 at 11:32, on Zulip):

I was thikning

nikomatsakis (Feb 08 2020 at 11:32, on Zulip):

maybe we should make a "sprint planning doc" where folks can take some notes? I think we used to have one

nikomatsakis (Feb 08 2020 at 11:33, on Zulip):

ok so we had this master paper doc and in particular this sprint planning doc

nikomatsakis (Feb 08 2020 at 11:33, on Zulip):

a lot of its contents are still relevant ;)

nikomatsakis (Feb 08 2020 at 11:34, on Zulip):

but I was imagining this time a kind fresh doc that is kind of organized by person

nikomatsakis (Feb 08 2020 at 11:34, on Zulip):

and we can add comments and thoughts, and review it during the meeting

nikomatsakis (Feb 08 2020 at 11:35, on Zulip):

though reading that makes me think it would separately be useful to be sketching out the range of "incomplete things", since some of the stuff in there (e.g., adding more builtin traits to chalk) I had sort of forgotten about

nikomatsakis (Feb 08 2020 at 11:38, on Zulip):

Here is a fresh document we can use, I'll add some thoughts of my own, @Jack Huey, @detrumi, and whomever else, please add to there.

nikomatsakis (Feb 08 2020 at 13:07, on Zulip):

(Heh, initial editing is making me realize I really want us to be drawing up the "larger plan" more explicitly as well -- but I don't think we want to block on that, so I put that down as a "sprint goal" in and of itself)

Jack Huey (Feb 08 2020 at 22:22, on Zulip):

I'll add my ideas to the doc.

Jack Huey (Feb 08 2020 at 22:22, on Zulip):

Indeed, a lot of the points from old docs are still relevant

Jack Huey (Feb 08 2020 at 22:22, on Zulip):

This one is more recent: https://hackmd.io/J1QG2rwERAKdknM_qgrhMA?both

nikomatsakis (Feb 10 2020 at 19:07, on Zulip):

Yes:)

nikomatsakis (Feb 10 2020 at 19:07, on Zulip):

So many attempts :)

nikomatsakis (Feb 10 2020 at 19:23, on Zulip):

I'm spending a little time right now trying to combine things into a kind of "master plan" of things we can do, with interconnections, perhaps to be modeled ultimately in the form of a graphviz document.

nikomatsakis (Feb 10 2020 at 19:23, on Zulip):

I feel like we are going to want this

Jack Huey (Feb 10 2020 at 19:53, on Zulip):

I'm spending a little time right now trying to combine things into a kind of "master plan" of things we can do, with interconnections, perhaps to be modeled ultimately in the form of a graphviz document.

sounds fun

nikomatsakis (Feb 10 2020 at 20:34, on Zulip):

this is actually turning out kind of good

nikomatsakis (Feb 10 2020 at 20:34, on Zulip):

I'm trying to figure out the best way to "publish it"

nikomatsakis (Feb 10 2020 at 20:35, on Zulip):

I'm shooting for the same structure the "WASM skill tree"

nikomatsakis (Feb 10 2020 at 20:36, on Zulip):

i.e., you have "goals" and then you have "themes" and within "themes" are work items

nikomatsakis (Feb 10 2020 at 20:36, on Zulip):

right now the idea is that these will get converted to a graphviz file by a very simple structure

nikomatsakis (Feb 10 2020 at 20:36, on Zulip):

this looks something like this

nikomatsakis (Feb 10 2020 at 20:36, on Zulip):

pasted image

nikomatsakis (Feb 10 2020 at 20:36, on Zulip):

those items can be hyperlinked etc

nikomatsakis (Feb 10 2020 at 20:37, on Zulip):

I'm trying to figure out how to get this into the wg-traits repository

nikomatsakis (Feb 10 2020 at 20:37, on Zulip):

I wanted to set that up as an mdbook-based page, and perhaps use viz.js

nikomatsakis (Feb 10 2020 at 20:38, on Zulip):

but I'm not 100% sure how to do that -- maybe @simulacrum or @Eric Huss can advise :)

nikomatsakis (Feb 10 2020 at 20:38, on Zulip):

in my ideal world, we'd have a toml file that gets converted to graphviz via some rust

nikomatsakis (Feb 10 2020 at 20:38, on Zulip):

and then rendered

nikomatsakis (Feb 10 2020 at 20:38, on Zulip):

I guess I should look at how forge is setup to get a feel for how practical that is

nikomatsakis (Feb 10 2020 at 20:39, on Zulip):

I suppose I could probably setup some thing that runs on travis and e.g. runs viz.js via node to preprocess and just links to the final svg output

nikomatsakis (Feb 10 2020 at 20:39, on Zulip):

but before I invest too much effort into automating stuff... :P

simulacrum (Feb 10 2020 at 20:39, on Zulip):

Not sure about mdbook. But yeah, looking at forge is probably good. My recommendation is indeed to get it working manually first :)

simulacrum (Feb 10 2020 at 20:41, on Zulip):

I suspect running graphviz locally is going to be much easier, but I could be wrong

nikomatsakis (Feb 10 2020 at 20:41, on Zulip):

well, viz.js is pretty self-contained

nikomatsakis (Feb 10 2020 at 20:42, on Zulip):

you can basically just upload a custom <script> and it will launch graphviz and render to an SVG

nikomatsakis (Feb 10 2020 at 20:43, on Zulip):

still, to start, I could setup the "read TOML file and emit/run graphviz" part of this equation, regardless

nikomatsakis (Feb 10 2020 at 20:43, on Zulip):

I guess it's not a given that I should use mdbook anyway, though I've often found it to be just be the easiest dang thing

nikomatsakis (Feb 10 2020 at 20:43, on Zulip):

maybe jekyll would be as good or better in this case

nikomatsakis (Feb 10 2020 at 20:43, on Zulip):

anyway I'm going to worry about this later, the more interesting question is to share and work through the actual work items

simulacrum (Feb 10 2020 at 20:44, on Zulip):

I recommend against jekyll, it can be a real pain to get it running locally in my experience

nikomatsakis (Feb 10 2020 at 21:01, on Zulip):

interesting

nikomatsakis (Feb 10 2020 at 21:02, on Zulip):

I guess I've found it "ok" but .. it is using ruby .. and that's always kind of a pain in my experience

simulacrum (Feb 10 2020 at 21:13, on Zulip):

yeah, ruby was the problem for me (probably mostly because I only have rust by default :)

simulacrum (Feb 10 2020 at 21:14, on Zulip):

I think Rust is the only ecosystem I've used that has completely gotten "package management" and "global, but per-user, installs" right -- everything else has bugs or incompatiblities. At least in my experience :)

Eric Huss (Feb 10 2020 at 21:48, on Zulip):

It looks like you're trying to publish a graphical work breakdown? I would encourage you to keep it as simple as possible. I assume the audience is quite small (the wg-trait team?), so I wouldn't invest too much time in it. There are countless project management tools that do this kind of thing (and also mind-mapping software), so if you could use one, that might be better than trying to rig something together with graphviz. Or just skip the graphical layout and use simple tools like GitHub Projects or a plain text document.

nikomatsakis (Feb 10 2020 at 22:27, on Zulip):

OK, after a bit of work, I've updated my (old, abandoned) skill-tree project to do roughly what I want

nikomatsakis (Feb 10 2020 at 22:27, on Zulip):

you create a toml file as input like

nikomatsakis (Feb 10 2020 at 22:28, on Zulip):
[[group]]
name = "align-rustc-predicate"
label = "Align rustc predicates with chalk predicates"
items = [
  { label = "isolate Binder into a Forall goal" },
  { label = "introduce Implication" },
  { label = "introduce Forall goals with types" },
]
nikomatsakis (Feb 10 2020 at 22:28, on Zulip):

and you get as output a graphviz file that renders sort of like what I showed above

nikomatsakis (Feb 10 2020 at 22:28, on Zulip):

skill-tree repository

nikomatsakis (Feb 10 2020 at 22:35, on Zulip):

Sadly, I have to stop for the day! I am just this much short of reaching my goal :)

nikomatsakis (Feb 10 2020 at 22:36, on Zulip):

Anyway, @Eric Huss, regarding those countless bits of software... I tried a lot of them, but I wasn't satisfied with any of them. Among other things, I didn't think that they could handle the workflow I wanted of being able to have compile teams and working groups maintain their overall plans and status as git-managed skill-trees (if this works out, I'd like to see if we can't extend skill-tree planning even a bit higher up, such as to areas like "async-await" as a whole). That said, I do hope that we can keep this quite simple.

detrumi (Feb 11 2020 at 19:06, on Zulip):

Wouldn't there be a meeting around this time?

Jack Huey (Feb 11 2020 at 19:10, on Zulip):

4PM :) (2 hours from now)

Last update: Feb 25 2020 at 03:55UTC