> 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] 
> <mailto:[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”

Cheers,
Max

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

Reply via email to