<br><br><div class="gmail_quote">On Sun, Jan 16, 2011 at 1:26 PM, Igor Stasenko <span dir="ltr">&lt;<a href="mailto:siguctua@gmail.com">siguctua@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
AFAIK, #cannotInterpret: is sent to super<br></blockquote><div><br>yes, I know, this is why in my case I implemented that in the superclass.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div><div></div><div class="h5"><br>
<br>
&gt;<br>
&gt; Now, this is working, but there is something I DO NOT UNSERSTAND. When I try to do the &quot;inst basicIdentityHash&quot; the VM will send the #cannotInterpret to ProxySuperclass because the methodDict was nil in ClassProxyInstVar. Ok, perfect. What I don&#39;t understand is how the method #cannotInterptet can be run perfeclty in this case, since I am doing a &quot;self class restore&quot; there. Remember I removed the shortcut bytecode, so #class is sent like any normal message. So, my question is, when sending &quot;self class&quot;, why the VM doesn&#39;t call #cannotInterpter again like it did it when I did &quot;   inst basicIdentityHash.&quot;  ?  in other words...why the VM isn&#39;t entering in a loop ?   There is something I am not seeing.<br>

&gt;<br>
<br>
</div></div>check the bytecode of method. A special sends, which shortcutted using<br>
different bytecode.<br></blockquote><div><br>Yes, but I disable them, by evaluating: &quot;(ParseNode classVarNamed:  &#39;StdSelectors&#39;) removeKey: #class ifAbsent: [].&quot;<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
To avoid self sends, which will lead to infinite loop, you can use the<br>
message&#39;s lookupClass to send message to class side:<br>
<br>
aMessage lookupClass restore.<br></blockquote><div><br><br>This is a good trick!!!  This was really helpful Igor.<br><br>Anyway, now I found which was my problem. I mean, I understood why it was not causing a loop and was working instead. The thing is that I evaluated &quot;(ParseNode classVarNamed:  &#39;StdSelectors&#39;) removeKey: #class ifAbsent: 
[].&quot;  but then I check the the implemenation of #cannotInterpret and it was still using the shortcut bytecode for #class. Why ?  because I forget a Compiler recompileAll!!!!   hehehehe :)<br><br>thanks<br><br>Mariano<br>
 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div></div><div class="h5"><br>
&gt; Thanks for any help in advance,<br>
&gt;<br>
&gt; Mariano<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div><font color="#888888">--<br>
Best regards,<br>
Igor Stasenko AKA sig.<br>
</font></blockquote></div><br>