<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Jul 20, 2014 at 11:38 AM, David T. Lewis <span dir="ltr">&lt;<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
On Sun, Jul 20, 2014 at 11:11:35AM -0700, Eliot Miranda wrote:<br>
&gt;<br>
&gt; Morning, David.<br>
<br>
Hi Eliot,<br>
<br>
Just finished mowing the lawn, back to Squeak for a few minutes :)<br>
<div class=""><br>
&gt;<br>
&gt; On Sun, Jul 20, 2014 at 9:04 AM, &lt;<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt; David T. Lewis uploaded a new version of VMMaker to project VM Maker:<br>
&gt; &gt; <a href="http://source.squeak.org/VMMaker/VMMaker-dtl.348.mcz" target="_blank">http://source.squeak.org/VMMaker/VMMaker-dtl.348.mcz</a><br>
&gt; &gt;<br>
&gt; &gt; ==================== Summary ====================<br>
&gt; &gt;<br>
&gt; &gt; Name: VMMaker-dtl.348<br>
&gt; &gt; Author: dtl<br>
&gt; &gt; Time: 20 July 2014, 11:57:32.241 am<br>
&gt; &gt; UUID: 869e87ed-0476-48a8-bca8-fe779633f9ae<br>
&gt; &gt; Ancestors: VMMaker-dtl.347<br>
&gt; &gt;<br>
&gt; &gt; VMMaker 4.13.6<br>
&gt; &gt; Merge VMMaker.oscog-eem.826 except:<br>
&gt; &gt; - Do not add the #initialize methods, not required because variables are<br>
&gt; &gt; declared static, therefore guaranteed to be initialized to 0. Also would<br>
&gt; &gt; require code generator changes for special treatment of instance side<br>
&gt; &gt; #initialize..<br>
&gt; &gt;<br>
&gt;<br>
&gt; David, the #initialize methods /are/ needed. If one were to simulate this<br>
&gt; plugin (which vm developers /do/ do; none of the Cog VMs would exist<br>
&gt; without it) then the #initialize methods are required to initialize those<br>
&gt; variables to 0, not nil.<br>
<br>
</div>I think you have probably added some code generation features to do the right<br>
thing with an #initialize method on the instance side of a plugin. Whatever<br>
those changes are, they are not yet in VMM trunk.<br></blockquote><div><br></div><div>See CCodeGenerator&gt;&gt;addMethodFor:selector: for exclusion if #initialize methods.  But I can&#39;t remember doing this, only fixing global variable analysis given that #initialize methods were removed.  This is the kind of thing (more sophisticated Slang) that makes me want to merge Interpreter into the Cog branch. not the other way around.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class=""><br>
&gt;<br>
&gt;<br>
&gt; &gt; - Do not ^self unnecessarily, not required here and code generated changes<br>
&gt; &gt; would be needed.<br>
&gt; &gt;<br>
&gt;<br>
&gt; Could you give me the instances?  I&#39;m fairly sure I wouldn&#39;t have added a<br>
&gt; ^self if it wasn&#39;t needed.  Maybe I mad a mistake?<br>
<br>
</div>No you did not make a mistake, it&#39;s just a code generation feature in oscog that<br>
is not in trunk. In this case, the return value was not checked, so there was no<br>
need to change the original code from &#39;^ 0&#39; to &#39;^ self&#39;.<br>
<br>
That in turn left me with no defensible reason to spend the afternoon on further<br>
code merges, rather than going out to mow the lawn ;-)<br></blockquote><div><br></div><div>:-)</div><div><br></div><div>In nay case have a lovely afternoon!</div><div><br></div></div>-- <br>Aloha,<div>Eliot</div>
</div></div>