4 ms·
Isn't servo, which I assume where most of your Rust code lives by now, trading some safety to un-"cripple" Rust by having GC-backed smart pointers that allow fo
by ben0x539 11y ago
Isn't servo, which I assume where most of your Rust code lives by now, trading some safety to un-"cripple" Rust by having GC-backed smart pointers that allow for uses-after-free if they aren't used correctly?
- kibwen 11y agoServo integrates with a GC not because Rust is insufficiently expressive, but because it has to cooperatively manage the DOM with a garbage-collecting Javascript engine.
- pcwalton 11y agoAbsolutely not, for several reasons: - The reason why we use GC pointers in Servo is that JavaScript is garbage collected, and we can't do anything about that. If not for that, we probably wouldn't use GC at all. - In fact, to prove this point, we don't use GC anywhere except the DOM. Most of my code is layout and rendering, which is GC-free, written in the safe language, and is very much not crippled in any way. - GC pointers are designed to be safe. There are some known safety holes right now, mainly due to lack of time to plug them and wanting to balance the time spent to fix up the current system against the time needed to add proper GC support to Rust.