# Meeting 2025-01-22 <!-- Leave your topic starting with ### in the relevant sections below --> ## Critical <!-- bugs, soundness issues, urgent patches/reviews etc. --> ## Status Reports <!-- You want to report on something you are working on/request reviews. Or you want to know the status of something someone else is doing --> ## Discussion Questions <!-- Anything that requires lengthy discussion/more general questions also fit here --> ### `Opaque` type and `Aliased` type https://lore.kernel.org/rust-for-linux/CANiq72=o1ouGc4ScvDkz_uMnEfM+D47YQTMh0jTC=Go4tvQvkg@mail.gmail.com/ https://lore.kernel.org/rust-for-linux/20250122055347.597798-1-dirk.behme@de.bosch.com/ `Aliased` patch: https://lore.kernel.org/rust-for-linux/Z46Gzg_5kv-MwZNL@boqun-archlinux/T/#m3cb76f9810ce1ac341c2def05faa26e907d6db9e Rust `UnsafePinned` RFC: https://rust-lang.github.io/rfcs/3467-unsafe-pinned.html ### Avoid calling destructor if initialization failed This would greatly simplify Daniel's code ```rust pin_init!(&this in Foo { a <- todo!(), b: todo!(), // Use `PhantomPinned` field today is already possible as a workaround. _: { // Register this } }) ``` ### Using `pin_init` to allow ordering of deregistration ... ### `as_char_ptr` removal? We cannot remove `kernel::CStr::as_char_ptr` in favour of `[u8]::as_ptr` because the latter cuts out the NUL byte. Conclusion: rename `as_char_ptr` to `as_ptr` to shadow the deref'ed. (And add documentation on that this is different from deref'd version). ## Miscellaneous <!-- stuff that does not fit into other categories -->