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
