So it turns out that dynamically-sized frames are quite tricky to get
right with GC. Essentially, when crawling the stack, the GC needs to
rerun all of the dynamic size and alignment calculations in order to
determine the layout of the frame so that it can find the roots. LLVM
has no support for this.
Note that this problem is similar to the issue with dynamically-sized
frames and stack growth.
There are different ways to handle this problem (monomorphization being
an especially attractive one, I think), but it seems to me that the
simplest solution for a 0.1 release to just have GC bail out when it
discovers a dynamically-sized frame on the stack. Is this okay with others?
Patrick
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev