News for hackers. Stuff that matters.
Re:Pre-Pooping Your Pants with Rust by steveklabnik on Monday April 27, 2015 @12:29PM (#9447314)
Forget isn't the reason that that block is unsafe.
Re:Pre-Pooping Your Pants with Rust by mcguire on Monday April 27, 2015 @06:29PM (#9449496)
Right. That block is unsafe because it's doing unsafe things. (ptr::read and alloc::heap::deallocate)

But the use of Rc is kind of a red herring; if mem::forget is marked safe, then you don't need safe_forget because you can forget things (fail to execute their destructors, specifically) safely anyway.

The problem is that destructors aren't guaranteed; the bugs in the thready thing (and potentially unbounded other things) are symptoms. Drop needs big, red warning signs.

The power of a notation, and a type system, is in what it lets you not think about. The fact that destructors may not be called is, unfortunately, something you have to think about.