Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nikomatsakis/766c128f468f8f7a2d634a0d996e7302 to your computer and use it in GitHub Desktop.
Save nikomatsakis/766c128f468f8f7a2d634a0d996e7302 to your computer and use it in GitHub Desktop.
WEBVTT
1
00:00:05.009 --> 00:00:05.370
Nicholas Matsakis: Okay.
2
00:00:10.200 --> 00:00:10.920
Nicholas Matsakis: So, welcome.
3
00:00:13.080 --> 00:00:14.070
I will pull up
4
00:00:15.960 --> 00:00:17.490
Nicholas Matsakis: The doc. Well, let me share it.
5
00:00:20.850 --> 00:00:22.320
Nicholas Matsakis: Okay, um,
6
00:00:29.610 --> 00:00:32.130
Nicholas Matsakis: We have, we have this design meeting.
7
00:00:35.730 --> 00:00:49.290
Nicholas Matsakis: I think may 20 we were I was proposing to talk about infiltrate I have to do some more follow up, but I did some work on reviewing the current status and I wanted to discuss the idea of can we move
8
00:00:50.490 --> 00:00:58.890
Nicholas Matsakis: Some parts of it towards a stabilization and then and next week was we will be visiting overall prioritization.
9
00:01:00.810 --> 00:01:03.810
Nicholas Matsakis: There any other things which are on this list.
10
00:01:05.220 --> 00:01:09.930
Nicholas Matsakis: We had here that we might want to talk about safe transmuted at some point. I don't know.
11
00:01:11.130 --> 00:01:18.180
Nicholas Matsakis: If so, maybe we should discuss them, do let anyone have anything they want to bring out right now. I mean, feel free.
12
00:01:18.990 --> 00:01:23.850
Josh: I think for safe transmute we should coordinate with Ryan and see when he's available.
13
00:01:24.930 --> 00:01:25.140
Josh: Yeah.
14
00:01:28.140 --> 00:01:31.650
Nicholas Matsakis: I guess. Here's our list of possible topics. Anyway, um,
15
00:01:33.060 --> 00:01:34.860
Nicholas Matsakis: This one you can take off did that.
16
00:01:38.130 --> 00:01:44.850
Nicholas Matsakis: So separate item updates. One thing is that I'm were emerging as I'm
17
00:01:45.900 --> 00:01:57.270
Nicholas Matsakis: Keyword implementation tonight we released the PR was our plus and Josh you during Sep merge on the RFC
18
00:01:58.320 --> 00:01:58.650
Josh: Right.
19
00:01:59.880 --> 00:02:01.770
Nicholas Matsakis: So folks should read and
20
00:02:02.790 --> 00:02:04.530
Nicholas Matsakis: Read and check their boxes.
21
00:02:06.240 --> 00:02:08.550
Nicholas Matsakis: Like, oh wait for that to load. I'm
22
00:02:10.530 --> 00:02:16.110
Nicholas Matsakis: to transmute any new updates. There's more or less than as it was
23
00:02:20.610 --> 00:02:25.800
Josh: As it was, there is a repo people can look at that has been talked about a little bit on Zillow
24
00:02:28.350 --> 00:02:29.940
Nicholas Matsakis: Constant valuation.
25
00:02:31.560 --> 00:02:32.790
Nicholas Matsakis: And it was. Yeah.
26
00:02:33.780 --> 00:02:43.620
ecstatic-morse: Only did finish that skill tree, or at least a first draft. And then I was planning on submitting a stabilization PR for if a match this week.
27
00:02:47.640 --> 00:02:48.060
ecstatic-morse: But that's it.
28
00:02:51.900 --> 00:02:52.560
Yes, we can.
29
00:02:58.770 --> 00:03:01.320
Nicholas Matsakis: Go to maybe you can drop a link or something.
30
00:03:08.970 --> 00:03:11.250
Nicholas Matsakis: I don't know what these questions have to do with them and delete them.
31
00:03:13.380 --> 00:03:14.520
Nicholas Matsakis: During the record somewhere, I hope.
32
00:03:17.700 --> 00:03:19.710
Nicholas Matsakis: Not since I haven't been saving things as much as I should.
33
00:03:21.420 --> 00:03:26.100
Nicholas Matsakis: Notify and wind think we're basically ready to go. Just still waiting on
34
00:03:27.270 --> 00:03:34.980
Nicholas Matsakis: dickering over small details like what to call a frame that doesn't have any disruptors, probably we should pick something and move
35
00:03:39.330 --> 00:03:44.670
Nicholas Matsakis: Didn't trade. I haven't done anything on oil maybe should or somebody should
36
00:03:46.800 --> 00:03:49.260
Nicholas Matsakis: Similarly, these other items. So anything on instructions.
37
00:03:54.480 --> 00:03:55.590
Lokathor: No updates their
38
00:04:04.830 --> 00:04:07.950
Nicholas Matsakis: Issues. Are there any new ones. There's new one.
39
00:04:11.670 --> 00:04:12.660
Nicholas Matsakis: Yeah, this one.
40
00:04:14.400 --> 00:04:16.500
Nicholas Matsakis: Know that this is really to name.
41
00:04:18.570 --> 00:04:21.780
Nicholas Matsakis: Tag with us. So we had a kind of regression
42
00:04:23.490 --> 00:04:24.060
Nicholas Matsakis: Where
43
00:04:25.620 --> 00:04:36.480
Nicholas Matsakis: If you forbid something. And if you forbid something and then you allow it. This is an error. But if you do, both in the same scope. It's permitted wasn't always the case. Now it is
44
00:04:39.630 --> 00:04:42.120
Nicholas Matsakis: Yeah. Okay, so I think
45
00:04:43.170 --> 00:04:45.180
Nicholas Matsakis: It's more of implementation bug probably
46
00:04:47.190 --> 00:04:47.520
Like
47
00:04:49.650 --> 00:04:53.880
Nicholas Matsakis: We probably want to remember, figure out why this regressed in and fix it.
48
00:04:56.490 --> 00:04:58.230
Nicholas Matsakis: I don't think it's, there's no
49
00:05:00.120 --> 00:05:03.060
Nicholas Matsakis: tick off the land because I don't think there's any question that it's a bug.
50
00:05:09.030 --> 00:05:11.400
Nicholas Matsakis: So then no major new things.
51
00:05:13.110 --> 00:05:14.520
Nicholas Matsakis: In this list and no real updates.
52
00:05:16.860 --> 00:05:18.210
Nicholas Matsakis: Nominated PRS
53
00:05:23.520 --> 00:05:27.870
Nicholas Matsakis: So we have the most US trade. I don't think there's been any real updates in this must use discussion.
54
00:05:31.050 --> 00:05:32.370
Nicholas Matsakis: We yeah
55
00:05:33.570 --> 00:05:34.230
I'll go forward.
56
00:05:35.940 --> 00:05:40.470
Nicholas Matsakis: Clarify interaction pin drop guarantee and panics. Oh.
57
00:05:41.550 --> 00:05:45.150
Nicholas Matsakis: Fewer and fewer call a question was about double panicking and reporting and
58
00:05:46.830 --> 00:05:51.750
Nicholas Matsakis: What to do there. And it seemed like we should just say you have to deal with that unless we make a fix.
59
00:05:54.270 --> 00:05:56.340
Nicholas Matsakis: That's real fast to the screen. Like, I think it is.
60
00:05:58.320 --> 00:05:58.890
I think it is.
61
00:06:03.330 --> 00:06:04.140
Nicholas Matsakis: I will be become it
62
00:06:23.970 --> 00:06:25.860
Where was I lost track.
63
00:06:35.100 --> 00:06:38.400
Nicholas Matsakis: There's no updates here although Esteban did post something
64
00:06:42.120 --> 00:06:43.440
Nicholas Matsakis: This was the question about
65
00:06:45.450 --> 00:06:47.640
Nicholas Matsakis: Whether we report errors on
66
00:06:48.810 --> 00:06:50.430
Nicholas Matsakis: Types, you know,
67
00:06:51.810 --> 00:06:58.380
Nicholas Matsakis: Type aliases when they're generic types are not respected and so forth. And I posted my opinion here.
68
00:07:00.510 --> 00:07:05.400
Nicholas Matsakis: But we probably should get on top of this around the addition. And I think that's
69
00:07:07.110 --> 00:07:09.330
Nicholas Matsakis: Probably. Another topic to throw back in
70
00:07:10.470 --> 00:07:16.770
Nicholas Matsakis: Design meeting list. It's kind of entangled prioritization, but it might be a separate thing.
71
00:07:18.780 --> 00:07:19.140
Kind of
72
00:07:21.720 --> 00:07:25.350
Nicholas Matsakis: Trying to finalize a list of like what kind of changes might be want to make
73
00:07:27.900 --> 00:07:30.300
Nicholas Matsakis: In the run up to the addition to leave space for
74
00:07:31.650 --> 00:07:32.730
Nicholas Matsakis: Future developments.
75
00:07:36.060 --> 00:07:38.880
Nicholas Matsakis: This one is definitely possible in and just
76
00:07:43.830 --> 00:07:44.460
Nicholas Matsakis: Keep going.
77
00:07:45.570 --> 00:07:46.590
Nicholas Matsakis: Nominated issues.
78
00:07:50.910 --> 00:07:54.840
Nicholas Matsakis: Anything execution can get lost during refactoring so
79
00:07:58.200 --> 00:08:01.290
Nicholas Matsakis: This has to do with the must use any option.
80
00:08:02.640 --> 00:08:11.970
Nicholas Matsakis: And I kind of skipped over that PR they added the trade. I don't think there's any new developments here, but I would kind of like to get this on nominated. So I'm going to stop skimming for a second and take a moment.
81
00:08:15.120 --> 00:08:15.810
Nicholas Matsakis: Do we
82
00:08:17.970 --> 00:08:30.150
Nicholas Matsakis: From what I can tell, we don't really know what we want to do here, right, there's still a certain amount of uncertainty about should we propagate must use across types. By default, or should you opt in.
83
00:08:31.380 --> 00:08:31.860
Nicholas Matsakis: And
84
00:08:34.740 --> 00:08:40.110
Nicholas Matsakis: If we do it as opt in. Do we want to specify extend the attribute or do we want to use a trade.
85
00:08:44.940 --> 00:08:58.440
Nicholas Matsakis: I don't know how much I care. But I'm kind of would like to solve this, because I think it is a real issue around a sink, and I think it's going to come up. We were talking about adding a new a sink Linda for things that are yield safe that can be held across the yield.
86
00:08:59.670 --> 00:09:10.260
Nicholas Matsakis: That would sort of follow like the must use model. And it seems like you must use models something we're actively debating about we should try to resolve that together, um,
87
00:09:13.650 --> 00:09:19.860
Nicholas Matsakis: So I'm kind of looking to ask whether whether anyone has strong opinions, but also if anyone wants to try to drive this discussion.
88
00:09:21.660 --> 00:09:22.410
Nicholas Matsakis: This mean
89
00:09:26.580 --> 00:09:37.740
ecstatic-morse: I don't really have strong opinions, but I think the question about whether to implement it with a lens or via trade is sort of secondary to the question of how we want to do this.
90
00:09:38.490 --> 00:09:39.420
Nicholas Matsakis: At all, like,
91
00:09:41.100 --> 00:09:42.630
Nicholas Matsakis: It's not only an implementation.
92
00:09:44.310 --> 00:09:51.780
ecstatic-morse: Right, I mean for types in the standard library. If we like started conservatively with just option since presumably it would be
93
00:09:53.400 --> 00:10:01.650
ecstatic-morse: Unstable to begin with, or, yeah, it would be if it was internal only to begin with. When that be a just an implementation detail.
94
00:10:05.400 --> 00:10:12.870
Nicholas Matsakis: Well, not all the types. We want to see it on our in the standard library. Okay. Yes, you are correct, that we could
95
00:10:14.340 --> 00:10:19.860
Nicholas Matsakis: You could add it, you could you could implement with the trade and use it to cover types in the scene in library.
96
00:10:21.270 --> 00:10:24.480
Josh: Walk other aspect is, if people want the ability to override it.
97
00:10:26.280 --> 00:10:29.280
Josh: And then the implementation becomes relevant
98
00:10:31.110 --> 00:10:34.440
Nicholas Matsakis: So, okay, that's a one simple path forward.
99
00:10:35.460 --> 00:10:37.320
Nicholas Matsakis: At a must use trade.
100
00:10:39.180 --> 00:10:40.110
Nicholas Matsakis: Unstable
101
00:10:42.090 --> 00:10:43.350
Nicholas Matsakis: I guess I'm not like
102
00:10:46.170 --> 00:10:52.080
Nicholas Matsakis: And use it to extend two options are saying and other types, the standard library.
103
00:10:54.840 --> 00:10:55.800
Nicholas Matsakis: I agree that would be okay.
104
00:10:57.150 --> 00:10:57.510
Nicholas Matsakis: Um,
105
00:10:59.250 --> 00:11:03.540
ecstatic-morse: I guess my main point is that it's more important to resolve the, like, what do we want to do.
106
00:11:04.980 --> 00:11:08.700
ecstatic-morse: Then how do we do it in my view, but maybe others disagree.
107
00:11:12.570 --> 00:11:16.230
Nicholas Matsakis: Specifically, the example that came up was Tokyo join him. Oh, um,
108
00:11:17.820 --> 00:11:18.300
Nicholas Matsakis: I think
109
00:11:23.610 --> 00:11:30.270
Nicholas Matsakis: I guess I agree with that. It's more important than to cover what do we want to do. But that's sort of what I want to, like, yeah.
110
00:11:30.900 --> 00:11:39.330
Nicholas Matsakis: Okay. Do we want it to be something where you opt in, I've kind of given up on opposing idea of using a trade. I used to think that was not what I would want to know. You don't care.
111
00:11:40.680 --> 00:11:52.500
Nicholas Matsakis: I'm worried just sit and not opt in or opt out question. I don't quite know how to answer it except by imedi think the only way to answer it would be to do some creative runs and try to like
112
00:11:55.920 --> 00:12:05.790
Nicholas Matsakis: Like by by doing it up, probably by making it by default analyze the error like tonight as deny or something, analyze the errors that you get to look for, like,
113
00:12:06.990 --> 00:12:14.460
Nicholas Matsakis: These all seem like bugs and I think we actually kind of did that once and we found it was for a different analysis, though more pervasive opt in.
114
00:12:16.170 --> 00:12:18.210
Nicholas Matsakis: And that's like where boats came
115
00:12:20.190 --> 00:12:27.090
Nicholas Matsakis: It's a little bit subjective. They're called are created and thought that show clearly that this was a good idea and then books came in came to the opposite conclusion.
116
00:12:28.890 --> 00:12:33.600
Nicholas Matsakis: So would there would require some writing down of what the examples are in
117
00:12:41.040 --> 00:12:45.540
Nicholas Matsakis: But maybe the answer is you don't care enough, then we should go with a simple
118
00:12:47.160 --> 00:12:50.550
Nicholas Matsakis: Concert like like you suggested just extended to option for now.
119
00:12:55.560 --> 00:12:58.080
Nicholas Matsakis: And maybe maybe
120
00:13:02.250 --> 00:13:03.180
Nicholas Matsakis: The other thing is
121
00:13:04.710 --> 00:13:13.320
Nicholas Matsakis: It's not obvious to me that the yield safe and must use with all the same people like I think they should call it The Haven obviously just because it will make our life.
122
00:13:14.670 --> 00:13:23.670
Nicholas Matsakis: Easier. It makes the language feel more consistent, but it might be that one of them really wants to propagate and the other doesn't.
123
00:13:25.860 --> 00:13:26.610
Nicholas Matsakis: In different ways.
124
00:13:31.320 --> 00:13:32.100
Nicholas Matsakis: I'm thinking maybe
125
00:13:33.540 --> 00:13:38.370
Nicholas Matsakis: For that reason, maybe Lucille Franco might be interested is the one who was driving that other
126
00:13:40.110 --> 00:13:41.100
Nicholas Matsakis: Macy context.
127
00:13:47.880 --> 00:13:53.100
ecstatic-morse: Seems like there's not a lot of strong opinions. So maybe we need greater run with just
128
00:13:54.750 --> 00:13:59.310
ecstatic-morse: Something like fundamental types and see where we're at. After that,
129
00:14:01.440 --> 00:14:01.860
Nicholas Matsakis: Yeah.
130
00:14:05.790 --> 00:14:10.380
Felix Klock: deeper, deeper than that you're talking about the, the, the more intrusive run that you said that
131
00:14:11.910 --> 00:14:13.950
Felix Klock: The boats came back and
132
00:14:15.150 --> 00:14:16.770
Felix Klock: Had just then there was
133
00:14:17.970 --> 00:14:24.840
Felix Klock: disagreement between boats and Far core was that PR 62262 or something else.
134
00:14:33.390 --> 00:14:33.780
Nicholas Matsakis: That was
135
00:14:38.130 --> 00:14:41.460
Nicholas Matsakis: Tested was whether there was any field.
136
00:14:45.930 --> 00:14:50.910
Nicholas Matsakis: whether there was any something must use if there was any
137
00:14:52.470 --> 00:14:54.570
Nicholas Matsakis: Field. There was must use as it
138
00:14:57.540 --> 00:14:59.670
Nicholas Matsakis: So I think is also a plausible.
139
00:15:01.980 --> 00:15:04.950
Nicholas Matsakis: Was there three variants proposed.
140
00:15:08.910 --> 00:15:09.300
Nicholas Matsakis: I'm
141
00:15:10.380 --> 00:15:11.250
Nicholas Matsakis: Not one of them.
142
00:15:24.300 --> 00:15:25.740
Nicholas Matsakis: Three very dicey our
143
00:15:27.270 --> 00:15:31.020
Nicholas Matsakis: opt in, which is probably right now using a trade is the preferred
144
00:15:33.150 --> 00:15:39.090
Nicholas Matsakis: Mechanism, despite some columns on my part. But I like I said, I've given up opposing it
145
00:15:40.320 --> 00:15:42.390
Nicholas Matsakis: And opt out.
146
00:15:45.390 --> 00:15:49.140
Nicholas Matsakis: Where it says if they type as a field.
147
00:15:51.420 --> 00:15:57.000
Nicholas Matsakis: With their that is must use then the type is must use that's like the version.
148
00:15:58.230 --> 00:16:02.790
Nicholas Matsakis: We implemented before by type I really mean he struck demon
149
00:16:06.150 --> 00:16:06.540
Nicholas Matsakis: And
150
00:16:07.830 --> 00:16:16.950
Nicholas Matsakis: Then there was this other that there's really no opt out even described here but you can imagine, extending it without that, and the other one that I was proposing was like
151
00:16:19.440 --> 00:16:21.570
Nicholas Matsakis: Yeah, if a struct.
152
00:16:23.460 --> 00:16:26.190
Nicholas Matsakis: As a generic parameter supply
153
00:16:28.350 --> 00:16:29.220
Is must use
154
00:16:32.490 --> 00:16:34.350
Nicholas Matsakis: You can do it as ad hoc or very elegant
155
00:16:38.790 --> 00:16:39.930
Nicholas Matsakis: more limited than this one.
156
00:16:41.340 --> 00:16:41.910
That's for sure.
157
00:16:50.310 --> 00:16:50.610
Nicholas Matsakis: Alright.
158
00:16:55.110 --> 00:16:55.440
Nicholas Matsakis: So,
159
00:16:55.710 --> 00:16:56.160
ecstatic-morse: So we should
160
00:16:57.840 --> 00:17:01.710
ecstatic-morse: We should maybe try and find someone who wants to implement either the first or the third one.
161
00:17:03.960 --> 00:17:06.180
Nicholas Matsakis: Yeah, well, this one is kind of implemented.
162
00:17:09.000 --> 00:17:10.770
ecstatic-morse: In Genesis. Yeah.
163
00:17:11.070 --> 00:17:12.720
Nicholas Matsakis: I don't remember how it works.
164
00:17:15.300 --> 00:17:18.540
Nicholas Matsakis: I could see landing, it just as an implementation detail for sure.
165
00:17:19.770 --> 00:17:19.980
Okay.
166
00:17:43.980 --> 00:17:44.730
Nicholas Matsakis: Look for someone who
167
00:17:47.400 --> 00:17:50.760
Nicholas Matsakis: The first step would be pinning Lucio and see what comes from it.
168
00:17:57.060 --> 00:17:58.650
Nicholas Matsakis: Kind of reminds me, Joshua
169
00:18:01.590 --> 00:18:06.630
Nicholas Matsakis: Action of the proposal for things LinkedIn wants to do and having some way to write that down in advertising.
170
00:18:08.190 --> 00:18:09.300
Josh: That would be nice. Yes.
171
00:18:10.110 --> 00:18:13.170
Nicholas Matsakis: Shocking issue for RSC to GPU conversion
172
00:18:15.030 --> 00:18:15.570
Nicholas Matsakis: So,
173
00:18:16.980 --> 00:18:24.690
Nicholas Matsakis: We kind of settled the remaining questions here. But there was something on my mind about Josh and I were talking offline about
174
00:18:25.860 --> 00:18:26.430
Nicholas Matsakis: The fact that
175
00:18:28.410 --> 00:18:34.410
Nicholas Matsakis: Can. So this lets you test versions. And the idea was always that this would be a fallback were comfy accessible is the preferred
176
00:18:36.000 --> 00:18:40.440
Nicholas Matsakis: Variant where you sort of test. If a path is resolvable but nobody's implemented that.
177
00:18:41.460 --> 00:18:51.480
Nicholas Matsakis: And there's an argument for, we should not stabilize that until we have config accessible because people will start writing a bunch of creates that use it when they could have used config accessible.
178
00:18:52.350 --> 00:18:58.380
Nicholas Matsakis: I'm not sure. I really like that argument, because it sounds like a recipe for indefinite stalls, but
179
00:19:02.550 --> 00:19:07.860
Nicholas Matsakis: And we haven't implemented the new semantics. Anyway, so we can't even talk about stabilization, but I wanted to bring it up.
180
00:19:09.300 --> 00:19:10.080
Nicholas Matsakis: As a concern.
181
00:19:11.640 --> 00:19:17.010
Josh: I personally share the same concern in that by, I do think the ecosystem is going to
182
00:19:17.400 --> 00:19:30.240
Josh: Jump on whichever item comes out first. And if config accessible becomes available that addresses the use cases like oh do I implement this thing for you when 28. Do I have you and 28 i mean
183
00:19:30.750 --> 00:19:44.250
Josh: That doesn't apply retroactively, but the next time, something like that comes around, like, Do I have it stable Cindy types. Can I implement my trade for stable 70 types, then this would be relevant.
184
00:19:48.690 --> 00:19:50.730
Nicholas Matsakis: To you guys is another question of can we
185
00:19:52.080 --> 00:19:58.110
Nicholas Matsakis: Try to do something to help urge along the implementation, it's not really our job, exactly, but
186
00:20:00.150 --> 00:20:06.390
Nicholas Matsakis: It's certainly possible for us to like write blog posts that maybe would encourage people
187
00:20:07.800 --> 00:20:09.660
Nicholas Matsakis: Don't know how hard it is to find I
188
00:20:12.330 --> 00:20:22.620
Lokathor: Could I ask, is the question that like if you're using Config version instead of config accessible. It's more opaque about what is you're really looking for is that the concern.
189
00:20:25.080 --> 00:20:29.100
Nicholas Matsakis: Yes, also, that it's also tied to
190
00:20:32.880 --> 00:20:40.830
Nicholas Matsakis: It. Yeah. Basically, you're not saying what is you're looking for. And it's tied to sort of the release version where this became available which
191
00:20:43.500 --> 00:20:44.460
Nicholas Matsakis: Is ok but
192
00:20:45.870 --> 00:20:57.090
Nicholas Matsakis: There is some concern about like if there are alternatives implementations. It's a bit of a hypothetical right now, since they don't exist. But you could imagine down the line that there would be something that they have their own
193
00:20:59.010 --> 00:21:05.550
Nicholas Matsakis: They may not fully implement all the things that have given release does, but they may have accessible some features, you would not get them so forth.
194
00:21:06.630 --> 00:21:09.990
Nicholas Matsakis: I think it's mostly that we would prefer to have people say what they want.
195
00:21:11.400 --> 00:21:27.390
Lokathor: Okay, I know most users track like it on crates I, oh, it says, like, what is the stable minimum version needed for this create so people are already thinking in those terms. Most of the time, and they're not thinking in terms of, do I have a huge 128 type in my version of rest installed.
196
00:21:28.770 --> 00:21:40.140
Josh: Well, I think there's two different cases here there's a what version. Are you known to work with, for which the cargo team is talking about having a minimum supported rest version in cargo.
197
00:21:40.620 --> 00:21:47.280
Josh: All that's useful for CI, it's useful for setting expectations that separate from
198
00:21:47.790 --> 00:22:01.350
Josh: I want to support a range of versions that includes new and old rust, but on new rust. I want to integrate with new features and that isn't just for rust. That's also for things like I'm pulling in
199
00:22:01.710 --> 00:22:14.100
Josh: This crate and newer versions of it. Have you know this particular type, but I want to support older versions because I want to interoperate with something or other. You get the idea.
200
00:22:15.060 --> 00:22:23.970
Josh: And that kind of thing. I think that there's no problem saying, I only support this version and newer but there's more of a problem saying
201
00:22:24.240 --> 00:22:35.310
Josh: I want to support a range of versions and do different things on different versions that gets really complicated really fast compared to, I want to support this type of this type exists.
202
00:22:37.320 --> 00:22:39.090
Lokathor: Okay, yeah, that clarifies a lot. Thank you.
203
00:22:41.280 --> 00:22:50.820
Nicholas Matsakis: Think it also makes for a smoother transition. I'm not sure if he says what was defined but ideally you it's sort of work now anyway.
204
00:22:52.530 --> 00:22:54.690
Nicholas Matsakis: Near you configure accessible as the same question.
205
00:22:56.250 --> 00:22:57.540
Nicholas Matsakis: Did you mean stable enough
206
00:23:02.130 --> 00:23:03.240
Nicholas Matsakis: All right, well, so
207
00:23:05.010 --> 00:23:08.790
Nicholas Matsakis: Question is, can we draw attention to the need for implementation here.
208
00:23:11.250 --> 00:23:22.200
Nicholas Matsakis: I think there's a bigger question that's been lingering the back of my mind, which is we always talk about sort of doing a bit of a census about unstable issues. I don't think we necessarily want to drop down and
209
00:23:24.240 --> 00:23:33.180
Nicholas Matsakis: Make a huge spreadsheet or anything, but there's probably a low hanging it would be nice to be clearing out some of that stuff then trying to help push things along and see what stalled.
210
00:23:35.940 --> 00:23:38.160
Nicholas Matsakis: May be worth investing a little energy on it.
211
00:23:46.440 --> 00:23:51.120
Nicholas Matsakis: So our drop potentially dangling. Sure. Definitely check if there's any new issues that I'm overlooking
212
00:23:54.210 --> 00:23:54.990
This ahead of time.
213
00:24:01.470 --> 00:24:08.070
Nicholas Matsakis: Okay, looks like. Yeah, there's no real new updates on art drop in the only question is,
214
00:24:09.930 --> 00:24:13.260
Nicholas Matsakis: Should we go ahead and add some raw pointer methods and
215
00:24:15.780 --> 00:24:21.450
Nicholas Matsakis: So that people can write code that we believe will be correcting and if we don't know exactly what that could look like.
216
00:24:23.670 --> 00:24:26.310
Nicholas Matsakis: I may never be necessary more. I think it probably will.
217
00:24:28.830 --> 00:24:30.090
Nicholas Matsakis: rather talk about it later though.
218
00:24:31.230 --> 00:24:31.440
Because
219
00:24:33.930 --> 00:24:37.710
Nicholas Matsakis: There's a looks like this got nominated tracking issues for GST
220
00:24:52.620 --> 00:24:53.160
Not sure.
221
00:24:54.330 --> 00:24:54.720
Nicholas Matsakis: Why
222
00:25:12.480 --> 00:25:13.140
Nicholas Matsakis: So,
223
00:25:14.280 --> 00:25:19.470
Nicholas Matsakis: I guess this is not super urgent question, but can we split this up into
224
00:25:22.230 --> 00:25:23.760
Nicholas Matsakis: Basically two issues.
225
00:25:26.610 --> 00:25:27.150
Nicholas Matsakis: Guess so.
226
00:25:30.660 --> 00:25:43.620
Nicholas Matsakis: So right now we have these two traits, one that says, Can I course, if we can, of course, a reference and one that says like an ampersand T 2% in something that's core sensitized
227
00:25:44.400 --> 00:25:52.530
Nicholas Matsakis: And then on size is sort of the fundamental operation that's building on the thing that takes the tea and converts it to a ding DING
228
00:26:03.810 --> 00:26:04.740
Nicholas Matsakis: I don't know.
229
00:26:07.200 --> 00:26:22.050
Nicholas Matsakis: I guess the motivation is maybe we can stabilize this coerce and size mechanism that would allow people to write custom pointers like arcs and things that support conversions outside of the standard library, which today does not possible. I don't think sometime lately.
230
00:26:34.140 --> 00:26:39.090
Nicholas Matsakis: I guess nobody nobody has ever want to do is describe
231
00:26:40.590 --> 00:26:43.110
Nicholas Matsakis: You ask me to do it to kind of
232
00:26:44.730 --> 00:26:49.290
Nicholas Matsakis: write up the two things and how they interact. Make the two issues and that's fine.
233
00:26:51.330 --> 00:26:51.900
Nicholas Matsakis: I'm back to that.
234
00:26:57.090 --> 00:26:57.630
Josh: Question here.
235
00:27:00.780 --> 00:27:02.880
Felix Klock: I suppose. Right. Nope.
236
00:27:05.340 --> 00:27:07.200
Nicholas Matsakis: It's maybe better. It's not really
237
00:27:11.430 --> 00:27:12.030
Nicholas Matsakis: Okay.
238
00:27:13.500 --> 00:27:19.860
Nicholas Matsakis: We're at the end of our nominated issues. I don't think there's any real updates about reference tacked on to some discussion at least
239
00:27:21.480 --> 00:27:22.770
Nicholas Matsakis: Since I hadn't read
240
00:27:26.070 --> 00:27:43.350
Nicholas Matsakis: We were talking about. I did post something from our last conversation about how you might prefer to go with. I am might prefer to go with a macro and then there was some discussion around just kind of somewhat separate I think about the
241
00:27:45.750 --> 00:27:48.330
Nicholas Matsakis: Here in Joshua suppose something I'm
242
00:27:49.530 --> 00:27:53.490
Nicholas Matsakis: About the semantics of insect Paros
243
00:27:56.460 --> 00:27:59.850
Nicholas Matsakis: Whether you should use come references. But I think it's kind of a separate issue.
244
00:28:02.760 --> 00:28:03.480
Nicholas Matsakis: Well, is it
245
00:28:05.370 --> 00:28:09.720
Nicholas Matsakis: Going to be about the semantics of this operation. So this bra reference and I
246
00:28:11.850 --> 00:28:14.700
Nicholas Matsakis: don't think we have anything to say in this meeting right now. So I'll move on.
247
00:28:17.040 --> 00:28:18.060
Unless we want to
248
00:28:24.360 --> 00:28:28.350
Nicholas Matsakis: One nominated RC constant expressions and parents. So anything new here.
249
00:28:31.680 --> 00:28:33.120
Nicholas Matsakis: We were discussing this last one.
250
00:28:46.920 --> 00:28:49.560
Nicholas Matsakis: Should I use this to still be nominated
251
00:28:50.790 --> 00:28:52.860
Nicholas Matsakis: We said last time. Was there a question for us to answer.
252
00:28:54.210 --> 00:28:54.630
ecstatic-morse: Um,
253
00:28:56.010 --> 00:29:10.050
ecstatic-morse: I don't think there was much new information in the recent comments, although I'm a bit biased. It's basically about whether unsafe blocks. So currently, if you're right unsafe and then you have an array initialize there.
254
00:29:12.390 --> 00:29:17.280
ecstatic-morse: That does unsafe operations in the array length expression.
255
00:29:18.450 --> 00:29:22.470
ecstatic-morse: You'll get an error. This array initialize or needs unsafe.
256
00:29:25.110 --> 00:29:31.800
ecstatic-morse: Know, I guess is the answer to your question. I don't think there's it needs to remain nominated for now I need to update the RFC with
257
00:29:33.570 --> 00:29:34.650
Some of the new concerns, so
258
00:29:38.880 --> 00:29:39.870
Nicholas Matsakis: The question.
259
00:29:42.060 --> 00:29:48.660
Nicholas Matsakis: Is the question is are the concern. My fiance, if this is the same true for complex. We wanted to
260
00:29:48.690 --> 00:29:49.260
ecstatic-morse: Write me
261
00:29:50.130 --> 00:29:56.850
ecstatic-morse: And yeah, is the is the fact that you need double unsafe, in that context, a bug or a feature.
262
00:30:00.510 --> 00:30:02.550
ecstatic-morse: Which I should probably open an issue.
263
00:30:05.190 --> 00:30:09.720
ecstatic-morse: Or read the original. I don't know if there that's for like pre RFC does
264
00:30:12.870 --> 00:30:13.350
Nicholas Matsakis: So,
265
00:30:14.970 --> 00:30:15.960
Nicholas Matsakis: Okay, here are the
266
00:30:19.710 --> 00:30:20.340
Nicholas Matsakis: Actually when
267
00:30:21.570 --> 00:30:22.050
Nicholas Matsakis: I'm
268
00:30:23.880 --> 00:30:25.560
Nicholas Matsakis: On your jump out. We had some
269
00:30:27.510 --> 00:30:30.600
Nicholas Matsakis: Yes, just good old label break on you.
270
00:30:32.910 --> 00:30:34.320
Nicholas Matsakis: Know Nothing here at New Years.
271
00:30:35.400 --> 00:30:38.760
Nicholas Matsakis: All right, well, we're kind of at the end of our agenda, we can either
272
00:30:40.920 --> 00:30:42.540
Nicholas Matsakis: Call it or we can talk a little bit
273
00:30:48.450 --> 00:30:52.830
Nicholas Matsakis: Tired, but anyone has anything they want to bring up now's a good time.
274
00:30:57.120 --> 00:31:18.390
Josh: Without necessarily saying we should, would there be value in discussing the experimental keywords thing and motivation for it. Nico. You mentioned before that you felt like that picked up some momentum but then kind of lost the plot and you wanted to see that.
275
00:31:19.530 --> 00:31:26.010
Josh: pick it back up again. I'm wondering if you see any value in that one or if you'd rather defer that to another time.
276
00:31:28.050 --> 00:31:30.300
Nicholas Matsakis: We could talk about it. We don't have like a huge
277
00:31:31.980 --> 00:31:33.060
Nicholas Matsakis: Quorum of
278
00:31:34.590 --> 00:31:38.460
Nicholas Matsakis: People, but I'd be happy to spend a little time.
279
00:31:39.870 --> 00:31:41.580
Josh: Talking think there's value in it.
280
00:31:51.570 --> 00:31:59.640
Nicholas Matsakis: Well, it's sort of relevant in that we have to decide how we're going to move forward with the with the raw question. Um, and I do sort of think we should
281
00:32:04.350 --> 00:32:06.330
Nicholas Matsakis: I guess the thing I wanted to say is that
282
00:32:08.370 --> 00:32:11.220
Nicholas Matsakis: To me, the higher bit is that there's a change
283
00:32:12.540 --> 00:32:14.730
Nicholas Matsakis: It's more about a change in how we
284
00:32:16.230 --> 00:32:18.270
Nicholas Matsakis: Approach our design.
285
00:32:20.370 --> 00:32:24.000
Nicholas Matsakis: Then even the technical side of it, like there would be a goal of
286
00:32:24.930 --> 00:32:31.200
Nicholas Matsakis: You have the problems and we were trying to, we will be sort of looking for what is the right building blocks, you need to model solutions.
287
00:32:31.680 --> 00:32:41.790
Nicholas Matsakis: And can we expose those before we start talking as much about the economics and the thing that I haven't done which has been holding me up on talking about this is that I wanted to go look at
288
00:32:43.110 --> 00:32:48.420
Nicholas Matsakis: Older issues and try to think about how that would how that might have played out.
289
00:32:49.890 --> 00:32:59.580
Nicholas Matsakis: And I think one example that comes to mind. We've been talking about try blocks and so forth. And I think something like label break value actually
290
00:33:00.510 --> 00:33:08.520
Nicholas Matsakis: Might be like if you look at what is the primitive, you need to implement, question mark, and the different possible semantics and try functions and so forth, given that you have procedural macros.
291
00:33:09.570 --> 00:33:18.960
Nicholas Matsakis: It's probably something like break likely will break value the lesson control at it in that control flow. And in fact, the original RFC sport expressed in terms of such a
292
00:33:19.680 --> 00:33:26.970
Nicholas Matsakis: Construct so we could have potentially stabilized some form of that right that maybe only procedural macros have access to that would have been allowed
293
00:33:28.200 --> 00:33:37.170
Nicholas Matsakis: And then we could have put out a call saying like, hey, we want. There's like several variations. We want people to try to implement these and procedural macros, so we can experiment with them.
294
00:33:38.070 --> 00:33:50.070
Nicholas Matsakis: And feel free to make more and register them and we'll have a list of like different variations and will actually try them out right and write down our feelings about them. And then at the end, we'll sort of decide if we want to bring any of those
295
00:33:51.240 --> 00:33:54.930
Nicholas Matsakis: Entry or not. Maybe we never do. Um,
296
00:33:55.980 --> 00:33:59.880
Nicholas Matsakis: And we would always have this capability exposed right but like
297
00:34:01.140 --> 00:34:03.210
Nicholas Matsakis: And people could build on and really use it in production.
298
00:34:04.650 --> 00:34:05.700
Nicholas Matsakis: And I think that would sort of it.
299
00:34:08.070 --> 00:34:15.390
Nicholas Matsakis: I think earlier. The reason I bring up that exact example is one of the questions are on tribal Xmas do we okay rap or not and so forth. And I think
300
00:34:18.000 --> 00:34:25.440
Nicholas Matsakis: The answer is that's an ergonomic question, to some extent, not a capability question the capability you need is to to be able to
301
00:34:27.840 --> 00:34:36.180
Nicholas Matsakis: Break sort of two different parts of the code and pass the value back and forth. And in fact, when we implemented tribal ACTS LIKE THE FIRST THING Taylor did was to refactor. And I bet.
302
00:34:36.600 --> 00:34:47.550
Nicholas Matsakis: add support for really will be value into the compiler, because that was how we implemented as it is sugary. Um, so that's sort of the workflow. I'm imagining that's the best example I can come up with where I think it would
303
00:34:49.020 --> 00:35:00.210
Nicholas Matsakis: Have applied very nicely, or at least have applied, I don't know, like racing await. It's a little trickier to think, I mean it might have meant that we tried to stabilize some form of generator, but that seems hard because
304
00:35:01.800 --> 00:35:06.720
Nicholas Matsakis: generators are really complicated like as an example where I think it doesn't necessarily work as well.
305
00:35:08.700 --> 00:35:25.140
Nicholas Matsakis: Because the whole point is that we were able to expose like you have a complex mechanism under the hood that we didn't want to stabilize. But we wanted to expose simpler front ends to it. Um, similar about a minor player generator syntax that we might have used it for a way
306
00:35:26.220 --> 00:35:35.940
Nicholas Matsakis: We might have said, Okay, well, we'll export AC functions both an ugly await need to wrap around so that we can settle a weight space food or food out of weight or letting people go both ways.
307
00:35:38.280 --> 00:35:39.090
Before we settle it.
308
00:35:40.710 --> 00:35:48.630
Nicholas Matsakis: So I kind of think that one worked out was painful. We could have made it less painful, but having a syntax was a good thing. All things considered.
309
00:35:52.020 --> 00:35:55.200
Nicholas Matsakis: That was that's kind of my take right now on it.
310
00:35:56.610 --> 00:35:59.160
Nicholas Matsakis: It's a useful tool, but no one would be right to apply it.
311
00:36:15.030 --> 00:36:19.050
Nicholas Matsakis: I guess I think for raw references might be an example where we
312
00:36:21.450 --> 00:36:29.700
Nicholas Matsakis: I would want. I don't know that we need to wrap them up in something only procedural macros can say just don't know that I want to expose the ampersand raw sometimes
313
00:36:31.770 --> 00:36:32.010
But
314
00:36:34.110 --> 00:36:46.350
Josh: I mean, I think the difference between the only procedural micros can spell this and the you need a magic invoke or syntax for a key word to spell. This is a
315
00:36:47.340 --> 00:36:52.350
Josh: implementation detail, it's an important one. But it's separate from the question of
316
00:36:52.800 --> 00:37:06.030
Josh: Do we want to have a way to say this is an experimental feature you're playing with with no defined syntax, but you're still allowed to use it until there's a syntax and then maybe the syntax pops up in addition
317
00:37:09.150 --> 00:37:24.270
Felix Klock: Isn't isn't there one potential difference in that simulate requires a procedural Macrovision votes means that it only works in macro extension context, while a key magic keyword creator can work with really anywhere, the compiler can parse or conceal token I something
318
00:37:27.780 --> 00:37:28.560
Nicholas Matsakis: Yes.
319
00:37:32.160 --> 00:37:34.170
Nicholas Matsakis: Does seem like a general generally
320
00:37:36.150 --> 00:37:37.110
Nicholas Matsakis: Like you're saying
321
00:37:38.640 --> 00:37:47.490
Felix Klock: Nothing we're proposing. Now I think runs into this issue, but I just think about doing for the so maybe it's not worth worrying about, but it's just something where one might have a general purpose constructs.
322
00:37:48.270 --> 00:37:48.750
Nicholas Matsakis: Yeah.
323
00:37:48.840 --> 00:37:49.140
Felix Klock: You know,
324
00:37:49.230 --> 00:37:49.710
Nicholas Matsakis: They weren't gonna
325
00:37:49.920 --> 00:37:54.030
Nicholas Matsakis: Lie gesture, you can apply decorators to any item. Right.
326
00:37:55.950 --> 00:37:56.520
Nicholas Matsakis: So,
327
00:37:57.630 --> 00:37:58.680
Nicholas Matsakis: It's probably
328
00:38:00.360 --> 00:38:11.700
Nicholas Matsakis: Not too hard. Well, you can apply them 10 but they can have arbitrary token inside I do agree that's a difference, all I think it's not that huge, let me just means you have to pull the macro further out from
329
00:38:14.430 --> 00:38:15.960
Nicholas Matsakis: From this point where you're interested in
330
00:38:28.080 --> 00:38:44.760
Nicholas Matsakis: I don't know, but I do feel pretty pretty clear that it would be better to add if we don't think we like the ampersand Ross syntax which I don't personally think is that great. And it seems pretty clearly better to add some macro and say, okay we're exposing this as a macro now and
331
00:38:45.930 --> 00:38:53.340
Nicholas Matsakis: We may add, we can always add up sooner or later. But like, for now, it's a macro and because we know we need to solve, even though we need to get it in your hands faster.
332
00:38:55.590 --> 00:38:58.140
Nicholas Matsakis: And we'll come back to how we think will be the best way to spell it.
333
00:39:04.320 --> 00:39:13.800
Josh: Another option just for completeness sake is if we do know that we intend to expose that syntax over in addition boundary
334
00:39:14.190 --> 00:39:33.420
Josh: And people need raw pointers in code that can't upgrade to 2021 edition, then they could always use a macro from a crate that is in 2021 and invoke it in their crate that is not because we handle macro boundaries correctly in that regard.
335
00:39:36.120 --> 00:39:36.690
Nicholas Matsakis: Very
336
00:39:37.830 --> 00:39:37.980
Nicholas Matsakis: Very
337
00:39:59.820 --> 00:40:00.150
Nicholas Matsakis: Yeah.
338
00:40:06.240 --> 00:40:11.430
Nicholas Matsakis: Trying to figure out ways. The question here. I guess the question is do we like this idea of trying to expose capabilities.
339
00:40:12.810 --> 00:40:13.560
Nicholas Matsakis: Or macros.
340
00:40:14.790 --> 00:40:18.540
Nicholas Matsakis: First unsettled syntax questions later if we need to.
341
00:40:30.330 --> 00:40:37.920
ecstatic-morse: Does anyone have like an argument against why we do this the only one I can think of is magic macros, or maybe not the good precedent to set
342
00:40:40.350 --> 00:40:41.550
ecstatic-morse: I think the arsenal rah rah.
343
00:40:42.300 --> 00:40:44.790
Nicholas Matsakis: I think there's like two arguments. I can see
344
00:40:47.490 --> 00:40:48.150
Nicholas Matsakis: One of them, which I
345
00:40:49.290 --> 00:40:51.960
Nicholas Matsakis: Don't give a lot of the clip I but I think it's
346
00:40:53.550 --> 00:40:56.400
Nicholas Matsakis: One is like the map the language will have these
347
00:40:57.510 --> 00:41:04.860
Nicholas Matsakis: These things right. These are forever in the spec. It's a sort of extra complexity above what you would have needed hedging on what you want it in the first place.
348
00:41:05.310 --> 00:41:12.840
Nicholas Matsakis: I think that's true. I don't worry so much about that I think is like the core that as one of the core things were deciding, we don't care about the other would be
349
00:41:15.450 --> 00:41:20.610
Nicholas Matsakis: For you to stay on that point, I think a good example of that might be if you if you made a tribe block.
350
00:41:22.710 --> 00:41:26.550
Nicholas Matsakis: The entire tribe like be like this primitive thing that you're exposing
351
00:41:26.970 --> 00:41:35.100
Nicholas Matsakis: Then you might well wind up with like two or three variations of tribe blocks that you now have available you compiler has to support forever. And so I think there's a real strong
352
00:41:35.790 --> 00:41:46.410
Nicholas Matsakis: It should be it's important for us to think about what is the right primitive. That's why I brought up label break valuable like it should be a small one that doesn't expose the full feature because otherwise.
353
00:41:47.490 --> 00:41:52.170
Nicholas Matsakis: You are living if you're in change even small details you wind up with a lot of duplication and
354
00:41:53.190 --> 00:41:57.000
Nicholas Matsakis: And then I think the other counter argument would be that
355
00:41:59.790 --> 00:42:10.590
Nicholas Matsakis: Now let's mention what was it, oh, I know we have thought about. We have asked us be have questioned whether we're handling, we often have this this instinct to defer thorny syntax questions.
356
00:42:11.340 --> 00:42:19.770
Nicholas Matsakis: And we have wondered in the past, whether we are actually doing ourselves any favors by by doing so. And it might be that we're like,
357
00:42:21.840 --> 00:42:26.340
Nicholas Matsakis: Quitting off in some sense the hardest questions until the very end. And then we get into
358
00:42:27.360 --> 00:42:31.200
Nicholas Matsakis: Like right before we want to stabilize something we have to fight the hardest most
359
00:42:33.450 --> 00:42:44.580
Nicholas Matsakis: divisive Battle of take away food or food away or whatever it is. Right. It's like the worst time to fight that battle on sentence. Um, I think that's true also
360
00:42:46.380 --> 00:42:56.760
Nicholas Matsakis: Although I guess my hope is that the battles become less divisive when people have had time and you can point to real code and you can, for that matter, probably
361
00:42:57.900 --> 00:43:01.350
Nicholas Matsakis: You know, try to limit the comments to like
362
00:43:02.490 --> 00:43:12.750
Nicholas Matsakis: Kind of focus people so that they're actually commenting on the experience and not what they imagined it will be like when they use this feature I think is what makes these battles so particularly ferocious right now.
363
00:43:17.250 --> 00:43:19.680
Nicholas Matsakis: I think those are the two counter arguments I can come up with.
364
00:43:23.520 --> 00:43:28.980
ecstatic-morse: Would you say those apply specifically to the raw reference case because it seems like
365
00:43:31.110 --> 00:43:45.750
ecstatic-morse: Like, I think this is mildly divisive but nowhere near as divisive is the were awake goes question was, I mean, this is sort of intended for a very small subset of users to use on a regular basis. Maybe that's wrong.
366
00:43:46.470 --> 00:43:47.310
Nicholas Matsakis: I don't think it's
367
00:43:48.630 --> 00:43:52.500
Nicholas Matsakis: I don't think that apply it. I think the first one of, like, do we end up with
368
00:43:54.060 --> 00:44:01.470
Nicholas Matsakis: Extra language. Wait, we never need maybe applies, but not not by a lot.
369
00:44:02.730 --> 00:44:13.650
Nicholas Matsakis: Like if we ended up with ampersand unsafe or something with a new type then now we have three internally compiler like three ways to take references, you know, the raw pointer. We have the MTN unsafe and we have the
370
00:44:14.580 --> 00:44:26.280
Nicholas Matsakis: Safe borrow, but maybe it turns out that raw pointer probably raw pointers in Arizona State for like two variations on the same thing. So that's not a lot of tech debt, like it's just kind of a class or something after the fact. Yeah.
371
00:44:28.050 --> 00:44:29.670
Nicholas Matsakis: And I think on the syntax question.
372
00:44:31.920 --> 00:44:33.390
Nicholas Matsakis: It's not as divisive, as you say, and
373
00:44:35.550 --> 00:44:38.010
Nicholas Matsakis: I don't know, like compared to the offset of the neck or something.
374
00:44:38.190 --> 00:44:48.840
ecstatic-morse: I mean, that doesn't help resolve the general question of, like, do we want to have the general mechanism for doing this. That helps in the future for my narrow interest of getting
375
00:44:50.520 --> 00:44:52.020
ecstatic-morse: Some former IRS available.
376
00:44:54.060 --> 00:45:07.350
Nicholas Matsakis: For us to make guidelines, like if I were going to write this in an RFC but I think local already started one I haven't really read that closely, but I think it would be useful to frame it in terms of the process, and especially guidelines for, like, if you're going to expose these
377
00:45:08.400 --> 00:45:13.950
Nicholas Matsakis: Things they should be, I guess, mostly just narrow building blocks as much as possible. And you should spend energy into
378
00:45:15.060 --> 00:45:17.910
Nicholas Matsakis: Like push as much as you can into the procedural macros, because
379
00:45:19.980 --> 00:45:25.620
Nicholas Matsakis: Know if most flexibility to people to know what they want to build and simplify the compiler.
380
00:45:31.080 --> 00:45:50.370
Lokathor: A lot of the comments on that RFC post word I I don't without trying to be pejorative, they were very narrowly focused on the examples that I happen to put into the text and I might not have conveyed properly the broad brushstrokes, of sort of where the idea was going
381
00:45:50.910 --> 00:45:51.300
Mm hmm.
382
00:45:53.070 --> 00:45:54.990
Lokathor: So may need revisions.
383
00:45:58.170 --> 00:46:06.150
Nicholas Matsakis: Yeah, that's definitely a thing that can happen is a new. I mean, it's a new way of working in this would take some it takes some imagination.
384
00:46:07.650 --> 00:46:10.200
Nicholas Matsakis: To imagine how it's going to work. And we're not can't really know it for sure.
385
00:46:11.340 --> 00:46:11.550
But
386
00:46:12.600 --> 00:46:15.360
Nicholas Matsakis: Not that much risk in the end we end up with a Roth macro
387
00:46:18.840 --> 00:46:19.680
Nicholas Matsakis: Or a few macros.
388
00:46:23.430 --> 00:46:24.480
Nicholas Matsakis: I did reach out. I
389
00:46:26.250 --> 00:46:34.560
Nicholas Matsakis: I reached out to to your Huda and asked him about the member experience because I know they've been doing this and he talks about it in the keynote Ember keynote most recent one.
390
00:46:35.850 --> 00:46:37.200
Nicholas Matsakis: But he didn't have any like
391
00:46:38.220 --> 00:46:42.030
Nicholas Matsakis: Link to a great write up apparently I guess for
392
00:46:43.110 --> 00:46:47.670
Nicholas Matsakis: They talk about it. I think the keynote was some of their first public communication about this approach as an approach.
393
00:46:49.530 --> 00:46:54.150
Nicholas Matsakis: But at least we can link to that, I guess it's worth watching. If you haven't watched it number comes
394
00:46:55.740 --> 00:46:56.250
Nicholas Matsakis: From this year.
395
00:47:01.740 --> 00:47:06.780
Nicholas Matsakis: Do we feel we need like as far as raw graph goes, what do we need to move on that we just need
396
00:47:07.950 --> 00:47:09.960
Nicholas Matsakis: We need an RC when you didn't FCP
397
00:47:13.860 --> 00:47:25.110
Nicholas Matsakis: And should we decided in isolation or like so I'm trying to ask, I guess. Do we feel we have to decide on this bigger question or can we just say, well, here we're going to make a macro called Robin and run with it.
398
00:47:26.430 --> 00:47:29.040
Nicholas Matsakis: But even there, there's a few questions is there to macros.
399
00:47:32.040 --> 00:47:34.050
Nicholas Matsakis: Mute, or is it the new
400
00:47:39.480 --> 00:47:40.230
Nicholas Matsakis: Least one question.
401
00:47:48.690 --> 00:47:51.450
ecstatic-morse: Mean we probably want to kick that back to Ralph
402
00:47:52.620 --> 00:47:54.120
Nicholas Matsakis: Yeah, we want
403
00:47:55.860 --> 00:48:00.420
ecstatic-morse: We think we're not going to do ampersand raw in the near future.
404
00:48:01.440 --> 00:48:07.710
ecstatic-morse: A macro is probably the best choice, although we haven't thought that much. How would you write the macro
405
00:48:09.000 --> 00:48:14.100
ecstatic-morse: And then we can decide what it expands to or how we do that expansion precisely
406
00:48:15.270 --> 00:48:15.990
ecstatic-morse: In the future.
407
00:48:17.400 --> 00:48:17.670
Nicholas Matsakis: Right.
408
00:48:18.330 --> 00:48:24.750
ecstatic-morse: Because I think if we block, it seems like the larger discussion might take a while to like iron out all the details.
409
00:48:25.620 --> 00:48:26.070
Nicholas Matsakis: Yeah.
410
00:48:26.820 --> 00:48:28.650
ecstatic-morse: And so we'd be blocking RF
411
00:48:28.740 --> 00:48:29.400
ecstatic-morse: Even longer
412
00:48:29.610 --> 00:48:34.560
Nicholas Matsakis: On that we explicitly want this to have like we want people to be able to do this.
413
00:48:35.940 --> 00:48:36.180
Nicholas Matsakis: On
414
00:48:37.200 --> 00:48:46.710
Nicholas Matsakis: There's not like some greater abstraction, you're building around this right. It's just, this is a capability we want to expose that people will just directly use in most cases. Yeah.
415
00:48:50.160 --> 00:48:53.970
Nicholas Matsakis: The only question would be, you could imagine some designs, where it round up in a
416
00:48:56.010 --> 00:49:07.380
Nicholas Matsakis: We took the most extreme version where we don't. The only expose these through procedural macros, then there might be some creating critical, you need to get in the providers like the raw ref grade that all it does is provide the simple
417
00:49:08.550 --> 00:49:09.180
Nicholas Matsakis: Macros
418
00:49:12.270 --> 00:49:15.180
Nicholas Matsakis: But for we just put them in build them in the compiler and
419
00:49:16.260 --> 00:49:20.910
Nicholas Matsakis: Today, I don't think Ross can have a strong opinion about this new. Well, it's just gonna want this done.
420
00:49:22.320 --> 00:49:26.730
Nicholas Matsakis: You really just wanted to add it to mirror know you have a surface syntax or something. But, um,
421
00:49:29.160 --> 00:49:29.640
Nicholas Matsakis: But yeah
422
00:49:33.030 --> 00:49:34.710
Nicholas Matsakis: I guess we just did write a proposal and
423
00:49:35.910 --> 00:49:38.100
Nicholas Matsakis: Put it on the thread something concrete that people can
424
00:49:39.690 --> 00:49:40.680
Nicholas Matsakis: Propose alternatives to
425
00:49:51.030 --> 00:49:51.300
Okay.
426
00:49:54.780 --> 00:49:57.600
ecstatic-morse: You can put that for me under action items if you like.
427
00:49:58.620 --> 00:49:59.640
ecstatic-morse: Or I will put that for me.
428
00:50:01.020 --> 00:50:01.770
ecstatic-morse: Unless you want to do it.
429
00:50:06.570 --> 00:50:07.170
ecstatic-morse: Stephanie.
430
00:50:14.550 --> 00:50:14.940
Nicholas Matsakis: Said,
431
00:50:16.830 --> 00:50:17.190
Josh: I will go
432
00:50:17.580 --> 00:50:21.660
Nicholas Matsakis: From here the action item is I guess look authorial make a point to leave a comment on your RC.
433
00:50:22.800 --> 00:50:23.220
Nicholas Matsakis: About the
434
00:50:24.330 --> 00:50:29.130
Nicholas Matsakis: Bigger picture since I feel like saying it out loud, I guess, helped me to crystallize it a little anyway.
435
00:50:37.560 --> 00:50:38.250
Nicholas Matsakis: ended the meeting.
436
00:50:39.420 --> 00:50:40.380
Nicholas Matsakis: washing the clothes.
437
00:50:45.180 --> 00:50:49.200
Nicholas Matsakis: Wham, O into motions doing it. All right, thank you everybody.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment