On Tue, Nov 29, 2011 at 11:54 AM, Mariano Martinez Peck < marianopeck@gmail.com> wrote:
On Mon, Nov 28, 2011 at 7:25 PM, Eliot Miranda eliot.miranda@gmail.comwrote:
On Sat, Nov 26, 2011 at 3:02 PM, Chris Muller asqueaker@gmail.comwrote:
Compact classes cannot be made uncompact in a Cog+JIT VM.
Not exactly true. Certain classes cannot be uncompacted. These are as defined by StackInterpreter>>#checkAssumedCompactClasses and the ones that can't be uncompacted are Array LargeNegativeInteger LargePositiveInteger Float MethodContext
There is a performance advantage to being able to identify instances of these classes from the compact class index.
But any other classes should be able to be compacted and uncompacted.
Eliot, should we validate this in image side (#becomeUncompact) ?
I suppose so. The "right" way to do this would be to ask the VM (via a primitive) for the set of assumed compact classes, but that's too much work. I hope that a new GC/object representation will become available before I would ever think of changing the set of compact classes, so having the method document what the current VM requires is ok.
Can compact classes be made uncompact when running the StackInterpreter VM?
It is exactly the same story. The same classes are assumed to be compact in the StackInterpreter VM as the CoInterpreter VM.
Thanks.
HTH
best, Eliot
-- Mariano http://marianopeck.wordpress.com