Just checking my understanding of how something works. I think I
heard somewhere that its the primitive's job to drop its arguments off
the stack.
So it would seem(??) that starting with VM1/Image1 having primitive
#primX ... if VM2 had modified that primitive to take an optional
argument such that Image2 invoked that primitive as #primX: , then
Image2 could not be backward compatible with VM, because Image2 would
be adding the argument to the stack that would not be removed by VM1.
The reason I ask is I was considering having a go at the VM clock
improvements issue [1] I logged. As well as implementing the clock
skewing algorithm Eliot suggested, I was also wanting to provide Image
access to the two clocks used by that algorithm - so the algorithm
performance could be monitored from the Image.
cheers -ben
[1] https://github.com/OpenSmalltalk/opensmalltalk- vm/issues/36