[Vm-dev] Re: [squeak-dev] uncompacting classes
Eliot Miranda
eliot.miranda at gmail.com
Thu Dec 1 03:42:19 UTC 2011
On Wed, Nov 30, 2011 at 7:39 PM, Eliot Miranda <eliot.miranda at gmail.com>wrote:
>
>
> On Wed, Nov 30, 2011 at 1:19 AM, Mariano Martinez Peck <
> marianopeck at gmail.com> wrote:
>
>>
>>
>>
>> On Tue, Nov 29, 2011 at 10:27 PM, Eliot Miranda <eliot.miranda at gmail.com>wrote:
>>
>>>
>>>
>>>
>>> On Tue, Nov 29, 2011 at 11:54 AM, Mariano Martinez Peck <
>>> marianopeck at gmail.com> wrote:
>>>
>>>>
>>>>
>>>>
>>>> On Mon, Nov 28, 2011 at 7:25 PM, Eliot Miranda <eliot.miranda at gmail.com
>>>> > wrote:
>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Sat, Nov 26, 2011 at 3:02 PM, Chris Muller <asqueaker at gmail.com>wrote:
>>>>>
>>>>>> 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 agree. So I will try to add the validation.
>>
>>
>>> 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.
>>>
>>
>> Eliot, a simple question: In Pharo:
>> Smalltalk compactClassesArray asSet size -> 15
>> Smalltalk compactClassesArray asSet size -> 13
>>
>> I would like to have one extra free bit in the object header. I can hack
>> my own VM which uses 4 bits for CompactClasses rather than 5, but do you
>> think we can do this for the official Cog VM as well? this would allow
>> "researched" a much nice infrastructure out of the box. How much work can
>> be such change? is there someone needing 32 compact classes? if I do a
>> SpaceTally new printSpaceAnalysis it looks like if I only need the first
>> 10 classes....
>>
>> I know in the future you want to change all this thing about compact
>> classes, but if we can have one free bit tomorrow (instead of "in the
>> future"), then this is very very good.
>>
>
> Seems reasonable. What do you think Andreas, David, Esteban, Ian? Shall
> we make this change?
>
Belay that. It doesn't fly. Bitmap is at index 16, not 15. So close. Ah
well... Mariano, you could perhaps make it an option.
>
>
>>
>> Thanks in advance,
>>
>>
>>
>>
>>>
>>>
>>>>
>>>>
>>>>>
>>>>>
>>>>>> 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
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> best,
>>> Eliot
>>>
>>>
>>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>>
>>
>
>
> --
> best,
> Eliot
>
>
--
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20111130/e1d5f55f/attachment-0001.htm
More information about the Vm-dev
mailing list