[Vm-dev] Compact class question

Igor Stasenko siguctua at gmail.com
Tue Dec 7 11:58:41 UTC 2010

On 7 December 2010 12:43, Gabriel Hernán Barbuto <gbarbuto at gmail.com> wrote:
> On Tue, Dec 7, 2010 at 11:30 AM, Yoshiki Ohshima <yoshiki at vpri.org> wrote:
>> At Tue, 7 Dec 2010 10:53:12 +0100,
>> Gabriel Hernán Barbuto wrote:
>>> Hi Yoshiki
>>> Maybe I have not made myself clear about which expression my comment
>>> referred to. Read my mail again, but I will copy it here again:
>>> headerWords :=
>>>        contentsWords > 63
>>>                ifTrue: [3]
>>>                ifFalse: [(cl indexIfCompact > 0) ifTrue: [1] ifFalse: [2]].
>>> Replacing the 63 for a 62 will make the trick and besides if
>>> contentsWords is greater than 62 it should be greater than or equal to
>>> 63. So what you propose is the same. But be careful that it's not in
>>> totalWords expression.
>>> I think this object should have a 3-word header. What do you think about this?
>>  Yes, I think so.
>>  I didn't quite understand the intent of original question ("Is it
>> fine to have an instance of compact class that doesn't have a one word
>> header?").  The answer, as Bert wrote, an object needs to have the
>> base header, if the "one word header" refers to the base header.
> My question was if it is possible to have an instance of a compact
> class with a 3-word header. I thought that all compact classes
> instances should have only a 1-word header. I understand that the base
> header will always be there. But I was not sure if it was legal to
> have more than the base header for compact classes instances.
> Hope this makes my question clearer.

Array is a compact class, but it is no doubt allows you to have more than
63 words (62 elements in array).
You can check it easily by issuing:

Array new: 10000


> Gabriel
>>> With respect to what we are doing. We are porting MicroSqueak to
>>> Pharo. MicroSqueak could be useful for teaching. The next step(we are
>>> also working in parallel on this) is to build kernel images but
>>> different from MicroSqueak. In order to do that, we need to remove all
>>> the bad dependencies on the kernel classes and clean up the Pharo
>>> image.
>>> What are you doing with MicroSqueak?
>>  Cool, and thank you.  In some ways, what we are doing is similar; we
>> wrote an app in Squeak but trying to understand what other parts of
>> Squeak the app is using and going from bottom up sounds like an
>> intersting idea.
>> -- Yoshiki

Best regards,
Igor Stasenko AKA sig.

More information about the Vm-dev mailing list