Hi Max,

On Fri, Aug 21, 2015 at 8:57 AM, Max Leske <maxleske@gmail.com> wrote:
Hi folks

I���ve been trying to load Fuel into Squeak 5 but can���t because I get errors when loading Traits (they have not instance variables). The reason for this error seems to be that #instSize answers 2 for Traits when it should answer 0.

The current implementation is:

^format bitAnd: 16rFFFF

The comment in the 4.6 version says:

"
�� �� �� �� NOTE: This code supports the backward-compatible extension to 8 bits of instSize.
�� �� �� �� When we revise the image format, it should become...
�� �� �� �� ^ ((format bitShift: -1) bitAnd: 16rFF) - 1
�� �� �� �� Note also that every other method in this category will require
�� �� �� �� 2 bits more of right shift after the change.
���

When I use that version in TraitBehaviour>>instSize in Squeak 5 I get 0 as expected and I can load Fuel without problems.

So Spur has a different layout for format than V3.�� The above implementation (format bitAnd: 16rFFFF) is correct for Spur.�� In loading classes or traits via Fuel from 4.6 to 5.0 you're going to have to convert the format inst var to reflect its usage in Spur.�� So we need to be clear here.

Is the issue that you're trying to load classes and/or traits from a Fuel file written by 4.6 or is it that as part of the Fuel load a new Trait gets created which has a format of 2?


Cheers,
Max



--
_,,,^..^,,,_
best,��Eliot