Created
May 18, 2020 21:27
-
-
Save nikomatsakis/766c128f468f8f7a2d634a0d996e7302 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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