--- title: Planning meeting 2024-05-01 tags: ["T-lang", "planning-meeting", "minutes"] date: 2024-05-01 discussion: https://rust-lang.zulipchat.com/#narrow/stream/410673-t-lang.2Fmeetings/topic/Planning.20meeting.202024-05-01 url: https://hackmd.io/hEA9sPSIQKuvDWdXPYnHPA --- # T-lang planning meeting agenda - Meeting date: 2024-05-01 ## Attendance - People: TC, tmandry, scottmcm, pnkfelix, Josh, nikomatsakis ## Meeting roles - Minutes, driver: TC ## Proposed meetings - "We need to settle the behaviour of floating-point in `const`" [#222](https://github.com/rust-lang/lang-team/issues/222) - "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) - "Nail down cargo-script syntax proposal" [#232](https://github.com/rust-lang/lang-team/issues/232) - "Design meeting: Profiles" [#245](https://github.com/rust-lang/lang-team/issues/245) - "Design meeting: New Range types for Rust 2024" [#259](https://github.com/rust-lang/lang-team/issues/259) - "Design meeting: Deref Patterns" [#260](https://github.com/rust-lang/lang-team/issues/260) - tmandry: This is edition-sensitive for reserving the `deref` keyword. - "Design meeting: async closures" [#262](https://github.com/rust-lang/lang-team/issues/262) Please update these in https://github.com/orgs/rust-lang/projects/31/views/7. ## Other ideas? - Match ergonomics (with relevance to Rust 2024). - Edition review (always worthwhile). - Bonus triage (also always worthwhile). - Ralf stuff: MaybeDangling? Float semantics? - We've been sitting on this for awhile now. - Temporary lifetime extension? - Project goals? - `.enum#discriminant` syntax. - https://github.com/rust-lang/rfcs/pull/3607 - Add `freeze` intrinsic - https://github.com/rust-lang/rfcs/pull/3605 List of RFCs tagged for us: https://github.com/rust-lang/rfcs/pulls?q=is%3Apr+is%3Aopen+label%3At-lang List of edition items for lang: https://github.com/rust-lang/rust/issues?q=label%3AA-edition-2024+label%3AC-tracking-issue+label%3At-lang ## Calendar/availability - 8th: Deref patterns - Josh/NM: Out for RustNL. - 15th: Async closures - NM: Available but lcnr/errs will be in town and I wouldn't mind skipping if I'm not needed :) - NM: ...but that could be convenient for doing async closures. - 22nd: RalfJ? / Match ergonomics? - Josh: Tentative but will probably be available. - 29th: Match ergonomics? / RalfJ? - NM: Out. Other things: * Project Goals-- review the slate * Async Closures RFC review -- have to author it :) Proposed alternative - 8 -- deref patterns - 15 -- match ergonomics (maybe switch w/ 29) - cover the set of proposed changes + discussion of motivation / relevant examples - "what needs the edition" - "what can we do without breaking changes" - 22 -- project goals draft slate (nikomatsakis to prep) - 29 -- ralfjung, something salient if match ergonomics doesn't work: * review async closures RFC, presuming we can get a draft written ## Deref patterns Josh: I don't need to be here for this. I have no edition-related concerns. Some concerns about some proposed relaxations of exhaustiveness checking, no other concerns here. NM: I don't care. I can pre-read and give my opinion. ## New Range types tmandry: Anything here to discuss? TC: This went into FCP. ## Match ergonomics TC/NM: We should look at what is edition-critical here and how to carve that out. scottmcm: The one caveat here is that it may need more of the features to make the migration straightforward. Otherwise, agreed. tmandry/TC: We wanted an RFC or otherwise a document here, when we talked about it last. pnkfelix/TC: The last document is here: https://hackmd.io/YLKslGwpQOeAyGBayO9mdw TC: I'll check in with Jules about that. ## `.enum#discriminant` syntax scottmcm: Based on the feedback I've received, I think I'm going to make this into a macro. Josh: For what it's worth, I kind of liked the syntax. scottmcm: It'd be worth a straw poll on this. NM: I'd like private trait impls. scottmcm: I don't disagree in any way. The piece that I opened this for is solving that libs-api use case. NM: What I like about the macro in that sense is it feels easier to deprecate. Then when we have private trait impls, we could move to that. tmandry: If we need something in the short term, it seems better to make it a macro, but I could be convinced. ## Profiles TC: Niko, what about this? NM: Yes, I'd be interested in talking about this. I'd write something up that would expand on my blog post. scottmcm: Maybe this would be better in June given your availability. ## i128 / u128 item Josh: If we have time at the end of this meeting, we should talk about this given the overlap with what we talked about earlier today on autodiff and backends. ## Item-level const blocks Josh: Has there been any progress on this? ## cargo-script This passed FCP. Tracking here: https://github.com/rust-lang/cargo/issues/12207 ## Derive patterns tmandry: What should we do with this one?: https://github.com/rust-lang/lang-team/issues/193 pnkfelix: This problem still exists. But I'm not able to do the doc this month. ## Future-incompat lints NM: More generally, we have a lot of future incompat lints that we've never triaged. Maybe that'd make a good meeting. tmandry: I do like this idea. ## Ralf's stuff scottmcm: RalfJ pinged me recently. We're sitting on his stuff. NM: I'd like to use meetings for unblocking people. Maybe that doesn't require as much prep. TC: Ralf has docs prepared for these. pnkfelix: We should focus on these. NM: I'd prefer to be here for this one. ## Project goals TC: Anything we need to do here? NM: Probably not, this can be more one-off meetings. We could eventually do a meeting to review the slate. ## i128 / u128 Josh: There was a longstanding ABI issue with 128 bit types. Our understanding of them didn't match that of LLVM. This has now mostly been solved, but if you use Rust with an older LLVM version, this will still be broken. It's not really possible to work around this on the Rust side. tmandry: I don't personally see a reason to not make the ability of the feature depend on the LLVM version. NM: Is this version of LLVM one we build with by default? Josh: It's the one we build with but not necessarily the one that distros use. NM: I feel like saying "this is not an improper ctype", but then we lint to warn people that "you're going to have a bad time" if you have an older LLVM version is an OK plan. Josh: I'd probably make that `forbid-by-default`. pnkfelix: I think I'm OK with having an LLVM-version dependent lint here. tmandry: Knowing that distros build with older versions of LLVM gives me some pause here. There is `--cap-lints` to consider here. Josh: We could warn if this exists at all and hard error if your code calls it. tmandry: But it could be called from C. Josh: I feel like giving a hard error would not be the end of the world. *Consensus*: It's OK to only support this if you have a non-buggy LLVM version, and that we'd like to somehow prevent people from building with both the feature and a buggy LLVM version. ## Extending triage TC: Let's continue down the triage items: https://hackmd.io/vMQY_wdUSkGeNzVVcD8s1w ## 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 Might be worth talking briefly about this today, there's some analogy to the discussion earlier today about autodiff and LLVM. ### "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 ### "We need to settle the behaviour of floating-point in `const`" lang-team#222 **Link:** https://github.com/rust-lang/lang-team/issues/222 ### "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 ### "Nail down cargo-script syntax proposal" lang-team#232 **Link:** https://github.com/rust-lang/lang-team/issues/232 ### "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 ### "Design meeting: Profiles" lang-team#245 **Link:** https://github.com/rust-lang/lang-team/issues/245 ### "Update hackmd link to a public link" lang-team#258 **Link:** https://github.com/rust-lang/lang-team/pull/258 ### "Design meeting: New Range types for Rust 2024" lang-team#259 **Link:** https://github.com/rust-lang/lang-team/issues/259 ### "Design meeting: Deref Patterns" lang-team#260 **Link:** https://github.com/rust-lang/lang-team/issues/260 ### "Design meeting: async closures" lang-team#262 **Link:** https://github.com/rust-lang/lang-team/issues/262