[Vm-dev] Getting back to push/pop remappable oop
siguctua at gmail.com
Tue Nov 11 13:02:16 UTC 2008
>From previous discussion, where Eliot mentioned about removal push/pop
remappable oop oddity and modifying GC to make it work w/o it, i'm
- there was no need in having these methods from the very start.
Any oop at any time can be temporary pushed on stack and then popped
back again using #pop:/#push: methods.
Of course, primitives need to be careful to not override the
arguments, which can be reused in method when primitive fails - so
they should push values past the arguments.
But in most cases, a primitive creates new object(s) at the point,
where it needs to form a returned value - at this point most things is
done: arguments is read & already popped out of stack, values
calculated etc etc. So it is safe to put temporary values on stack,
making GC happy and without need in use push/popRemmappableOop.
Going in this way, there is no need in adding safety schemes, like
reserving extra free space and delaying GC before primitive finishes
Igor Stasenko AKA sig.
More information about the Vm-dev