<br><br><div class="gmail_quote">On Sun, Dec 11, 2011 at 12:52 AM, Chris Muller <span dir="ltr">&lt;<a href="mailto:ma.chris.m@gmail.com" target="_blank">ma.chris.m@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hm, not sure what you&#39;re seeing..    #canUncompact is implemented only<br>
Behavior as:<br>
<br>
canUncompact<br>
        ^ (Smalltalk isRunningCog or: [ Smalltalk isRunningCogit ])<br>
                ifTrue: [ (Smalltalk compactClassesArray includes: self) not ]<br>
                ifFalse: [ true ]<br>
<br>
Sounds like you are looking at the wrong version of WriteBarrier.  The<br>
correct one is WriteBarrier-cmm.35.<br></blockquote><div><br>Indeed, I was looking the implementation in WriteBarrier repo, not the one inside Magma. <br>Anyway, that looks strange. You are saying that if you are running in Cog then you cannot uncompact any compact class?  The only ones you cannot uncompact are: <br>
<div><div><span style="white-space:pre-wrap">        </span>Array</div><div><span style="white-space:pre-wrap">        </span>LargeNegativeInteger</div>
<div><span style="white-space:pre-wrap">        </span>LargePositiveInteger</div><div><span style="white-space:pre-wrap">        </span>Float</div><div><span style="white-space:pre-wrap">        </span>MethodContext</div>
</div> 
<br>Maybe this is not that important...<br><br>Cheers<br><br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<span><font color="#888888"><br>
 - Chris<br>
</font></span><div><div><br>
<br>
<br>
On Sat, Dec 10, 2011 at 5:38 PM, Mariano Martinez Peck<br>
&lt;<a href="mailto:marianopeck@gmail.com" target="_blank">marianopeck@gmail.com</a>&gt; wrote:<br>
&gt; Thanks now I understand why you asked about compact classes. However, you<br>
&gt; only implement canUncompact  ^ false<br>
&gt; in CompiledMethod and ContextPart, even if with Cog there are more classes<br>
&gt; that you *cannot* uncompact.<br>
&gt;<br>
&gt; Cheers<br>
&gt;<br>
&gt; On Sat, Dec 10, 2011 at 5:37 PM, Chris Muller &lt;<a href="mailto:asqueaker@gmail.com" target="_blank">asqueaker@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; &gt; I would like to take a look to this. In which primitives you need to<br>
&gt;&gt; &gt; send<br>
&gt;&gt; &gt; #yourself for example? This is because otherwise the VM will fail /<br>
&gt;&gt; &gt; crash<br>
&gt;&gt; &gt; because it expects the parameters of a primitive to be of a certain type<br>
&gt;&gt; &gt; rather than a proxy ?<br>
&gt;&gt;<br>
&gt;&gt; Right, this is the problem that has been solved with the new extension.<br>
&gt;&gt;<br>
&gt;&gt; &gt; Which are those subclases you mention that override the primitive<br>
&gt;&gt; &gt; methods?<br>
&gt;&gt;<br>
&gt;&gt; The ones that WriteBarrier dynamically instantiates for each class of<br>
&gt;&gt; object added to the WB.  Please look at the WriteBarrier package (it&#39;s<br>
&gt;&gt; a small, standalone package) and it will become crystal clear.<br>
&gt;&gt;<br>
&gt;&gt; &gt; Thanks and congrats for the release.<br>
&gt;&gt;<br>
&gt;&gt; Thanks,<br>
&gt;&gt;  Chris<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Mariano<br>
&gt; <a href="http://marianopeck.wordpress.com" target="_blank">http://marianopeck.wordpress.com</a><br>
&gt;<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Mariano<br><a href="http://marianopeck.wordpress.com" target="_blank">http://marianopeck.wordpress.com</a><br><br>