Hacker News new | ask | show | jobs
by joobus 3286 days ago
D is garbage-collected, but can be opted out of. Rust has no garbage collector.
1 comments

Rust has an opt-in garbage collector as a library (https://docs.rs/gc/). I don't know how good it is, though.
By that measure, so do C and C++.
You could implement GC in C++ using RAII (although smart pointers get you a long way). AFAIK, automatic GC is not possible with C.
It absolutely is possible, via conservative GC: https://en.wikipedia.org/wiki/Boehm_garbage_collector
What's the use case for a garbage collector in rust?
If you have to share some data across your program and can't determine the lifetime at compilation time, you can't simply rely on the Rust compiler for memory management.

The next option is to use reference counting by wrapping your data in Rc/Arc (depending on whether you need atomicity or not).

But that can still leak memory if you have cyclic data structures and can't break the cycle with Weak pointers.

At this point, what you need is a garbage collector.