On Sep 23, 2008, at 11:42 PM, Geoffrey Garen wrote:
1) JavaScriptCore's garbage collector is only partially conservative - it is conservative on the machine stack and on the VM register file. The latter is probably practically fixable by either storing call frames in a separate stack or recording where they are
I think we'd still need to do a conservative mark of the register file, since registers can be uninitialized upon entry to a function. Maybe we could arrange to conservatively mark only the top call frame, though, if we resolved other problems like allocating unused registers.
We'll have to fix this to be able to have a copying collector, because while we could use the handle approach for stack-only references from C ++ code, it seems unworkable for every VM register to hold a handle and not an actual JS value. - Maciej