--- title: Triage meeting 2022-05-24 tags: triage-meeting --- # T-lang meeting agenda * Meeting date: 2022-05-24 ## Attendance * Team members: Felix, Josh * Others: Mark, Urgau, C. Kuhnke ## Meeting roles * Action item scribe: Mark * Note-taker: Felix ## Other agenda items - unsized locals: https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/Status.20of.20unsized.20locals * conversation on zulip topic indicates that people in general are okay with `unsized_fn_params`; its `unsized_locals` that present a bigger problem. * Its possible we could stabilize `unsized_fn_params` on its own, though the experience of using `unsized_fn_params` may be somewhat painful in the absence of `unsized_locals` * risk of unsoundness: LLVM alloca does not respect alignment. This is something we could workaround (e.g. by over-requesting and then adjusting) or fix in LLVM. * what about the risks commonly associated with `alloca`? * Rust provides stack probes (for targets that can support them; note Tier-1 ARM 64 still has [open issue re stack probes](https://github.com/rust-lang/rust/issues/77071)), so that addresses one vector typically associated with `alloca` in the context of C. * error associated with failure here is not as a nice as typical memory allocation failure * All these issues also apply to `let x = [0; 1024*1024*1024];` * (some targets emulate `alloca` via `malloc` -- is that actually routing through Rust's GlobalAllocator? Or is this some LLVM trickery that side-steps that?) * concern: will new users use this by accident when they didn't intend to? (But that could be addressed, e.g. with a lint, or with some language/type machinery like `Alloca<T: ?Sized>`, or some function intrinsic) ## Scheduled meetings ## Action item review * [Action items list](https://hackmd.io/gstfhtXYTHa3Jv-P_2RK7A) ## Pending lang team project proposals ### "Deprecate target_vendor " lang-team#102 **Link:** https://github.com/rust-lang/lang-team/issues/102 ### "Support platforms with size_t != uintptr_t" lang-team#125 **Link:** https://github.com/rust-lang/lang-team/issues/125 ### "Positional Associated Types" lang-team#126 **Link:** https://github.com/rust-lang/lang-team/issues/126 ### "Interoperability With C++ Destruction Order" lang-team#135 **Link:** https://github.com/rust-lang/lang-team/issues/135 ### "allow construction of non-exhaustive structs when using functional update syntax" lang-team#143 **Link:** https://github.com/rust-lang/lang-team/issues/143 ### "Add #[deprecated_safe] attribute to allow functions be be marked unsafe in a backwards compatible fashion" lang-team#147 **Link:** https://github.com/rust-lang/lang-team/issues/147 ### "Async fns in traits" lang-team#150 **Link:** https://github.com/rust-lang/lang-team/issues/150 ### "dyn* trait" lang-team#158 **Link:** https://github.com/rust-lang/lang-team/issues/158 ### "Initiative: `?` traits, `try` blocks, `yeet` exprs, oh my" lang-team#160 **Link:** https://github.com/rust-lang/lang-team/issues/160 ### "Initiative: Ghost types and blocks" lang-team#161 **Link:** https://github.com/rust-lang/lang-team/issues/161 ### "Keyword generics" lang-team#162 **Link:** https://github.com/rust-lang/lang-team/issues/162 ### "Add const evaluatable `where const { <block> }`" lang-team#163 **Link:** https://github.com/rust-lang/lang-team/issues/163 ## PRs on the lang-team repo None. ## RFCs waiting to be merged None. ## Proposed FCPs **Check your boxes!** ### "Refined trait implementations" rfcs#3245 **Link:** https://github.com/rust-lang/rfcs/pull/3245 ### "Stabilize `let else`" rust#93628 **Link:** https://github.com/rust-lang/rust/pull/93628 ### "Lang: Stabilize usage of rustc_nonnull_optimization_guaranteed on -1" rust#97122 **Link:** https://github.com/rust-lang/rust/issues/97122 ## Active FCPs ### "Create a types team" rfcs#3254 **Link:** https://github.com/rust-lang/rfcs/pull/3254 ### "tracking issue for `infer_static_outlives_requirements` (RFC 2093 spinoff)" rust#54185 **Link:** https://github.com/rust-lang/rust/issues/54185 ### "Remove migrate borrowck mode" rust#95565 **Link:** https://github.com/rust-lang/rust/pull/95565 * in last two days, description was edited to say that a stabilization post is prerequisite before merge; that still remains to be done. ### "Modify MIR building to drop repeat expressions with length zero" rust#95953 **Link:** https://github.com/rust-lang/rust/pull/95953 * last week, scott resolved their concern * since then, there has been progress on implementation; all participants in the discussion seem happy with the current direction ### "Remove label/lifetime shadowing warnings" rust#96296 **Link:** https://github.com/rust-lang/rust/pull/96296 ### "Deprecate target_vendor " lang-team#102 **Link:** https://github.com/rust-lang/lang-team/issues/102 ### "Positional Associated Types" lang-team#126 **Link:** https://github.com/rust-lang/lang-team/issues/126 ### "Interoperability With C++ Destruction Order" lang-team#135 **Link:** https://github.com/rust-lang/lang-team/issues/135 ### "allow construction of non-exhaustive structs when using functional update syntax" lang-team#143 **Link:** https://github.com/rust-lang/lang-team/issues/143 ### "Add #[deprecated_safe] attribute to allow functions be be marked unsafe in a backwards compatible fashion" lang-team#147 **Link:** https://github.com/rust-lang/lang-team/issues/147 ### "Async fns in traits" lang-team#150 **Link:** https://github.com/rust-lang/lang-team/issues/150 ### "Initiative: `?` traits, `try` blocks, `yeet` exprs, oh my" lang-team#160 **Link:** https://github.com/rust-lang/lang-team/issues/160 ### "Initiative: Ghost types and blocks" lang-team#161 **Link:** https://github.com/rust-lang/lang-team/issues/161 ### "Keyword generics" lang-team#162 **Link:** https://github.com/rust-lang/lang-team/issues/162 ## P-critical issues None. ## Nominated RFCs, PRs and issues None.