--- title: Planning meeting 2024-11-06 tags: ["T-lang", "planning-meeting", "minutes"] date: 2024-11-06 discussion: https://rust-lang.zulipchat.com/#narrow/channel/410673-t-lang.2Fmeetings/topic/Planning.20meeting.202024-11-06 url: https://hackmd.io/WI89j1Z0SY6eUROPfE5r_Q --- # T-lang planning meeting agenda - Meeting date: 2024-11-06 ## Attendance - People: TC, nikomatsakis, Josh, scottmcm, tmandry, Xiang, Yosh, Nadri ## Meeting roles - Minutes, driver: TC ## Calendar - November 13 - `Sized` hierarchy / aka `MetaSize` - November 20 -- Niko absent - Declarative macros. - November 27 - (day before US thanksgiving) - Match ergonomics. - December 4 - Review 2025H1 Project Goal draft slates - December 11 - 3/4 day meeting - Note: Need a rough timetable, and schedule things that need external presenters at times friendly to their timezone - Loop match? - Understand how Koka works. - Decision-making and conflict resolution. - Update on design goals? - `try` blocks RFC (tentative, confirm with Scott?) - https://github.com/rust-lang/rfcs/pull/3721 - December 18 -- scottmcm tentative - Leave for follow-up as decided on 11th. - Fall back to doing extended triage. - December 25: Merry Christmas - January 1: Happy New Year - January 8: First planning meeting of 2025 ## Under discussion * Project goal proposed slate * Generator design * Niko's proposal: goal is to explore the contours of the space and reach alignment around requirements and goals * not talking about *genericity* but "what would it be if we hardcoded it" * not to necessarily evaluate a specific proposal *yet* * Flavors * Goal: * TODO * Yosh volunteers to author * Who to include: * TODO * MetaSized * davidtwco is available on Nov 13 or Nov 27 (along with some other folks from ARM) ## Proposed December 11 half-day 8a PST / 11a EST - 2:30 PST / 5:30 EST ## Proposed meetings - "discuss/resolve `fn { mod { (use) super::...; } }` and its interaction with derive patterns" [#193](https://github.com/rust-lang/lang-team/issues/193) - "Design meeting: Rust issues encountered by new Rust users in the Bevy project" [#229](https://github.com/rust-lang/lang-team/issues/229) - "Design meeting: Let chains, guard patterns, and `is`; oh my!" [#278](https://github.com/rust-lang/lang-team/issues/278) - "Discuss agendas for Rust All Hands" [#279](https://github.com/rust-lang/lang-team/issues/279) - "Alternative model for pattern matching and match ergonomics" [#280](https://github.com/rust-lang/lang-team/issues/280) - "Design meeting: Async iteration (part 1)" [#284](https://github.com/rust-lang/lang-team/issues/284) - "Design meeting: Effect-Generic Trait Declarations" [#287](https://github.com/rust-lang/lang-team/issues/287) - "Design meeting: Trait method impl restrictions" [#288](https://github.com/rust-lang/lang-team/issues/288) Vibe checks on whether these need no meeting (just FCP), part of a design meeting, or a whole design meeting: - "Design meeting on declarative macro improvements" [#296](https://github.com/rust-lang/lang-team/issues/296) - let chains / guard patterns / is patterns / etc (already listed above) - let chains: `if let Some(x) = something && x.is_even() { .. }` - meeting consensus: let's ship it! not having this is a big gap in the language. - Write up an issue in rust-lang/rust on the consensus that let-chains and `is` are not mutually exclusive and it's OK to have more than one way to do things. - guard patterns: `match foo { Left(x) if x.is_even() | Right(y) if y.is_odd() => { ... }` - meeting consensus: ...seems good? orthogonal. - [RFC](https://github.com/rust-lang/rfcs/pull/3637) is already accepted! - `is` patterns: `val is Left(x) && x.is_even()` -- - meeting consensus: intrigued, let's hear more? - are these basically let chains outside of an if? --nikomatsakis - approximately equivalent to `let Left(x) = val in x.is_even()` ? - can we have `val is Some(x) || val2 is Ok(x)`? - Scott's `homogeneous_try_blocks` RFC: https://github.com/rust-lang/rfcs/pull/3721 - Settling tail calls (syntax bikeshedding)? - Optimizing loop-match https://github.com/rust-lang/rfcs/pull/3720 - Some iteration planned: `const continue`, including `loop` with `match` - Does this interact with `const if`? ```rust! loop match Some(10) { None => break, Some(0) => const continue Some(2), Some(2) => const continue None, _ => ..., } ``` - An update on design goals Please update these in https://github.com/orgs/rust-lang/projects/31/views/7. ## Active initiatives ### "project-safe-transmute" lang-team#21 **Link:** https://github.com/rust-lang/lang-team/issues/21 ### "const-evaluation" lang-team#22 **Link:** https://github.com/rust-lang/lang-team/issues/22 ### "const-generics" lang-team#51 **Link:** https://github.com/rust-lang/lang-team/issues/51 ### "Deref patterns" lang-team#88 **Link:** https://github.com/rust-lang/lang-team/issues/88 ### "Generators (iterator functions), sync and async" lang-team#137 **Link:** https://github.com/rust-lang/lang-team/issues/137 ### "Initiative: trusted external static declarations" lang-team#149 **Link:** https://github.com/rust-lang/lang-team/issues/149 ## Pending proposals on the lang-team repo None. ## Pending PRs on the lang-team repo ### "Proposal: Remove `i128`/`u128` from the `improper_ctypes` lint" lang-team#255 **Link:** https://github.com/rust-lang/lang-team/issues/255 ### "Lang discussion: Item-level `const {}` blocks, and `const { assert!(...) }`" lang-team#251 **Link:** https://github.com/rust-lang/lang-team/issues/251 ### "project-safe-transmute" lang-team#21 **Link:** https://github.com/rust-lang/lang-team/issues/21 ### "const-evaluation" lang-team#22 **Link:** https://github.com/rust-lang/lang-team/issues/22 ### "clarify lint policy " lang-team#48 **Link:** https://github.com/rust-lang/lang-team/issues/48 ### "const-generics" lang-team#51 **Link:** https://github.com/rust-lang/lang-team/issues/51 ### "Make a place for a "lang team wishlist"" lang-team#54 **Link:** https://github.com/rust-lang/lang-team/issues/54 ### "Link in design meeting template is dead" lang-team#80 **Link:** https://github.com/rust-lang/lang-team/issues/80 ### "Eventual Concern: Send/Sync insufficient in the presence of multiple execution contexts." lang-team#87 **Link:** https://github.com/rust-lang/lang-team/issues/87 ### "Deref patterns" lang-team#88 **Link:** https://github.com/rust-lang/lang-team/issues/88 ### "Specification of safe rust ?" lang-team#123 **Link:** https://github.com/rust-lang/lang-team/issues/123 ### "Generators (iterator functions), sync and async" lang-team#137 **Link:** https://github.com/rust-lang/lang-team/issues/137 ### "Initiative: trusted external static declarations" lang-team#149 **Link:** https://github.com/rust-lang/lang-team/issues/149 ### "agenda generation should include section with S-waiting-on-team + T-lang" lang-team#172 **Link:** https://github.com/rust-lang/lang-team/issues/172 ### "dead Zulip/zulip-archive links" lang-team#185 **Link:** https://github.com/rust-lang/lang-team/issues/185 ### "HTTP Error 404 in the Chat Platform p link" lang-team#186 **Link:** https://github.com/rust-lang/lang-team/issues/186 ### "discuss/resolve `fn { mod { (use) super::...; } }` and its interaction with derive patterns" lang-team#193 **Link:** https://github.com/rust-lang/lang-team/issues/193 ### "lang agenda generator ignores lang-nominated closed issues" lang-team#199 **Link:** https://github.com/rust-lang/lang-team/issues/199 ### "mdbook build and deploy is failing" lang-team#221 **Link:** https://github.com/rust-lang/lang-team/issues/221 ### "Design meeting: Rust issues encountered by new Rust users in the Bevy project" lang-team#229 **Link:** https://github.com/rust-lang/lang-team/issues/229 ### "Add soqb`s design doc to variadics notes" lang-team#236 **Link:** https://github.com/rust-lang/lang-team/pull/236 ### "Update auto traits design notes with recent discussion" lang-team#237 **Link:** https://github.com/rust-lang/lang-team/pull/237 ### "Lang-team RFC guidelines appear to be out of date" lang-team#244 **Link:** https://github.com/rust-lang/lang-team/issues/244 ### "Update hackmd link to a public link" lang-team#258 **Link:** https://github.com/rust-lang/lang-team/pull/258 ### "Adding a link to "how to add a feature gate" in the experimenting how-to" lang-team#267 **Link:** https://github.com/rust-lang/lang-team/pull/267 ### "Design meeting: Let chains, guard patterns, and `is`; oh my!" lang-team#278 **Link:** https://github.com/rust-lang/lang-team/issues/278 ### "Discuss agendas for Rust All Hands" lang-team#279 **Link:** https://github.com/rust-lang/lang-team/issues/279 ### "Alternative model for pattern matching and match ergonomics" lang-team#280 **Link:** https://github.com/rust-lang/lang-team/issues/280 ### "Design meeting: Async iteration (part 1)" lang-team#284 **Link:** https://github.com/rust-lang/lang-team/issues/284 ### "Meeting proposal: rename "object safety" to "dyn compatibility"" lang-team#286 **Link:** https://github.com/rust-lang/lang-team/issues/286 ### "Design meeting: Effect-Generic Trait Declarations" lang-team#287 **Link:** https://github.com/rust-lang/lang-team/issues/287 ### "Design meeting: Trait method impl restrictions" lang-team#288 **Link:** https://github.com/rust-lang/lang-team/issues/288 ### "text describing how other teams are enabled to make decisions." lang-team#290 **Link:** https://github.com/rust-lang/lang-team/pull/290 ### "Design meeting: Default field values" lang-team#291 **Link:** https://github.com/rust-lang/lang-team/issues/291 ### "Extended triage 2024-10-16" lang-team#293 **Link:** https://github.com/rust-lang/lang-team/issues/293 ### "Design meeting: Trait modifiers / RFC 3710" lang-team#294 **Link:** https://github.com/rust-lang/lang-team/issues/294 ### "Rust spec update" lang-team#295 **Link:** https://github.com/rust-lang/lang-team/issues/295 ### "Design meeting on declarative macro improvements" lang-team#296 **Link:** https://github.com/rust-lang/lang-team/issues/296