6 ms·
This is a n objectively false statement. Rusts borrow checker is only able to prove at compile-time that a subset of correct programs are correct. There are ma
by forrestthewoods 9mo ago
This is a n objectively false statement.
Rusts borrow checker is only able to prove at compile-time that a subset of correct programs are correct. There are many correct programs that the BC is unable to prove to be correct and therefore rejects them.
I’m a big fan of Rust and the BC. But let’s not twist reality here.
- lmm 9mo ago> There are many correct programs that the BC is unable to prove to be correct and therefore rejects them. There are programs that "work" but the reason they "work" is complicated enough that the BC is unable to understand it. But such programs tend to be difficult for human readers to understand too, and usually unnecessarily so.
- ycombinatrix 9mo ago>There are many correct programs that the BC is unable to prove to be correct and therefore rejects them. No. The borrow checker rejects programs that are definitely incorrect. It does not require that the program is correct. That's a big difference.
- ChadNauseam 9mo agothere’s a miscommunication. programs that pass the borrow checker all are memory safe (assuming code marked unsafe is sound). This means that all memory unsafe programs are excluded. but some memory-safe programs are excluded too.
- forrestthewoods 9mo agoNo. The BC will not incorrectly approve an incorrect program. But the BC does not approve all correct programs. Because some patterns which are indeed perfectly correct and will never explode the BC is not able to prove that and therefore the BC rejects the program. The BC is effectively incompatible with typical video game patterns. The whole level/frame life cycle is effectively unsupported by the Rust BC. As just one example.