<br><br><div class="gmail_quote">On Wed, Mar 2, 2011 at 11:46 AM, Juan Vuletich <span dir="ltr"><<a href="mailto:juan@jvuletich.org">juan@jvuletich.org</a>></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: 'was true' ]; 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: 'was true' ]; yourself. thisContext method symbolic</div><div><br></div><div><div>45 <71> pushConstant: true</div><div>46 <88> dup</div><div>47 <8F 00 00 07> closureNumCopied: 0 numArgs: 0 bytes 51 to 57</div>
<div>51 <span class="Apple-tab-span" style="white-space:pre">        </span><41> pushLit: Transcript</div><div>52 <span class="Apple-tab-span" style="white-space:pre">        </span><88> dup</div><div>53 <span class="Apple-tab-span" style="white-space:pre">        </span><D2> send: cr</div>
<div>54 <span class="Apple-tab-span" style="white-space:pre">        </span><87> pop</div><div>55 <span class="Apple-tab-span" style="white-space:pre">        </span><24> pushConstant: 'was true'</div><div>56 <span class="Apple-tab-span" style="white-space:pre">        </span><E3> send: show:</div>
<div>57 <span class="Apple-tab-span" style="white-space:pre">        </span><7D> blockReturn</div><div>58 <8F 00 00 02> closureNumCopied: 0 numArgs: 0 bytes 62 to 63</div><div>62 <span class="Apple-tab-span" style="white-space:pre">        </span><73> pushConstant: nil</div>
<div>63 <span class="Apple-tab-span" style="white-space:pre">        </span><7D> blockReturn</div><div>64 <F0> send: ifTrue:</div><div>65 <87> pop</div><div>66 <D5> send: yourself</div><div>67 <87> pop</div>
<div>68 <89> pushThisContext: </div><div>69 <D7> send: method</div><div>70 <D6> send: symbolic</div><div>71 <7C> 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>