84 karma · joined April 15, 2021
no, it is dereferencing, not constructing, an invalid pointer, that is UB. there is even a safe function provided to construct an invalid but non-null pointer: `https://doc.rust-lang.org/stable/std/ptr/fn.dangling.html`
"simply" and "formal verification" are usually oxymorons, never mind "automatically"
> It would be perfectly possible to design a variant of Rust that gets you to 80-90% of Rust's usability, with the same safety, without macros.
i then present an api that i think relies on macros to expose a safe api
> Of course macros are good for encapsulation and abstraction, but that's a different subject.
no it's not. exposing safe abstractions is pretty much rust's raison d'être
fn pin(x: T) -> Pin<&mut T> { ... }
would move the valuein ancient times, you could banish people from the village
even if you know what the data sheet says, it's easier said than done, especially when the tool gives you basically no help. you are just praying people will magically just git gud.
if you didn't use property-based testing, what are the odds you would've thought of the case?
what do the annotations for the tool look like? is the analysis local, in that it doesn't look into the bodies of other functions? if it is, surely you would have to have lifetimes and be generic over them.
how much c code satisfies the tool? if there's hardly any c satisfying the tool, there might actually be a larger ecosystem of rust code to use.
what does the c checked by this tool look like? for an example like https://play.rust-lang.org/?version=stable&mode=debug&editio... , does the tool accept the assignment with f and reject the assignment with g?
strong claim. care to back it up?