Stream: wg-traits

Topic: design meetting 2020.02.11


Jack Huey (Feb 11 2020 at 20:12, on Zulip):

Meeting will be in about 50 minutes, but I thought I'd at least start by linking some resources and maybe thinking about a tentative agenda. Will probably be off and on until 4

Jack Huey (Feb 11 2020 at 20:16, on Zulip):

(potential) agenda items so far:

Jack Huey (Feb 11 2020 at 20:17, on Zulip):

Last few sort of will be up to what people want to talk about since they aren't planned

Jack Huey (Feb 11 2020 at 20:17, on Zulip):

Anyone have anything else

Jack Huey (Feb 11 2020 at 20:17, on Zulip):

Sprint planning doc: https://paper.dropbox.com/doc/wg-traits-2020-sprint-planning--At9sZrDqNr_seBV~Ei7v0jjTAg-SSt74TfcovdnKKhZNyzeW

Sunjay Varma (Feb 11 2020 at 20:18, on Zulip):

(I won't be around for the meeting, but I thought I'd cc @Jane Lusby in case she can make the meeting since she mentioned getting involved)

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

Other collab resources with goals and such:

Jane Lusby (Feb 11 2020 at 20:24, on Zulip):

I'll be there

matprec (Feb 11 2020 at 20:31, on Zulip):

Hey there, i'll be reading along as well :wave:

Aaron Hill (Feb 11 2020 at 20:47, on Zulip):

I'll be there as well

Jane Lusby (Feb 11 2020 at 20:58, on Zulip):

actually had something urgent come up so I'll not be watching the chat live, but ill catch up as I get the opportunity

Jack Huey (Feb 11 2020 at 21:01, on Zulip):

Hi @WG-traits

Jack Huey (Feb 11 2020 at 21:01, on Zulip):

Meeting time :)

Jack Huey (Feb 11 2020 at 21:01, on Zulip):

@nikomatsakis you around?

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

Yep

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

I'm just catching up on what you wrote above

Jack Huey (Feb 11 2020 at 21:03, on Zulip):

Anyways, seems like we have a lot of people around, which is exciting

nikomatsakis (Feb 11 2020 at 21:03, on Zulip):

I agree with the overall agenda :)

nikomatsakis (Feb 11 2020 at 21:03, on Zulip):

I'm looking through the Spring Planning doc a bit now :)

nikomatsakis (Feb 11 2020 at 21:04, on Zulip):

Maybe a good question to start with is

nikomatsakis (Feb 11 2020 at 21:04, on Zulip):

how many people are here, and are we kind of trying to do our "first trial sprint" starting today?

Jack Huey (Feb 11 2020 at 21:05, on Zulip):

Uh, wave for this if you're here?

nikomatsakis (Feb 11 2020 at 21:05, on Zulip):

I'm mostly wondering if we can "allocate" tasks or what

nikomatsakis (Feb 11 2020 at 21:05, on Zulip):

Sounds like @Jane Lusby is pretty interested but won't be around today until later

Jack Huey (Feb 11 2020 at 21:05, on Zulip):

@matprec said they'll be around, so might just be late

nikomatsakis (Feb 11 2020 at 21:06, on Zulip):

OK.

Jane Lusby (Feb 11 2020 at 21:06, on Zulip):

im around im just mostly looking away, just ping me if its about me and ill tab over

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

Would a sprint require dividing up work at the start, or can we also decide what to focus on and leave some parts up for grabs?

Jane Lusby (Feb 11 2020 at 21:06, on Zulip):

urgent escalation from work came up

Jack Huey (Feb 11 2020 at 21:06, on Zulip):

So, I think it sort of depends on what people want to do

nikomatsakis (Feb 11 2020 at 21:06, on Zulip):

Would a sprint require dividing up work at the start, or can we also decide what to focus on and leave some parts up for grabs?

I think we can do a mix, but I think it'd be good to get a sense of "what we might do"

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

Mostly I think there are so many things we could do, that the goal of a sprint is to let us focus on doing

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

(and concentrate the time spent charting our course)

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

So, I was reading through the planning doc

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

and there seems to be a good mix of different levels of work to do

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

e.g. a lot of mine are more beginner/simple

matprec (Feb 11 2020 at 21:08, on Zulip):

/me had to restart, now reading :)

Jack Huey (Feb 11 2020 at 21:09, on Zulip):

I think a lot of people are interested with the focus on seeing Chalk integrated into rustc

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

yeah, I was thinking that I should replace the vague bullet I wrote there

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

with more of the details

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

and I think it may be worth us putting a bit of discussion on this point

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

for example, I think there is probably some set of "minimal blockers" that absolutely block integration

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

I could imagine us trying to do a preliminary integration where things aren't as efficient as they could be in some ways

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

let me be more concrete

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

brb

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

basically one of the main tasks is "mapping between Rust types and chalk types"

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

There are a few angles to this

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

e.g., rust has some types chalk doesn't yet

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

chalk differs in a few details

Jack Huey (Feb 11 2020 at 21:12, on Zulip):

sorry, work distraction. Back

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

but I've largely described the intended mapping in this book chaptter

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

I think the eventual goal would be that chalk types are rustc types

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

(they use the same library)

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

but in the shorter term I had intended that the rustc types can be mapped to chalk types -- this indirection carries some cost -- and, interestingly, it can be "incomplete"

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

i.e., maybe generator types cause a panic for now

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

this would still let us integrate chalk in the intended way and start playing with it

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

it seems to make sense to cut a beeline for that to me

Jack Huey (Feb 11 2020 at 21:13, on Zulip):

Yeah, as seen in the other thread, I tried to start upgrading the chalk integration in rustc. But ran into some roadblocks

Aaron Hill (Feb 11 2020 at 21:13, on Zulip):

I think the eventual goal would be that chalk types are rustc types

Would that involve creating some rustc_ty crate that both chalk and rustc depend on?

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

I think there are still a few things that we probably do have to fix, e.g. the use of binders in chalk+rustc should really line up

Aaron Hill (Feb 11 2020 at 21:13, on Zulip):

or would rustc use types re-exported from chalk?

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

well

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

ultiamtely i'd want the latter

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

but I'm not sure how different those two things are

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

I mean the "final shape" of library-ification is a bit up for grabs

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

but I think the end goal, whatever we name things, is that there is some "definition of types" that other libraries can use

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

I think it will probably wind up looking like a bit of a cross between rustc's types and chalk's types

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

(in particular, chalk's types have a very minimal set of variants, and I'm not yet convinced what the right set is)

David Barsky (Feb 11 2020 at 21:16, on Zulip):

(I'm reading along and present, but attending an ops meeting at work)

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

I'm not 100% sure what the "absolute blockers are" for integrating chalk-solve and rustc

Jack Huey (Feb 11 2020 at 21:16, on Zulip):

I am not sure either

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

I expect I can list some, but I imagine part of it would be spending a bit of time just trying it and seeing

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

I'm looking over the list of things I've written up in the past

nikomatsakis (Feb 11 2020 at 21:17, on Zulip):

I think we may have to adjust the RustIrDatabase trait a bit

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

that's what I put in the paper doc anyway

Jack Huey (Feb 11 2020 at 21:18, on Zulip):

Is this something that can reasonably broken up into work from multiple people?

Jack Huey (Feb 11 2020 at 21:18, on Zulip):

It doesn't quite seem like it

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

I think the first two are pretty independent

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

the third one, less so :)

nikomatsakis (Feb 11 2020 at 21:19, on Zulip):

but I feel like looking at the third one may generate more tasks

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

Can you elaborate on the first point?

nikomatsakis (Feb 11 2020 at 21:19, on Zulip):

yeah

nikomatsakis (Feb 11 2020 at 21:19, on Zulip):

so chalk's representation of something like for<'a, 'b> fn(&'a u32, &'b u32) introduces one "debruijn index" for 'a and 'b

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

so you kind of have for<2> fn(&'^0 u32, &'^1 u32)

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

i.e., "introduce 2 variables, and '^0 and '^1 refers to those"

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

but in rustc we instead count "scopes" and then use a separate index

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

so you'd have something like for<> fn(&'^0.0 u32, &'^0.1 u32)

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

where ^0.0 means "the 0th variable from the innermost scope"

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

and ^0.1 means "the 1th variable from the innermost scope"

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

we .. might be able to map back and forth between these, but I think it'll be very painful and complex

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

That's similar to how Placeholder(???) variables are done now

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

easier to align them

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

and I think I'd make chalk adopt rustc's scheme

detrumi (Feb 11 2020 at 21:22, on Zulip):

Wouldn't that be part of the 'type library' eventually?

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

both because yes it's similar to placeholders (not coincidentally)

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

and because hacking on chalk is more pleasant and easier :P

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

Wouldn't that be part of the 'type library' eventually?

yes

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

Are there pros/cons one way or the other?

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

I don't think there's any super deep pros/cons. I guess I find the rustc way a bit easier to think about most of the time.

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

Honestly I wonder if we could move away from debruijn altogether, but that'd be for another day.

detrumi (Feb 11 2020 at 21:23, on Zulip):

the pro of rustc's way is that it's less work for Chalk to change to their approach :slight_smile:

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

yes :)

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

but also, I do find it easier to thikn about "scopes" than individual variables

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

in traditional debruijn model there is no difference

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

because fn(a, b) -> ... is equivalent to lambda a. lambda b. ... or whatever

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

but that's not true in rust, we introduce multiple variables at once and there is no ordering to them

detrumi (Feb 11 2020 at 21:24, on Zulip):

So I take it that the exact representation isn't that important to chalk?

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

no, not really

Jack Huey (Feb 11 2020 at 21:24, on Zulip):

Ok, time check, we're at 25 minutes in

nikomatsakis (Feb 11 2020 at 21:25, on Zulip):

so the other thing in my list of goals

nikomatsakis (Feb 11 2020 at 21:25, on Zulip):

was some rustc hacking

nikomatsakis (Feb 11 2020 at 21:25, on Zulip):

to try and make rustc closer to chalk

nikomatsakis (Feb 11 2020 at 21:25, on Zulip):

e.g., refactoring things about ty::Predicate

Jack Huey (Feb 11 2020 at 21:25, on Zulip):

:+1:makes sense to me

nikomatsakis (Feb 11 2020 at 21:25, on Zulip):

I'd just like to float that as something of interest, maybe good for someone who wants to start learning things about rustc

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

(but I also know next to nothing about rustc internals)

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

(or maybe for @Aaron Hill, who is an experienced rustc hacker, but I'm guessing maybe they'd prefer to hack some on chalk)

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

I get that it'll make the integration easier, but that sounds like something that's hard to complete in a sprint. Though it's probably easier to work on that in parallel

Aaron Hill (Feb 11 2020 at 21:26, on Zulip):

I don't have any strong preference for what I'd like to work on

Aaron Hill (Feb 11 2020 at 21:26, on Zulip):

I'd just like to see chalk integration move forward, as it's blocking several things that I'm interested in :)

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

I get that it'll make the integration easier, but that sounds like something that's hard to complete in a sprint. Though it's probably easier to work on that in parallel

which thing are you referring to here, @detrumi ?

Matthew Jasper (Feb 11 2020 at 21:27, on Zulip):

e.g., refactoring things about ty::Predicate

This is currently the thing that's immediately blocking #67513

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

Interesting

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

er, yes

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

that is exactly why I was motivated by it

detrumi (Feb 11 2020 at 21:27, on Zulip):

@nikomatsakis making rustc closer to chalk, like you wrote above

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

though I hadn't seen that issue

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

ah, well, I had some "bite-sized pieces" that are sprint-sized

Aaron Hill (Feb 11 2020 at 21:28, on Zulip):

what kinds of changes would we be making to ty::Predicate?

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

the first thing I would do is to remove the Binder and create a forall predicate

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

(I can't tell you how many times I've done this in branches...)

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

the next step would perhaps be introducing implication

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

and then looking at being generic over types, not just lifetimes (generalizing binder so it can handle that)

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

other things we could do is to try and split goals/clauses

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

which I think might be useful but mostly for code cleanup

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

other things we could do is to try and split goals/clauses

er, goals/clauses/where-clauses? we use predicate to represent all of those right now

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

that's my first take, I might refine it "upon contact with the enemy" of trying to write the code, I guess

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

that said, it sort of intersects removing the leak-check..? I guess not in a strong way.

nikomatsakis (Feb 11 2020 at 21:30, on Zulip):

the first thing I would do is to remove the Binder and create a forall predicate

to elaborate, right now all the predicates have binders in rustc, but that can be isolated into a specific Predicate::ForAll, which just consolidates and cleans up the code, to start

nikomatsakis (Feb 11 2020 at 21:30, on Zulip):

so that you don't have to have everybody dealing with foralls when most folks don't need them

Aaron Hill (Feb 11 2020 at 21:31, on Zulip):

so, Predicate::Forall(Predicate::Trait), for example?

nikomatsakis (Feb 11 2020 at 21:31, on Zulip):

(ps @Jack Huey regarding time check, we kind of blew through that, do you think we should change focus..?)

Aaron Hill (Feb 11 2020 at 21:31, on Zulip):

instead of Predicate::Trait(Binder<_>)

nikomatsakis (Feb 11 2020 at 21:31, on Zulip):

so, Predicate::Forall(Predicate::Trait), for example?

Predicate::ForAll(Binder<Predicate>)

nikomatsakis (Feb 11 2020 at 21:31, on Zulip):

I think step 1 is actually to intern predicates

nikomatsakis (Feb 11 2020 at 21:31, on Zulip):

so they are pointers...

nikomatsakis (Feb 11 2020 at 21:31, on Zulip):

/me should go looking at old branches

nikomatsakis (Feb 11 2020 at 21:31, on Zulip):

I really have done this like 3 times :) I wonder if that work can be rebased...

Jack Huey (Feb 11 2020 at 21:31, on Zulip):

So, I think probably the things to do after this meeting in regards to sprint would be:

Jack Huey (Feb 11 2020 at 21:31, on Zulip):

And yeah, we should switch gears a bit

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

one of the sprint items I made for myself is to try and better elaborate these plans

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

I am still excited about creating my skill-tree ;)

Jack Huey (Feb 11 2020 at 21:32, on Zulip):

Yeah, that leads into the next point

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

but maybe we can parcel out some of this rustc work and better specify it in a separate thread

Jack Huey (Feb 11 2020 at 21:32, on Zulip):

long term planning :)

Jack Huey (Feb 11 2020 at 21:32, on Zulip):

I like your skill-tree idea

Jack Huey (Feb 11 2020 at 21:33, on Zulip):

As nice as github issues + labels are, it's tough when there are "dependencies of dependencies"

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

yeah

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

it'll take some time to get it right

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

but what I woudl like is that

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

you come to wg-traits repo

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

and you are presented with a kind of overview

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

of "the things we are doing"

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

and you get a sense of our longer term plans

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

obviously the further out it gets, the higher level

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

the skill-trees support links, colors, etc

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

ok, I didn't add colors yet :)

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

but links work, so we can link to github issues etc

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

colors would be like 22 sec of code

Jack Huey (Feb 11 2020 at 21:35, on Zulip):

Let's think about those higher level goals?

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

anyway, I think the interesting work here is not on the skill tree presentation but more just getting things out of people's heads and into a shared doc

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

yes, that

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

fwiw this data came from my doing my best to think carefully over our goals

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

though it's not complete, I think

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

er, I guess I didn't transcribe everything frm my internal docs

nikomatsakis (Feb 11 2020 at 21:37, on Zulip):

I guess I think we should be targeting a mix of:

Jack Huey (Feb 11 2020 at 21:38, on Zulip):

Right, so I guess the "final" goal is having Chalk and rustc share types and Chalk be the Rust trait solver

Jack Huey (Feb 11 2020 at 21:39, on Zulip):

There are quite a few features in Rust that Chalk doesn't support really at all yet

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

that is my goal, yes. but I think there's some doubt in my mind about hwo much chalk-engine will have to change to make that a reality

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

There are quite a few features in Rust that Chalk doesn't support really at all yet

and this, yes

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

which is why I think it makes sense to be gradually moving both of them together

Jack Huey (Feb 11 2020 at 21:39, on Zulip):

Specialization, const generics are the first two that come to mind

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

and avoid making perfect enemy of good

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

mm I'm more concerned about things like

detrumi (Feb 11 2020 at 21:40, on Zulip):

So we start with a subset of Rust this sprint, and iterate on that next sprint

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

the Sized trait

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

the Clone trait and how it interacts with closure types

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

well, I'm not concerned

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

it's just that there is a certain amount of "work"

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

I think that work lives in chalk-solve --

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

i.e., it's part of the "defining semantics of Rust lowering"

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

these things belong on the skill tree for sure too

nikomatsakis (Feb 11 2020 at 21:41, on Zulip):

Specialization, const generics are the first two that come to mind

but yes, these too :)

nikomatsakis (Feb 11 2020 at 21:41, on Zulip):

I'm not sure how much const generics really interacts with chalk

Jack Huey (Feb 11 2020 at 21:41, on Zulip):

ok, time check, 20 minutes left :)

nikomatsakis (Feb 11 2020 at 21:41, on Zulip):

I think we should try to isolate that out into callbacks at most

Jack Huey (Feb 11 2020 at 21:41, on Zulip):

I'm not sure how much const generics really interacts with chalk

I guess we have to see

nikomatsakis (Feb 11 2020 at 21:41, on Zulip):

(maybe the answer to "long term planning" is that it should be an ongoing conversation, mediated by trying to describe those plans in the form of a skill-tree?)

nikomatsakis (Feb 11 2020 at 21:42, on Zulip):

at least that was my thought of how to answer it

Jack Huey (Feb 11 2020 at 21:42, on Zulip):

I think so

nikomatsakis (Feb 11 2020 at 21:42, on Zulip):

i.e., that is perhaps a way to frame that "sprint item" that I wrote up

nikomatsakis (Feb 11 2020 at 21:42, on Zulip):

"form the long term plans in more detail"

nikomatsakis (Feb 11 2020 at 21:42, on Zulip):

(and I'd be happy to have help on it :)

nikomatsakis (Feb 11 2020 at 21:42, on Zulip):

i.e., I'd expect to be posting thoughts here and refining it, and we can discuss what things mean and improve

Jack Huey (Feb 11 2020 at 21:42, on Zulip):

I'd just like to see chalk integration move forward, as it's blocking several things that I'm interested in :)

(from @Aaron Hill earlier)
I'm curious what these blocking things are and how we solve them

Jack Huey (Feb 11 2020 at 21:43, on Zulip):

I think the biggest thing everyone wants it "GATs", but is there anything else?

Aaron Hill (Feb 11 2020 at 21:43, on Zulip):

GATs and const generics, mainly

Aaron Hill (Feb 11 2020 at 21:43, on Zulip):

but also opaque types/generators as they relate to auto traits

Jack Huey (Feb 11 2020 at 21:44, on Zulip):

i.e., I'd expect to be posting thoughts here and refining it, and we can discuss what things mean and improve

good to me

Aaron Hill (Feb 11 2020 at 21:44, on Zulip):

as there are currently some cycle errors there that chalk may help with

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

it's also blocking some language features I'd like to see progress like implied bounds

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

which actually raises an interesting question

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

as the current chalk lowering rules actually support implied bounds

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

not urgent, but we may wish at some point to make chalk match rustc as close as possible, and isolate extensions

Jack Huey (Feb 11 2020 at 21:45, on Zulip):

Ok, let's move on for the last 15 minutes?

Jack Huey (Feb 11 2020 at 21:46, on Zulip):

I wanted to spend a couple minutes (this is mainly for @nikomatsakis, but others can chime in too) just going over the issues I tagged as "needs triage"

Jack Huey (Feb 11 2020 at 21:46, on Zulip):

(see https://rust-lang.zulipchat.com/#narrow/stream/144729-wg-traits/topic/issue.20triage.20and.20labels)

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

I won't go over individual ones, I don't think

nikomatsakis (Feb 11 2020 at 21:47, on Zulip):

/me looks guility at the floor for not giving feedback :)

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

since I summarize each over there

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

do you want to discuss the details here?

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

We can

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

let me look real quick

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

"refine RustIrDatabase interface"

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

this one seems somewhat relevant to rustc integration

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

yeah let me look

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

but at least on the issue, it's unclear what needs to happen to "move forward"

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

some of the changes were made

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

I thought it was "done", but saw in one of the docs I linked at the start there were some concrete plans that I don't think are done

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

well

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

yeah I mean I think it's not done, but I think it's also not entirely clear what the desired end point is

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

so, among other things:

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

well maybe best not to go into too many details

Jack Huey (Feb 11 2020 at 21:50, on Zulip):

probably not :)

nikomatsakis (Feb 11 2020 at 21:51, on Zulip):

I guess the big picture is that I think we should be using feedback from r-a and rustc integration to decide if the interface should change

nikomatsakis (Feb 11 2020 at 21:51, on Zulip):

this was kind of what I meant by "just try it"

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

like I said, these are probably mostly a "take a look and see if they can be closed, or if there's something actionable here"

nikomatsakis (Feb 11 2020 at 21:51, on Zulip):

this issue could plausibly be closed as sort of "not immediately actionable"

nikomatsakis (Feb 11 2020 at 21:51, on Zulip):

this is a good example of something I think that might live better on the "skill tree" level for the time being

nikomatsakis (Feb 11 2020 at 21:51, on Zulip):

since it's a bit far out

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

probably

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

I don't know if 8 minutes is enough to really start another topic

nikomatsakis (Feb 11 2020 at 21:52, on Zulip):

maybe I'll just leave comments on the other list?

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

maybe I'll just leave comments on the other list?

yes

nikomatsakis (Feb 11 2020 at 21:52, on Zulip):

I can do that, but I wanted to say that we should circle back to how we'll pick our "sprint topics" just a bit?

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

Though I'm super interested in your recursive solver idea

nikomatsakis (Feb 11 2020 at 21:52, on Zulip):

heh yes I am too :P

Jack Huey (Feb 11 2020 at 21:53, on Zulip):

Yes, I was gonna do that

Jack Huey (Feb 11 2020 at 21:53, on Zulip):

So, like I said, I think if there's anything on the list that someone sees and wants to do, feel free to ping us?

Jack Huey (Feb 11 2020 at 21:53, on Zulip):

But otherwise, we should probably identify a couple "goals" for the sprint

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

So I think that one goal is

Jack Huey (Feb 11 2020 at 21:55, on Zulip):

I'm hesitant to say "let's try to have chalk reintegrated with rustc" by the end of the 6 weeks

Jack Huey (Feb 11 2020 at 21:55, on Zulip):

but I think it's doable

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

yeah that seems..ambitious, though I agree it may be do-able

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

I guess I don't care that much about setting concrete "milestone" sorts of goals :)

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

I'm more interested in "themes of work"

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

but I'm also ok to take a shot

Jack Huey (Feb 11 2020 at 21:57, on Zulip):

Right, one of the very chalk-centric themes I was thinking was sort of getting rid of some of the tech-debt that's built up

nikomatsakis (Feb 11 2020 at 21:58, on Zulip):

I definitely think it'd be great to come up with refactoring like tasks

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

as well as setting the stage to, once chalk is reintegrated into rustc, iterate on performance/bugs/etc.

nikomatsakis (Feb 11 2020 at 21:58, on Zulip):

to help in getting people up to speed and familiar with the codebase

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

That's what a few of mine are

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

I should also add this: https://github.com/rust-lang/chalk/issues/287

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

since that's seems somewhat easy

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

do we still want to aim to get a blog post or internals thread out?

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

I'm trying to figure out how to very concretely handle these sprint cases...

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

do we still want to aim to get a blog post or internals thread out?

I would be ok with waiting until start of next sprint potentially

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

I feel like we're still figuring things out and we have a bunch of people here, we have to first show we can integrate those that are here?

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

but I also think it can't hurt, so if you want to write it, I'd merge it

nikomatsakis (Feb 11 2020 at 22:01, on Zulip):

I'm trying to figure out how to very concretely handle these sprint cases...

like, should I open issues somewhere? make a zulip topic?

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

Ok I'll write up an outline and see if there's much worth saying

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

But it's just past the hour now

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

yeah I have another thing

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

Thank you everyone who attended :)

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

just a reminder to leave comments in the dropbox paper on things you might want to do :) or ping in Zulip

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

just a reminder to leave comments in the dropbox paper on things you might want to do :) or ping in Zulip

Yeah, I'm around most of the time, even if @nikomatsakis isn't

detrumi (Feb 11 2020 at 22:03, on Zulip):

I'm trying to figure out how to very concretely handle these sprint cases...

like, should I open issues somewhere? make a zulip topic?

What do you mean with sprint cases?

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

I just mean "tasks"

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

Oh, I missed that

detrumi (Feb 11 2020 at 22:04, on Zulip):

zulip topics might get buried, but are easier to discuss things in

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

I think if there are chalk-specific things, it can go into a new labeled chalk issue

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

but everything should go to a wg-traits project?

detrumi (Feb 11 2020 at 22:05, on Zulip):

I guess the well-defined tasks go in issues, and the rest gets discussed first on zulip?

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

I think "well-defined" is hard to define

detrumi (Feb 11 2020 at 22:08, on Zulip):

Not sure whether we really need everything in issues to start off

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

Eh, I'm of the opposite mind. Issues mean things don't get lost

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

As long as there's something "actionable" I guess

Jane Lusby (Feb 11 2020 at 22:39, on Zulip):

I added some comments to the dropbox paper but I'm mostly going to defer to yall's judgment on where I should start hacking away

matprec (Feb 11 2020 at 22:39, on Zulip):

Okay that was pretty dense, i have to admit that i didn't get everything, but i think it'll get better with time? I'll have some sleep and come back tomorrow to this :)

matprec (Feb 11 2020 at 23:15, on Zulip):

Sorry i just realized that my choice of words was inadequate at best, i didn't realize the colloquial meaning at first, language is hard

Jack Huey (Feb 11 2020 at 23:24, on Zulip):

Sorry i just realized that my choice of words was inadequate at best, i didn't realize the colloquial meaning at first, language is hard

no worries :slight_smile:

nikomatsakis (Feb 12 2020 at 10:56, on Zulip):

I guess if people wnt suggestions on where to start, we can certainly make some :)

matprec (Feb 12 2020 at 14:22, on Zulip):

I'm interested in the ty::Predicate refactorings :)

It's currently a bit hard to allocate continuous chunks of time for working on this though and i don't want to block anything on me
So if you'd estimate this to be rather time intensive for someone not familiar with the rustc codebase, i'd probably take a pass for this sprint.

matprec (Feb 12 2020 at 14:23, on Zulip):

In that case, you can also point at some stuff for me to have a look or document in the meantime, so that i get familiar without blocking anything :)

Jane Lusby (Feb 12 2020 at 15:09, on Zulip):

Yea please @nikomatsakis

Last update: Feb 25 2020 at 04:25UTC