Hi Max,

On Fri, Aug 21, 2015 at 2:11 PM, Max Leske <[email protected]> wrote:

>
> On 21 Aug 2015, at 19:31, Eliot Miranda <[email protected]> wrote:
>
> Hi Max,
>
> On Fri, Aug 21, 2015 at 8:57 AM, Max Leske <[email protected]> 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?
>
>
> The latter. This is reproducible by simply creating a new Trait:
>
> Trait named: #NewTrait
> uses: #()
> category: ‘new cat’.
> NewTrait instSize “—> 2”
>

I just took a look at this and it doesn't reproduce.  I'm using a trunk
Squeak 5 image and I get 0 and required. ?

Cheers,
> Max
>
>
>
>> Cheers,
>> Max
>>
>
>
>
> --
> _,,,^..^,,,_
> best, Eliot
>
>
>


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

Reply via email to