<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 12.04.2012, at 16:40, Eliot Miranda wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hi Yoshiki,<br><br><div class="gmail_quote">On Thu, Apr 12, 2012 at 4:27 PM, Yoshiki Ohshima <span dir="ltr"><<a href="mailto:Yoshiki.Ohshima@acm.org">Yoshiki.Ohshima@acm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
At Thu, 12 Apr 2012 16:08:53 -0700,<br>
<div class="im">Eliot Miranda wrote:<br>
><br>
> Hi Yoshiki,<br>
><br>
> what's the image you're using, or at least what is it derived from? Also, what's the result of (OMeta2 >> #token) symbolic ?<br>
<br>
</div>The image is one started from "Squeak4.3alpha-11481" and updated by<br>
pressing the "update code from server" button. The result of<br>
#symbolic is like this:<br>
<br>
37 <71> pushConstant: true<br>
38 <AC 0F> jumpFalse: 55<br>
40 <70> self<br>
41 <21> pushConstant: #anything<br>
42 <E0> send: apply:<br>
43 <68> popIntoTemp: 0<br>
44 <70> self<br>
45 <22> pushConstant: #spaces<br>
46 <E0> send: apply:<br>
47 <87> pop<br>
48 <70> self<br>
49 <24> pushConstant: #seq<br>
50 <10> pushTemp: 0<br>
51 <8A 81> pop 1 into (Array new: 1)<br>
53 <F3> send: apply:withArgs:<br>
54 <90> jumpTo: 56<br>
55 <73> pushConstant: nil<br>
56 <7C> returnTop<br>
<br>
-- Yoshiki<br></blockquote><div><br></div><div>I can't reproduce this. When I debug the following doit (which mimics your code) and inspect the context I get a valid decompilation:</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>| t |</div>
<div> ^ true</div><div> ifTrue: [t := self apply: #anything.</div><div> self apply: #spaces.</div><div> self apply: #seq withArgs: {t}]</div><div><br></div><div>
the same code:</div><div><br></div><div>method symbolic</div><div>'37 <71> pushConstant: true</div><div>38 <AC 0F> jumpFalse: 55</div><div>40 <70> self</div><div>41 <21> pushConstant: #anything</div>
<div>42 <E0> send: apply:</div><div>43 <68> popIntoTemp: 0</div><div>44 <70> self</div><div>45 <22> pushConstant: #spaces</div><div>46 <E0> send: apply:</div><div>47 <87> pop</div><div>
48 <70> self</div><div>49 <24> pushConstant: #seq</div><div>50 <10> pushTemp: 0</div><div>51 <8A 81> pop 1 into (Array new: 1)</div><div>53 <F3> send: apply:withArgs:</div><div>54 <90> jumpTo: 56</div>
<div>55 <73> pushConstant: nil</div><div>56 <7C> returnTop</div><div>'</div><div><br></div><div>and decompileWithTemps returns something correct:</div><div><br></div><div>method decompileWithTemps</div><div>
DoIt</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>| t |</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>^ true</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>ifTrue: [t := self apply: #anything.</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>self apply: #spaces.</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>self apply: #seq withArgs: {t}] </div><div><br></div><div>So has OMeta patched some old bug in the decompiler which is now obsoleted by some other fix?</div>
</div></blockquote><br></div><div>The difference appears to be that the OMeta compiler answers '(t)[(t)[(t)]]' for the schematicTempNamesString. The regular compiler answers 't'. This trips the Decompiler over.</div><br><div apple-content-edited="true">
<div style="font-family: Helvetica; font-size: 12px; "><span class="Apple-style-span" style="font-family: Helvetica; ">- Bert -</span></div><span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 12px; "><br class="Apple-interchange-newline"></span>
</div>
<br></body></html>