From: Miguel Ojeda Date: Tue, 9 Jun 2026 02:18:30 +0000 (+0200) Subject: Merge patch series "`zerocopy` support" X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=98cc68794c003bc76fc9da2e8a075e947eee5921;p=thirdparty%2Flinux.git Merge patch series "`zerocopy` support" Introduce support for `zerocopy` [1][2]: Fast, safe, compile error. Pick two. Zerocopy makes zero-cost memory manipulation effortless. We write `unsafe` so you don't have to. It essentially provides derivable traits (e.g. `FromBytes`) and macros (e.g. `transmute!`) for safely converting between byte sequences and other types. Having such support allows us to remove some `unsafe` code. It is among the most downloaded Rust crates (top #50 recent, top #100 all-time downloads; according to crates.io), and it is also used by the Rust compiler itself. The series starts with a few preparation commits, then the `zerocopy` and `zerocopy-derive` crates are added. Finally, an example patch using it is on top, removing one `unsafe impl`. I had to adapt the crates slightly (just +2/-3 lines), but both patches could potentially be provided upstream eventually. Please see the commits for details. In total, it is about ~39k lines added, ~32k without counting `benches/` which are just for documentation purposes. See the cover letter for `syn` for some more details about depending on third-party crates in commit 54e3eae85562 ("Merge patch series "`syn` support""). The codegen of an isolated example function similar to the patch on top is essentially identical. It also turns out that (for that particular case) `zerocopy`'s version, even under `debug-assertions` enabled, has no remaining panics, unlike a few in the current code (because the compiler can prove the remaining `ub_checks` statically). So their "fast, safe" does indeed check out -- at least in that case. P.S. This version of `zerocopy` has already the unstable `Ptr{,Inner}` types -- to play with them, please use: make ... KRUSTFLAGS=--cfg=zerocopy_unstable_ptr Link: https://github.com/google/zerocopy [1] Link: https://docs.rs/zerocopy [2] Link: https://patch.msgid.link/20260608141439.182634-1-ojeda@kernel.org Signed-off-by: Miguel Ojeda --- 98cc68794c003bc76fc9da2e8a075e947eee5921