|
| 1 | +--- |
| 2 | +title: Triage meeting 2022-05-31 |
| 3 | +tags: triage-meeting |
| 4 | +--- |
| 5 | + |
| 6 | +# T-lang meeting agenda |
| 7 | + |
| 8 | +* Meeting date: 2022-05-31 |
| 9 | + |
| 10 | +## Attendance |
| 11 | + |
| 12 | +* Team members: pnkfelix, joshtriplett |
| 13 | +* Others: simulacrum |
| 14 | + |
| 15 | +## Meeting roles |
| 16 | + |
| 17 | +* Action item scribe: simulacrum |
| 18 | +* Note-taker: pnkfelix |
| 19 | + |
| 20 | +## Additional agenda items |
| 21 | + |
| 22 | +- Kangrejos - Rust in Linux conference (workshop/summit), in Spain in mid-August (after RustConf) |
| 23 | + - planned in-person; no known plan to support hybrid for this specific event |
| 24 | + |
| 25 | +- Unwinding from Drop impl |
| 26 | + - Amanieu seeking next steps on this |
| 27 | + - Rough consensus: we need a clear story for what should be done by applications that want to never stop (e.g. web servers catching panics within requests and returning 500 Internal Server Error) |
| 28 | + |
| 29 | +- cfg_accessible being worked on |
| 30 | + - https://github.com/rust-lang/rust/pull/97391 |
| 31 | + - May allow unblocking cfg_accessible |
| 32 | + - Discussion of certain implementation details, relating to trying to use feature in current-crate |
| 33 | + - Josh points out that the main use-case for this feature is for conditionalizing on accessibilty from *other crates*, so we would be happy if this feature simply errored out with "not supported" if you tried to apply it to something in the current crate. |
| 34 | + |
| 35 | +## Action item review |
| 36 | + |
| 37 | +* [Action items list](https://hackmd.io/gstfhtXYTHa3Jv-P_2RK7A) |
| 38 | + |
| 39 | +## Pending lang team project proposals |
| 40 | +### "Deprecate target_vendor " lang-team#102 |
| 41 | + |
| 42 | +**Link:** https://github.com/rust-lang/lang-team/issues/102 |
| 43 | + |
| 44 | +### "Support platforms with size_t != uintptr_t" lang-team#125 |
| 45 | + |
| 46 | +**Link:** https://github.com/rust-lang/lang-team/issues/125 |
| 47 | + |
| 48 | +### "Positional Associated Types" lang-team#126 |
| 49 | + |
| 50 | +**Link:** https://github.com/rust-lang/lang-team/issues/126 |
| 51 | + |
| 52 | +### "Interoperability With C++ Destruction Order" lang-team#135 |
| 53 | + |
| 54 | +**Link:** https://github.com/rust-lang/lang-team/issues/135 |
| 55 | + |
| 56 | +### "allow construction of non-exhaustive structs when using functional update syntax" lang-team#143 |
| 57 | + |
| 58 | +**Link:** https://github.com/rust-lang/lang-team/issues/143 |
| 59 | + |
| 60 | +### "Add #[deprecated_safe] attribute to allow functions be be marked unsafe in a backwards compatible fashion" lang-team#147 |
| 61 | + |
| 62 | +**Link:** https://github.com/rust-lang/lang-team/issues/147 |
| 63 | + |
| 64 | +### "Async fns in traits" lang-team#150 |
| 65 | + |
| 66 | +**Link:** https://github.com/rust-lang/lang-team/issues/150 |
| 67 | + |
| 68 | +### "dyn* trait" lang-team#158 |
| 69 | + |
| 70 | +**Link:** https://github.com/rust-lang/lang-team/issues/158 |
| 71 | + |
| 72 | +### "Initiative: `?` traits, `try` blocks, `yeet` exprs, oh my" lang-team#160 |
| 73 | + |
| 74 | +**Link:** https://github.com/rust-lang/lang-team/issues/160 |
| 75 | + |
| 76 | +### "Initiative: Ghost types and blocks" lang-team#161 |
| 77 | + |
| 78 | +**Link:** https://github.com/rust-lang/lang-team/issues/161 |
| 79 | + |
| 80 | +### "Keyword generics" lang-team#162 |
| 81 | + |
| 82 | +**Link:** https://github.com/rust-lang/lang-team/issues/162 |
| 83 | + |
| 84 | +### "Add const evaluatable `where const { <block> }`" lang-team#163 |
| 85 | + |
| 86 | +**Link:** https://github.com/rust-lang/lang-team/issues/163 |
| 87 | + |
| 88 | + |
| 89 | + |
| 90 | +## PRs on the lang-team repo |
| 91 | + |
| 92 | +None. |
| 93 | + |
| 94 | + |
| 95 | + |
| 96 | + |
| 97 | +## RFCs waiting to be merged |
| 98 | + |
| 99 | +None. |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | + |
| 104 | +## Proposed FCPs |
| 105 | + |
| 106 | +**Check your boxes!** |
| 107 | +### "Refined trait implementations" rfcs#3245 |
| 108 | + |
| 109 | +**Link:** https://github.com/rust-lang/rfcs/pull/3245 |
| 110 | +- [**Tracking Comment**](https://github.com/rust-lang/rfcs/pull/3245#issuecomment-1116370994): |
| 111 | + > Team member @nikomatsakis has proposed to merge this. The next step is review by the rest of the tagged team members: |
| 112 | + > |
| 113 | + > * [x] @cramertj |
| 114 | + > * [ ] @joshtriplett |
| 115 | + > * [x] @nikomatsakis |
| 116 | + > * [x] @pnkfelix |
| 117 | + > * [ ] @scottmcm |
| 118 | + > |
| 119 | + > Concerns: |
| 120 | + > |
| 121 | + > * unresolved-question-for-next-edition (https://github.com/rust-lang/rfcs/pull/3245#issuecomment-1116371336) |
| 122 | + > |
| 123 | + > Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! |
| 124 | + > |
| 125 | + > See [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me. |
| 126 | +- [**Initiating Comment**](https://github.com/rust-lang/rfcs/pull/3245#issuecomment-1116370985): |
| 127 | + > @rfcbot fcp merge |
| 128 | + > |
| 129 | + > I think we've got consensus on most of this here -- the main question is whether, in the next edition, `#[refine]` ought to be required in order to see the effects of the change or optional (perhaps with a lint). I'm going to separate propose a concern to move this to an unresolved question, I dont' see why it should block this RFC from going forward now. |
| 130 | +
|
| 131 | + |
| 132 | + |
| 133 | + |
| 134 | +### "Stabilize `let else`" rust#93628 |
| 135 | + |
| 136 | +**Link:** https://github.com/rust-lang/rust/pull/93628 |
| 137 | +- [**Tracking Comment**](https://github.com/rust-lang/rust/pull/93628#issuecomment-1029383585): |
| 138 | + > Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members: |
| 139 | + > |
| 140 | + > * [x] @cramertj |
| 141 | + > * [x] @joshtriplett |
| 142 | + > * [x] @nikomatsakis |
| 143 | + > * [x] @pnkfelix |
| 144 | + > * [ ] @scottmcm |
| 145 | + > |
| 146 | + > Concerns: |
| 147 | + > |
| 148 | + > * need-consistency-rvalue-temporary-rules-between-let-and-let-else (https://github.com/rust-lang/rust/pull/93628#issuecomment-1055738523) |
| 149 | + > * ~~not-while-rustfmt-breaks-on-it~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1032936704 |
| 150 | + > * ~~semicolon~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1059799661 |
| 151 | + > * ~~stabilization-report~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1033846359 |
| 152 | + > * ~~summarize-concerns~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1056785904 |
| 153 | + > |
| 154 | + > Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! |
| 155 | + > |
| 156 | + > See [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me. |
| 157 | +- [**Initiating Comment**](https://github.com/rust-lang/rust/pull/93628#issuecomment-1029383577): |
| 158 | + > Shall we stabilize `let else` syntax? We've had many demonstrated uses, including extensively throughout `rust-lang/rust`, we've seen the value of it, and there aren't any known issues with it. |
| 159 | + > |
| 160 | + > @rfcbot merge |
| 161 | +
|
| 162 | + |
| 163 | + |
| 164 | + |
| 165 | + |
| 166 | +## Active FCPs |
| 167 | +### "Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1" rust#97122 |
| 168 | + |
| 169 | +**Link:** https://github.com/rust-lang/rust/issues/97122 |
| 170 | + |
| 171 | +- scottmcm: Where are these types exposed? |
| 172 | +- `std::os::unix::io` |
| 173 | + |
| 174 | +### "Deprecate target_vendor " lang-team#102 |
| 175 | + |
| 176 | +**Link:** https://github.com/rust-lang/lang-team/issues/102 |
| 177 | + |
| 178 | +### "Positional Associated Types" lang-team#126 |
| 179 | + |
| 180 | +**Link:** https://github.com/rust-lang/lang-team/issues/126 |
| 181 | + |
| 182 | +### "Interoperability With C++ Destruction Order" lang-team#135 |
| 183 | + |
| 184 | +**Link:** https://github.com/rust-lang/lang-team/issues/135 |
| 185 | + |
| 186 | +### "allow construction of non-exhaustive structs when using functional update syntax" lang-team#143 |
| 187 | + |
| 188 | +**Link:** https://github.com/rust-lang/lang-team/issues/143 |
| 189 | + |
| 190 | +### "Add #[deprecated_safe] attribute to allow functions be be marked unsafe in a backwards compatible fashion" lang-team#147 |
| 191 | + |
| 192 | +**Link:** https://github.com/rust-lang/lang-team/issues/147 |
| 193 | + |
| 194 | +### "Async fns in traits" lang-team#150 |
| 195 | + |
| 196 | +**Link:** https://github.com/rust-lang/lang-team/issues/150 |
| 197 | + |
| 198 | +### "Initiative: `?` traits, `try` blocks, `yeet` exprs, oh my" lang-team#160 |
| 199 | + |
| 200 | +**Link:** https://github.com/rust-lang/lang-team/issues/160 |
| 201 | + |
| 202 | +### "Initiative: Ghost types and blocks" lang-team#161 |
| 203 | + |
| 204 | +**Link:** https://github.com/rust-lang/lang-team/issues/161 |
| 205 | + |
| 206 | +### "Keyword generics" lang-team#162 |
| 207 | + |
| 208 | +**Link:** https://github.com/rust-lang/lang-team/issues/162 |
| 209 | + |
| 210 | + |
| 211 | + |
| 212 | +## P-critical issues |
| 213 | + |
| 214 | +None. |
| 215 | + |
| 216 | + |
| 217 | + |
| 218 | + |
| 219 | +## Nominated RFCs, PRs and issues discussed this meeting |
| 220 | + |
| 221 | + |
| 222 | +### "Stabilize `$$` and `${ignore}` in Rust 1.62.0" rust#95860 |
| 223 | + |
| 224 | +**Link:** https://github.com/rust-lang/rust/pull/95860 |
| 225 | + |
| 226 | + * CAD97 had some concerns |
| 227 | + * CAD97 pointed out that josh themself [got the syntax wrong](https://github.com/rust-lang/rust/pull/95860#issuecomment-1139881538) when interacting on issue; this gave them pause: Is this a sign that the syntax is itself overly confusing? |
| 228 | + * scottmcm is not sure we should read too much into that |
| 229 | + * (the specific concern is the use of `$op(var)` rather than `$op($var)`, since the latter is what many will expect): conflicting mental models of "`$var` is how you name a metavariable" versus "`$var` is the expansion of the metavariable var." |
| 230 | + * scottmcm: will we ever want random tokens in the input to `$ignore(..)`, or is it always going to be restricted to just metavariables? |
| 231 | + * scottmcm: should we ask a libs expert about this? |
| 232 | + * josh: why would this be a libs matter? |
| 233 | + * scottmcm: "libs" is a placeholder for "person who writes macros a lot"; e.g. dtolnay. |
| 234 | + * scottmcm: but maybe such people aready weighed in on the RFC? |
| 235 | + * simulacrum: was the alternative discussed on the RFC? |
| 236 | + * josh: don't think so |
| 237 | + * simulacrum: requiring the dollar sign would be backwards compatible with allowing it to be dropped. |
| 238 | + * josh: the real point is that its an error to include the dollar sign in the first place |
| 239 | + * pnkfelix: it comes down to that CAD97 question of what the right mental model is: "`$var` is how you name a metavariable" versus "`$var` is the expansion of the metavariable var." |
| 240 | + * pnkfelix: and this sets a precedent, right? This is the first time we're adding this kind of meta-operation. |
| 241 | + * josh: could support both options |
| 242 | + * scottmcm: or we could add the second option when we have another meta-operation that would motivate such support. |
| 243 | + * simulacrum: for now I would suggest changing to requiring `$var` now and not try to accept the other. It seems like the easier way to start, to force people to write the `$` and then if we can justify taking it out later, that will be an easier shift to make. |
| 244 | + * pnkfelix: so what would we want if we *were* trying to also adopt the other meta operations like `$count(..)`, `$index(..)`, ... |
| 245 | + * https://github.com/markbt/rfcs/blob/macro_metavar_expr/text/0000-macro-metavar-expr.md#guide-level-explanation |
| 246 | + * josh: do we think we (subset of T-lang) can actually make a decision in *this* meeting? or should we raise a concern and resolve the matter asynchronously? |
| 247 | + * pnkfelix: lets raise a concern. |
| 248 | + |
| 249 | +### “Warn about dead tuple struct fields” rust#95977 |
| 250 | + |
| 251 | +Link: https://github.com/rust-lang/rust/pull/95977 |
| 252 | + |
| 253 | +- Do we have a migration plan? |
| 254 | +- Josh: labeled relnotes, we should mention it in release notes and wait a few releases |
| 255 | +- Mark: Should this special case PhantomData? (Mark to post a comment.) |
| 256 | + |
| 257 | + |
| 258 | +### "Stabilize `let_chains` in Rust 1.63.0" rust#94927 |
| 259 | + |
| 260 | +**Link:** https://github.com/rust-lang/rust/pull/94927 |
| 261 | + |
| 262 | +* With this, `let x = ...` now gets treated as an expression in terms of how macro expression parsing works. |
| 263 | +* https://github.com/rust-lang/rust/pull/97295 |
| 264 | +* josh: if being conservative in this case is as simple as PR 97295, then I'm going to register that my concern is indeed blocking on landing PR #97295 first. |
| 265 | + |
| 266 | +## Nominated RFCs, PRs and issues NOT discussed this meeting |
| 267 | +### "Covariance-related GAT lifetime mismatch" rust#89352 |
| 268 | + |
| 269 | +**Link:** https://github.com/rust-lang/rust/issues/89352 |
| 270 | + |
| 271 | +### "Neither require nor imply lifetime bounds on opaque type for well formedness" rust#95474 |
| 272 | + |
| 273 | +**Link:** https://github.com/rust-lang/rust/pull/95474 |
| 274 | + |
| 275 | +### "nested RPIT and HRTB: unclear semantics and future incompatibility" rust#96194 |
| 276 | + |
| 277 | +**Link:** https://github.com/rust-lang/rust/issues/96194 |
| 278 | + |
| 279 | +### "Change enum->int casts to not go through MIR casts." rust#96862 |
| 280 | + |
| 281 | +**Link:** https://github.com/rust-lang/rust/pull/96862 |
| 282 | + |
| 283 | +### "Should `repr(transparent)` require *inhabited* 1-ZSTs?" rust#96921 |
| 284 | + |
| 285 | +**Link:** https://github.com/rust-lang/rust/issues/96921 |
| 286 | + |
| 287 | +### "clarify how Rust atomics correspond to C++ atomics" rust#97516 |
| 288 | + |
| 289 | +**Link:** https://github.com/rust-lang/rust/pull/97516 |
| 290 | + |
| 291 | +### "Document the effect of main's return value?" reference#1196 |
| 292 | + |
| 293 | +**Link:** https://github.com/rust-lang/reference/issues/1196 |
| 294 | + |
| 295 | +### "Specify what happens when casting fat pointers more specifically" reference#1206 |
| 296 | + |
| 297 | +**Link:** https://github.com/rust-lang/reference/pull/1206 |
| 298 | + |
| 299 | + |
| 300 | + |
| 301 | + |
0 commit comments