<br><br><div class="gmail_quote">On Wed, Mar 2, 2011 at 11:46 AM, Juan Vuletich <span dir="ltr">&lt;<a href="mailto:juan@jvuletich.org">juan@jvuletich.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Folks,<br>
<br>
<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Nicolas Cellier uploaded a new version of Compiler to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Compiler-nice.189.mcz" target="_blank">http://source.squeak.org/trunk/Compiler-nice.189.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Compiler-nice.189<br>
Author: nice<br>
Time: 13 February 2011, 7:44:38.363 pm<br>
UUID: 3f6f02cd-1acf-48de-a388-b5ac55e27055<br>
Ancestors: Compiler-nice.188<br>
<br>
Enable cascading of special messages by deoptimizing, thanks Eliot.<br>
This is mostly useless, but it removes an arbitrary limitation of the language.<br>
<br>
=============== Diff against Compiler-nice.188 ===============<br>
  <br>
</blockquote>
I integrated this nice code in Cuis, and tried:<br>
<br>
true ifTrue: [ Transcript cr; show: &#39;was true&#39; ]; yourself<br>
<br>
I found that this works ok with the interpreter but does nothing in Cog. A bug, right?<br></blockquote><div><br></div><div>Yes.  But it is in the bytecode compiler, which has generated two blocks, not one:</div><div> </div>
<div>true ifTrue: [ Transcript cr; show: &#39;was true&#39; ]; yourself.  thisContext method symbolic</div><div><br></div><div><div>45 &lt;71&gt; pushConstant: true</div><div>46 &lt;88&gt; dup</div><div>47 &lt;8F 00 00 07&gt; closureNumCopied: 0 numArgs: 0 bytes 51 to 57</div>
<div>51 <span class="Apple-tab-span" style="white-space:pre">        </span>&lt;41&gt; pushLit: Transcript</div><div>52 <span class="Apple-tab-span" style="white-space:pre">        </span>&lt;88&gt; dup</div><div>53 <span class="Apple-tab-span" style="white-space:pre">        </span>&lt;D2&gt; send: cr</div>
<div>54 <span class="Apple-tab-span" style="white-space:pre">        </span>&lt;87&gt; pop</div><div>55 <span class="Apple-tab-span" style="white-space:pre">        </span>&lt;24&gt; pushConstant: &#39;was true&#39;</div><div>56 <span class="Apple-tab-span" style="white-space:pre">        </span>&lt;E3&gt; send: show:</div>
<div>57 <span class="Apple-tab-span" style="white-space:pre">        </span>&lt;7D&gt; blockReturn</div><div>58 &lt;8F 00 00 02&gt; closureNumCopied: 0 numArgs: 0 bytes 62 to 63</div><div>62 <span class="Apple-tab-span" style="white-space:pre">        </span>&lt;73&gt; pushConstant: nil</div>
<div>63 <span class="Apple-tab-span" style="white-space:pre">        </span>&lt;7D&gt; blockReturn</div><div>64 &lt;F0&gt; send: ifTrue:</div><div>65 &lt;87&gt; pop</div><div>66 &lt;D5&gt; send: yourself</div><div>67 &lt;87&gt; pop</div>
<div>68 &lt;89&gt; pushThisContext: </div><div>69 &lt;D7&gt; send: method</div><div>70 &lt;D6&gt; send: symbolic</div><div>71 &lt;7C&gt; returnTop</div></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<br>
Cheers,<br><font color="#888888">
Juan Vuletich<br>
<br>
</font></blockquote></div><br>