On Fri, Sep 7, 2012 at 7:17 PM, Elliott Slaughter <[email protected]>wrote:
> Hi all, > > As of cb53623341, precise GC-based cleanup has landed in incoming. There > are still many rough edges, but this should be enough to get your feet wet > and try the GC out. > > I have written up a document describing the GC implementation details, > current status, etc. You can find it here: > > https://github.com/elliottslaughter/rust-gc-notes > > Thanks everyone for a great summer. I have to say, Rust is by far my > favorite language now. I had a lot of fun working on GC, and I hope this is > the beginning of real GC support in LLVM. > > -- > Elliott Slaughter This looks interesting! I had a few questions after reading your notes: Does adding fake machine insns to the automatic root inference scheme yield support for moving collectors? I'm not clear on how root inference avoids the problems with GC-invariant-violation associated with explicit register roots. It sounds like root inference is structured as a transformation from IR to IR-plus-fake-gcregroot-insns, rather than from IR to IR-plus-stack-roots-and-gcroot-annotations. Is this accurate? Is the motivation mainly to reuse the existing liveness computation for machine instructions, rather than re-implementing liveness for LLVM IR? Or are there other motivations to avoid optimized insertion of gcroot slots/loads/etc? Regarding cleanup, you note that stack allocations lack the object header associated with heap allocations. Is there an obstacle to adding such a header to stack allocations?
_______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
