3 ms·
I swear I had read Rust had optional GC at one point. And similarly Rust wanting to own main(). Maybe not then.
by smegel 9y ago
I swear I had read Rust had optional GC at one point. And similarly Rust wanting to own main(). Maybe not then.
- burntsushi 9y agoI don't know the precise history, but at one point, it did have a "gc" type, which I believe was demarcated by the `@` sigil. So, for example, `@T` was a garbage collected pointer to `T`. IIRC, the actual garbage collector was simplistic, and was mostly just reference counting under the hood. At some point (in 2014, I think), the GC type went away. Since then, there has never been any serious talk of adding an optional GC to Rust proper, although many folks have worked/written about writing their own.
- steveklabnik 9y agoThis is pretty accurate; however, a very long time ago there was a tracing GC!
- iopq 9y agoAre you sure? I thought @ was reference counted in 0.6 and then removed after. Was it before that?
- steveklabnik 9y agoI don't have any citation beyond "Graydon told me one time". It was like, very very long ago, possibly before @T even existed.
- Rusky 9y agoIIRC it was a mark and sweep GC in the OCaml implementation.
- steveklabnik 9y agoThat sounds about right.
- jacobush 9y agoWow, I can't believe I have been reading up lately on official Rust documentation and still I was under the impression that Rust had optional GC. Thanks for sorting me out...
- kbenson 9y agoWell, I think is sort of does when you use the Rc types, right? It's just much more explicit than a type modifier, it's a type wrapper that requires requires some level of additional code ornamentation in some instances when using later as well. It's just not really any different than using a library in C++ that offers the same, except that in Rust's case the library is part of the stdlib.
- steveklabnik 9y agoRust had almost everything at some point :) Rust binaries do define a "main", and setting that up is the runtime's job, like C. But you can also make a library that needs no main at all.