3 ms·
There's only one language that's more dangerous than C and that is unsafe Rust. I say that only half-jokingly.
by baokaola 3mo ago
There's only one language that's more dangerous than C and that is unsafe Rust. I say that only half-jokingly.
- Ygg2 3mo agoGood job falling for the Zig propaganda. I say that half-jokingly. EDIT: You can't be serious people. Rust unsafe is safer than C, if for nothing else, for knowing which pointers are aliasable.
- selfmodruntime 3mo agoThis isn't propaganda, the Rust compiler's rules when using the unsafe keyword are difficult to uphold, which is why the community wrote Miri.
- Ygg2 3mo agoOk, and how does, in your opinion, compiler rules enforcement work in an unsafe block? And how does Miri help solve this issue?
- selfmodruntime 3mo ago> Ok, and how does, in your opinion, compiler rules enforcement work in an unsafe block? By the engineer's wit of course! > And how does Miri help solve this issue? By detecting undefined behavior caused by violation these rules
- dwattttt 3mo agoIs there a "Rust compiler's rule" you can point to that's harder than avoiding UB in C or C++ in similar circumstances? They strike me as very similar beasts.
- Ygg2 3mo ago> By the engineer's wit of course! Seeing how the Rust compiler isn't an LLM, it can't really work on wit. From the POV of a programmer, how would you implement an unsafe block? What is disabled vs what's enabled? > By detecting undefined behavior Say you are tasked with making Miri; how do you detect violations of these rules?
- selfmodruntime 3mo agoIt's true and I write Rust and love it dearly. There is an entire book about working with the unsafe keyword and its aliasing rules: https://doc.rust-lang.org/nomicon/working-with-unsafe.html https://doc.rust-lang.org/nomicon/working-with-unsafe.html
- hota_mazi 3mo agoWhat do you mean? C is unsafe 100% of the time. Rust is only unsafe in unsafe{} blocks.
- uecker 3mo agoThis is nonsense. There is quite a subset of C which is perfectly safe and an even larger one which can easily be safe with tooling. You could argue that unsafe keyword is easier to spot than the unsafe features of C, so that makes it somewhat easier to screen for issues. But if you screen for memory safety only, this is problematic anyhow.