Skip to content

Commit 61ab6d1

Browse files
committed
move minutes from compiler-team wg directory onto our repository
1 parent f01acb4 commit 61ab6d1

File tree

3 files changed

+231
-0
lines changed

3 files changed

+231
-0
lines changed

minutes/triage-2019-02-24.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Triage meeting on 2019-02-24
2+
3+
## Info
4+
5+
[Zulip thread.](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-02-25)
6+
7+
## Summary
8+
9+
The goal of the meeting was to try and figure out, in somewhat more
10+
detail, how we want to organize the traits working group itself. We've
11+
been doing [work on enumerating and triaging the set of things we hope
12+
to do][roadmap], but in this meeting we were basically trying to come
13+
up with some concrete next steps.
14+
15+
[roadmap]: https://paper.dropbox.com/doc/Traits-Roadmap-sketch--AYTQPvAVQ~p4lyElpr24zoAQAg-m6hucUslp7GihsY3SjNN2
16+
17+
Ultimately we identified the following next steps:
18+
19+
- Schedule a meeting to dig into some of the **lifetime problems around
20+
async-await**. This is kind of an "intersecting" issue between async await
21+
and the traigs WG, but seems high priority. (nikomatsakis)
22+
- **Explore the use cases for lazy normalization**, trying to create a summary
23+
of exactly which test cases are causing problems and why, and what it might
24+
take to fix them (can it be done without a full chalk transition?). (nikomatsakis)
25+
- **Explore the use cases for GATs**, trying to find a set of specific examples
26+
from async-await and other contexts. It seems likely that we could do an initial
27+
impl of GATs in rustc without chalk, but would it be enough? (aturon, centril)
28+
- Schedule a meeting to **dig into the chalk transition** -- what is
29+
current status and what are the possible future routes, what should
30+
we be exploring? (nikomatsakis, scalexm)
31+
- Get tests plus FCP around `type Foo = impl Bar` (centril)
32+
33+
In general, we're trying to get a sense for what the [initial set of
34+
active 'subprojects' will
35+
be](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-02-25/near/159365173)
36+
(basically, the things that the WG is focusing on). Ideally, each of
37+
them will have a distinct "lead" (or, better, leads!) who is driving
38+
the effort (in collaboration with the rest of us).
39+
40+
A **likely** set of initial subprojects will contain:
41+
42+
- some amount of hacking on rustc (GATs, lazy norm) in an effort to "relieve the pressure"
43+
- some amount of hacking on chalk itself and on chalk integration
44+
- some amount of work on defining the semantics of other features like
45+
specialization by lowering them to chalk predicates
46+
47+
but that is not certain. A key drive is both the set of people we have
48+
involved and also what seems to be highest priority in terms of
49+
unblocking other things within Rust.

minutes/triage-2019-03-04.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Triage meeting on 2019-03-04
2+
3+
## Info
4+
5+
[Zulip thread.](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-03-04)
6+
7+
## Summary
8+
9+
We followed up on the goals from last time.
10+
11+
### Lifetime problems around async-await
12+
13+
We
14+
[discussed](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-03-04/near/159939976)
15+
how we found a way to resolve the `async fn` complications by changing
16+
the async fn desugaring, and hence don't need any deep trait
17+
action. We are [still
18+
interested](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-03-04/near/159940028)
19+
in trying to find a way to solve the "captures problem" for impl
20+
Trait, however, and alexreg and nikomatsakis may do some follow-up
21+
there.
22+
23+
### Explore use cases for lazy normalization
24+
25+
Some investigation occurred. [Current plan](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-03-04/near/159940188)
26+
to continue documenting the way that the current normalization code
27+
plays out and to hold some sort of meeting to document that and walk
28+
through it. That meeting will hopefully happen this week and will be
29+
recorded.
30+
31+
### Explorse use cases for GATs
32+
33+
[Not a lot of progress here.](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-03-04/near/159940294) (Yet!)
34+
35+
Once we **do** make progress, though, the [logical next
36+
step](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-03-04/near/159940943)
37+
is probably to try and model those use cases some in Chalk, as well as
38+
to investigate more deeply how rustc could be extended to handle the
39+
cases natively (without blocking on full chalk integration).
40+
41+
### Dig into the chalk transition
42+
43+
We [have a meeting scheduled for tomorrow](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-03-04/near/159940496) with the RLS 2.0 folks, planning to talk about how the type checker is working in that context.
44+
45+
[**We are thinking that integrating Chalk first into the RLS 2.0
46+
project may be a better idea than starting with
47+
rustc**](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-03-04/near/159940552),
48+
particularly as it can help get RLS 2.0 to a "working product" faster,
49+
but also because we may be able to use that to pursue the idea of
50+
sharing more code between chalk + compiler than we could readily do
51+
with rustc. Specifically, we should be able to have:
52+
53+
- a library to share the definition of types between chalk + RLS 2.0
54+
- shared code for lowering traits + impls into logical rules
55+
56+
We also talked about other possible work on chalk, in particular the
57+
idea of chalk-specific refactorings but also building a [benchmarking
58+
harness](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-03-04/near/159940894)
59+
for the `chalk-engine` crate.
60+
61+
## Miscellaneous discussion
62+
63+
There are a few other things we talked about this week:
64+
65+
- [the idea of a research intern working on chalk and what they might
66+
do](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-03-04/near/159941464)
67+
- [how we might support `async fn` in traits without full GAT support](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weekly.20meeting.202019-03-04/near/159942222)
68+
69+
## Plans for the coming week
70+
71+
We settled on the following plans for the coming week:
72+
73+
So plans for this week are:
74+
75+
- Describe how normalization works today and hold a (recorded) call to
76+
try and explain it to others. Trace through some of the examples
77+
where lazy norm would be helpful. (nikomatsakis)
78+
- Explore the use cases for GATs (aturon, centril)
79+
- Discuss RLS 2.0 type checker and contemplate how to integrate chalk
80+
into it (nikomatsakis, scalexm)
81+
- Maybe discuss other chalk improvements? (e.g., benchmarking harness) (nikomatsakis)
82+
- Maybe discuss the "lifetime capture" problem in impl Trait? (nikomatsakis, alexreg)
83+

minutes/triage-2019-03-11.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# Triage meeting on 2019-03-11
2+
3+
## Info
4+
5+
[Zulip thread][]
6+
7+
[Zulip thread]: https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weeky.20meeting.202019-03-11
8+
9+
## Help wanted!
10+
11+
- nikomatsakis is looking for someone to help with investigating lazy
12+
normatlization. The task would be to experimentally modify rustc and
13+
is best suited to someone already vaguely familiar with the Rust query
14+
system etc. See below.
15+
16+
## Summary
17+
18+
We followed up on the goals from last time.
19+
20+
### Lazy normalization and const generics
21+
22+
[Link](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weeky.20meeting.202019-03-11/near/160502973)
23+
24+
Last week, nikomatsakis did more investigation, taking notes in [this
25+
dropbox paper document][lnpaper]. In general, it's still not entirely
26+
clear if the "cycle" that gives rise to the need for lazy
27+
normalization is something we can easily circumvent. One thing is that
28+
the `generics_of` and other queries for "anonymous constants"
29+
currently use the incorrect parent def-id precisely to avoid a cycle,
30+
so it's hard to see how the cycle would manifest.
31+
32+
[lnpaper]: https://paper.dropbox.com/doc/Lazy-normalization-Ryv4YfpIcGAl6R3ZtWrWs
33+
34+
**Next step:** re-establish the cycle in those queries so it can be observed.
35+
36+
### GATs
37+
38+
[Link](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weeky.20meeting.202019-03-11/near/160503327)
39+
40+
centril + aturon drew up a [paper document containing GAT use
41+
casts][gat] and there are some notes from the conversation in [this
42+
Zulip thread][gatthread].
43+
44+
**Next step:** unclear, but probably to investigate the use cases and
45+
make some comments.
46+
47+
[gat]: https://paper.dropbox.com/doc/GAT-use-case-analysis--AY1Ck74Fgk1Ztq1kHrethI8BAg-xFJQMxHXTOUekCyweukU1
48+
[gatthread]: https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/GAT.20use-case.20analysis
49+
50+
### Integrating into RLS 2.0
51+
52+
[Link](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/weeky.20meeting.202019-03-11/near/160503711)
53+
54+
We had a chat ([with
55+
video](https://www.youtube.com/watch?v=Lmp3P9WNL8o)) about how the RLS
56+
2.0 type checker works. We decided we'd rather try to do the chalk
57+
integration into RLS 2.0 "correct", meaning that we can share a lot
58+
more code with chalk.
59+
60+
**Next step:** nikomatsakis to schedule some time to sketch out what chalk integration would look like.
61+
62+
### Other chalk improvements
63+
64+
> Maybe discuss other chalk improvements? (e.g., benchmarking harness) (nikomatsakis)
65+
66+
This didn't happen and we'll probably shelve it for now in favor of the previous point.
67+
68+
### "lifetime capture"
69+
70+
> Maybe discuss the "lifetime capture" problem in impl Trait?
71+
72+
This didn't happen and we'll probably shelve it for now in favor of the next point.
73+
74+
### Draft RFCs
75+
76+
centril plans to (at minimum) upload some draft RFCs to a new wg-traits repository.
77+
78+
### Associated type bounds
79+
80+
alexreg has been working on associated type bounds in [this Zulip
81+
thread][atb] and will likely continue to do so.
82+
83+
[atb]: https://rust-lang.zulipchat.com/#narrow/stream/144729-t-compiler.2Fwg-traits/topic/associate.20type.20bounds
84+
85+
86+
## Plans for the coming week
87+
88+
- Try to correct the `generics_of` query etc for constants so we can
89+
observe what results.
90+
- **Help wanted!** nikomatsakis is looking for someone to help
91+
with investigating lazy normatlization. The task would be to
92+
experimentally modify rustc and is best suited to someone
93+
already vaguely familiar with the Rust query system etc.
94+
- Read-over GAT use cases and try to theorize about what it would take to
95+
support them in rustc etc (nikomatsakis)
96+
- Schedule a call to talk over what chalk integration into RLS 2.0 might look like (nikomatsakis)
97+
- Create a wg-traits repository to house draft RFCs and the like. (nikomatsakis)
98+
- Upload drafts of various traits-related RFCs to wg-traits (centril)
99+
- Continue work on associated type bounds (alexreg)

0 commit comments

Comments
 (0)