This post can be hard to understand if you’re not super familiar with Rust. The TL;DR is, two APIs which used unsafe internally can cause a memory safety issue in safe code, because they relied on an invariant that’s not actually true.
There’s a few paths forward to making them work correctly, and it’s not 100% clear what path is best. In the meantime, one of the two has been marked unstable.
It took til the end of the article to explain the poop analogy, but when the author finally got there it made perfect sense and was logically consistent.
This post can be hard to understand if you’re not super familiar with Rust. The TL;DR is, two APIs which used
unsafeinternally can cause a memory safety issue in safe code, because they relied on an invariant that’s not actually true.There’s a few paths forward to making them work correctly, and it’s not 100% clear what path is best. In the meantime, one of the two has been marked unstable.
So what kind of issue are we looking at? A flaw in the design of the language or in the design of the library?
A flaw in the design of a library. Hence it becoming marked unstable. The language itself is working just fine.
It took til the end of the article to explain the poop analogy, but when the author finally got there it made perfect sense and was logically consistent.
Bravo