<br><br><div class="gmail_quote">On Tue, Aug 18, 2009 at 5:05 AM, David T. Lewis <span dir="ltr">&lt;<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
VMMaker (from SqueakSource) can now be loaded into closure-enabled images.<br>
<br>
I was able to remove a couple of temp variables from the GeniePlugin<br>
primitive without affecting the logic. This was discussed on several<br>
lists back in May.<br>
<br>
The fix is in VMMaker-dtl.135 on SqueakSource, and is documented in<br>
Mantis <a href="http://bugs.squeak.org/view.php?id=7384" target="_blank">http://bugs.squeak.org/view.php?id=7384</a>.</blockquote><div><br></div><div>Thanks, Dave, that&#39;s great!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
<br>
Dave<br>
<div><div></div><div class="h5"><br>
On Mon, May 25, 2009 at 10:37:15PM -0400, David T. Lewis wrote:<br>
&gt;<br>
&gt; On Mon, May 25, 2009 at 11:06:10AM -0700, Eliot Miranda wrote:<br>
&gt; &gt;<br>
&gt; &gt; On Mon, May 25, 2009 at 7:40 AM, David T. Lewis &lt;<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Sun, May 24, 2009 at 01:44:52PM -0700, Eliot Miranda wrote:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; 3. refactor the GeniePlugin method into an outer args parser and an inner<br>
&gt; &gt; &gt; &gt; engine method and solve the problem.  Since VMMaker will inline anyway<br>
&gt; &gt; &gt; this<br>
&gt; &gt; &gt; &gt; shouldn&#39;t make performance worse.  I haven&#39;t done this because I&#39;m not<br>
&gt; &gt; &gt; the<br>
&gt; &gt; &gt; &gt; author and it is quite a complex method.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; This sounds like the right thing to do, regardless of what may change<br>
&gt; &gt; &gt; in the compiler(s).<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; +1<br>
&gt; &gt;<br>
&gt;<br>
&gt; Well unfortunately the refactoring turns out to be easier said than done.<br>
&gt; At least it was easier for me to say it than it was for me to do it.<br>
&gt;<br>
&gt; I made a naive attempt to split the primitive into smaller methods, but this<br>
&gt; just ended up trading off too many things on the stack for too many arguments<br>
&gt; in an argument list.<br>
&gt;<br>
&gt; The method temp variables could be changed to be instance variables. This<br>
&gt; would probably work fine for any current VMs (not sure about Hydra), but<br>
&gt; it does not pass the smell test IMO.<br>
&gt;<br>
&gt; I suspect that Nathaniel Schaerli knew what he was doing when he wrote<br>
&gt; this primitive, and I most certainly do not, so I don&#39;t expect that I will<br>
&gt; make much further progress on this front.<br>
&gt;<br>
&gt; Dave<br>
</div></div></blockquote></div><br>