--- title: "Lang/RfL meeting 2024-08-14" tags: ["T-lang", "design-meeting", "minutes"] date: 2024-08-14 discussion: https://rust-lang.zulipchat.com/#narrow/stream/410673-t-lang.2Fmeetings/topic/RfL.20meeting.202024-08-14 url: https://hackmd.io/_amBgv2fRzu3BCJLgV60Ug --- # Discussion People: TC, Josh, Miguel, Alice Ryhl, Boqun Feng, Gary Guo, Xiang, Andreas Hindborg, Xiang Fei Ding https://rust-lang.github.io/rust-project-goals/2024h2/rfl_stable.html https://github.com/nikomatsakis/rfcs/blob/rfl-project-goal/text/0000-rust-for-linux-project-goal-2024h2.md#ownership-and-other-resources ## Standards for use of unsafe Rust in the kernel https://lwn.net/Articles/982868/ https://lwn.net/SubscriberLink/982868/9b14c5cc83b4d631/ RalfJ might be interested in this. We'll send that to him. In general, there seems some overlap here with the goals of broader UCG work in Rust. ## `A-rust-for-linux` label Changed from `I-rust-for-linux` (https://github.com/rust-lang/rust/issues/128831#issuecomment-2276464487). ## Arbitrary self types v2 Seems this is moving forward slowly but surely. ## Derive smart pointer Have a PR queued to be merged here: https://github.com/rust-lang/rust/pull/128925 We probably want to test it out for linked lists in RfL. We may still need to bikeshed the name. We'll file an issue so we remember to bikeshed the name sooner rather than later: https://github.com/rust-lang/rust/issues/129104 The kernel now is unpinned since a few weeks ago (since v6.11), supporting versions since Rust 1.78.0, thus developers should be able to use nightlies without issue, though it may be harder for Android. ## asm_goto Original patch series: https://lore.kernel.org/rust-for-linux/20240628-tracepoint-v4-1-353d523a9c15@google.com/ Newest version: https://lore.kernel.org/rust-for-linux/20240808-tracepoint-v6-0-a23f800f1189@google.com/ Alice: Then we were asked to not duplicate the assembly. So we use the C preprocessor to expand a C macro into a Rust macro call by cutting the processed output: ```c #include <linux/jump_label.h> // Cut here. ::kernel::concat_literals!(ARCH_STATIC_BRANCH_ASM({0}, {1}, {2} + {3})) ``` Gary Guo: On asm_goto, I'm still planning to write a design document here. Alice: We're also using `asm_const`. We have a feature request: https://github.com/rust-lang/rust/issues/128464 Josh: I've now nominated that. TC: For the original `asm_const`, we decided via FCP to stabilize this on the tracking: https://github.com/rust-lang/rust/issues/93332 And then it was stabilized in this PR, targeted for Rust 1.82: https://github.com/rust-lang/rust/pull/128570 ## Extended offset_of syntax We're looking at extending it here, but RfL doesn't need this one yet: https://github.com/rust-lang/rust/issues/120141 In Rust 1.82, we'll have a stabilization of `offset_of_nested`: https://github.com/rust-lang/rust/pull/128284 Alice: Everything we need is being stabilized. ## Pointers to static in constants https://github.com/rust-lang/rust/issues/128183 This one may make Rust 1.83. ## GCC-only (or single backend) compiler features Discussion at https://github.com/rust-lang/rust/issues/128831#issuecomment-2276464487. ## Sanitizers supported only when another flag is passed https://github.com/rust-lang/rust/pull/128348 This PR can actually move forward since tmandry delegated it. Xiang is finishing up some things here and will then merge it. ## Rust terminology in non-Rust Linux kernel patches For people's interest; this seems like a notable positive cultural impact of Rust on the Linux kernel. https://lore.kernel.org/linux-fsdevel/20240807-ostbahnhof-kaltfront-0f4476fd7587@brauner/T/