<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 22 Aug 2015, at 19:21, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" class="">eliot.miranda@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi Max,<div class="gmail_extra"><br class=""><div class="gmail_quote">On Fri, Aug 21, 2015 at 2:11 PM, Max Leske <span dir="ltr" class="">&lt;<a href="mailto:maxleske@gmail.com" target="_blank" class="">maxleske@gmail.com</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><br class=""><div class=""><span class=""><blockquote type="cite" class=""><div class="">On 21 Aug 2015, at 19:31, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank" class="">eliot.miranda@gmail.com</a>&gt; wrote:</div><br class=""><div class=""><div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="">Hi Max,<br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Fri, Aug 21, 2015 at 8:57 AM, Max Leske<span class="">&nbsp;</span><span dir="ltr" class="">&lt;<a href="mailto:maxleske@gmail.com" target="_blank" class="">maxleske@gmail.com</a>&gt;</span><span class="">&nbsp;</span>wrote:<br class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi folks<br class=""><br class="">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.<br class=""><br class="">The current implementation is:<br class=""><br class="">^format bitAnd: 16rFFFF<br class=""><br class="">The comment in the 4.6 version says:<br class=""><br class="">"<br class="">&nbsp; &nbsp; &nbsp; &nbsp;<span class="">&nbsp;</span>NOTE: This code supports the backward-compatible extension to 8 bits of instSize.<br class="">&nbsp; &nbsp; &nbsp; &nbsp;<span class="">&nbsp;</span>When we revise the image format, it should become...<br class="">&nbsp; &nbsp; &nbsp; &nbsp;<span class="">&nbsp;</span>^ ((format bitShift: -1) bitAnd: 16rFF) - 1<br class="">&nbsp; &nbsp; &nbsp; &nbsp;<span class="">&nbsp;</span>Note also that every other method in this category will require<br class="">&nbsp; &nbsp; &nbsp; &nbsp;<span class="">&nbsp;</span>2 bits more of right shift after the change.<br class="">“<br class=""><br class="">When I use that version in TraitBehaviour&gt;&gt;instSize in Squeak 5 I get 0 as expected and I can load Fuel without problems.<br class=""></blockquote><div class=""><br class=""></div><div class="">So Spur has a different layout for format than V3.&nbsp; The above implementation (format bitAnd: 16rFFFF) is correct for Spur.&nbsp; 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.&nbsp; So we need to be clear here.</div><div class=""><br class=""></div><div class="">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?</div></div></div></div></div></blockquote><div class=""><br class=""></div></span><div class="">The latter. This is reproducible by simply creating a new Trait:</div><div class=""><br class=""></div><div class="">Trait named: #NewTrait</div><div class=""><span style="white-space:pre-wrap" class="">        </span>uses: #()</div><div class=""><span style="white-space:pre-wrap" class="">        </span>category: ‘new cat’.</div><div class="">NewTrait instSize “—&gt; 2”</div></div></div></blockquote><div class=""><br class=""></div><div class="">I just took a look at this and it doesn't reproduce.&nbsp; I'm using a trunk Squeak 5 image and I get 0 and required. ?</div></div></div></div></div></blockquote><div><br class=""></div><div>Thanks Eliot. You’re right. The problem is not with #instSize, I don’t know how I managed to get the above…</div><div><br class=""></div><div>The problem is actually, that TApplyingOnClassSide (which is already present) has a format of 2:</div><div><br class=""></div><div>TApplyingOnClassSide instSize “—&gt; 2”</div><div><br class=""></div><div><br class=""></div><div>Also, all Traits in the image have format 2, while new Traits have format 0:</div><div><br class=""></div><div><div>format2 := Smalltalk allTraits select: [ :e | e format = 2 ].</div><div>Smalltalk allTraits size = format2 size “—&gt; true"</div><div><br class=""></div><div>Trait named: #NewTrait</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>uses: #()</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>category: 'new cat’.</div><div><br class=""></div><div>NewTrait instSize “—&gt; 0"</div><div><div>format2 := Smalltalk allTraits select: [ :e | e format = 2 ].</div><div>Smalltalk allTraits size = format2 size “—&gt; false”</div><div><br class=""></div><div><br class=""></div><div>This is with build 15113 (which is trunk I suppose).</div><div><br class=""></div><div>Cheers,</div><div>Max</div></div></div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""><br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><div class="">Cheers,<br class=""></div><div class="">Max</div><span class=""><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""><br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br class="">Cheers,<br class="">Max<br class=""></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>--<span class="">&nbsp;</span><br class=""><div class=""><div dir="ltr" class=""><div class=""><span style="font-size:small;border-collapse:separate" class=""><div class="">_,,,^..^,,,_<br class=""></div><div class="">best,&nbsp;Eliot</div></span></div></div></div></div></div></div></blockquote></span></div><br class=""></div></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div class="gmail_signature"><div dir="ltr" class=""><div class=""><span style="font-size:small;border-collapse:separate" class=""><div class="">_,,,^..^,,,_<br class=""></div><div class="">best,&nbsp;Eliot</div></span></div></div></div>
</div></div>
</div></blockquote></div><br class=""></body></html>