An unsoundness in Rust using only safe code!
Rust provides a bunch of guarantees so it's always interesting to see the rare ways it can be broken. I think this is the first unsoundness since the thread spawn issue after 1.0?
https://internals.rust-lang.org/t/unsoundness-in-pin/11311
miniblog.
Related Posts
Here's a scary example from the tree-sitter-c bug tracker: before running the preprocessor, there's no guarantee that C code will parse!
(Typically it will I think, but no guarantees.)
Adding LLVM control flow integrity to make exploits harder is coming to Rust: https://rcvalle.com/docs/rust-cfi-design-doc.pdf
The primary use case is mixing C/C++ with Rust: you have weaker memory safety guarantees and hardening is still necessary. You don't want a partial Rust port to reduce security!
It's amazing that merging work at all.
It's a dumb textual transform that provides no guarantees that the code is even syntactically valid, let alone correct. The problem feels AI-complete.
I've seen bad resolutions of merge conflicts way more than bad automatic merges though.
