Re: C aggregate passing (Rust kernel policy)

From: Ralf Jung
Date: Wed Feb 26 2025 - 11:12:47 EST


Hi,

[Omitted] (However, verification tools are
in the works as well, and thanks to Miri we have a very good idea of what
exactly it is that these tools have to check for.) [Omitted]

Verification as in static verification? That is some interesting and
exciting stuff if so.

Yes. There's various projects, from bounded model checkers (Kani) that can "only" statically guarantee "all executions that run loops at most N times are fine" to full-fledged static verification tools (Gillian-Rust, VeriFast, Verus, Prusti, RefinedRust -- just to mention the ones that support unsafe code). None of the latter tools is production-ready yet, and some will always stay research prototypes, but there's a lot of work going on, and having a precise model of the entire Abstract Machine that is blessed by the compiler devs (i.e., Miri) is a key part for this to work. It'll be even better when this Abstract Machine exists not just implicitly in Miri but explicitly in a Rust Specification, and is subject to stability guarantees -- and we'll get there, but it'll take some more time. :)

Kind regards,
Ralf