‹ BackHN Continuity

Thread

Developing provably correct Rust code with Verus

164 points · 79 comments · Betelbuddy

  1. bcjdjsndon · · focus · HN ↗
    > With Verus, however, developers can mathematically prove the safety of their unsafe Rust code, re-establishing machine-checked safety guarantees

    Why then does rust even need the unsafe keyword?

    1. ijustlovemath · · focus · HN ↗
      I'd rather have all the unsafe code scoped and the safety invariants explained than the alternative. You still can't do a whole class of scary things in an unsafe block; common misconception
      1. bcjdjsndon · · focus · HN ↗
        Yeah but if this program can prove unsafe code is safe... Why can't rust compiler do it, and hence, why do we even need unsafe if the compiler can do it.
        1. Jtsummers · · focus · HN ↗
          > Yeah but if this program can prove unsafe code is safe... Why can't rust compiler do it

          This question only makes sense if you think Verus is part of the Rust compiler. It's not. And even if it were, the additional annotations are still required to prove that the unsafe block is actually safe. So this could, if integrated into the Rust compiler, help programmers eliminate some unsafe blocks (perhaps even most), but likely not all, and not without additional code proving that the section is safe.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.