Garbage Collection for Rust: the Finalizer Frontier
Details
Rust is a non-Garbage Collected (GCed) language, but the lack of GC makes expressing data-structures whose values have multiple owners awkward or inefficient. Adding GC to Rust has previously required sacrificing at least
one of performance, soundness, or ergonomics. One of the major challenges for practical GC for Rust is finalization: mapping existing Rust
destructors to GC finalizers seems natural but introduces subtle soundness, significant performance, and irritating ergonomic issues. In this talk, I'll introduce Alloy, a new GC for Rust, and discuss how it provides solutions for each of these issues.