On Tue, Aug 18, 2009 at 5:05 AM, David T. Lewis <lewis@mail.msen.com> wrote:

VMMaker (from SqueakSource) can now be loaded into closure-enabled images.

I was able to remove a couple of temp variables from the GeniePlugin
primitive without affecting the logic. This was discussed on several
lists back in May.

The fix is in VMMaker-dtl.135 on SqueakSource, and is documented in
Mantis http://bugs.squeak.org/view.php?id=7384.

Thanks, Dave, that's great!
 


Dave

On Mon, May 25, 2009 at 10:37:15PM -0400, David T. Lewis wrote:
>
> On Mon, May 25, 2009 at 11:06:10AM -0700, Eliot Miranda wrote:
> >
> > On Mon, May 25, 2009 at 7:40 AM, David T. Lewis <lewis@mail.msen.com> wrote:
> >
> > >
> > > On Sun, May 24, 2009 at 01:44:52PM -0700, Eliot Miranda wrote:
> > > >
> > > > 3. refactor the GeniePlugin method into an outer args parser and an inner
> > > > engine method and solve the problem.  Since VMMaker will inline anyway
> > > this
> > > > shouldn't make performance worse.  I haven't done this because I'm not
> > > the
> > > > author and it is quite a complex method.
> > >
> > > This sounds like the right thing to do, regardless of what may change
> > > in the compiler(s).
> >
> >
> > +1
> >
>
> Well unfortunately the refactoring turns out to be easier said than done.
> At least it was easier for me to say it than it was for me to do it.
>
> I made a naive attempt to split the primitive into smaller methods, but this
> just ended up trading off too many things on the stack for too many arguments
> in an argument list.
>
> The method temp variables could be changed to be instance variables. This
> would probably work fine for any current VMs (not sure about Hydra), but
> it does not pass the smell test IMO.
>
> I suspect that Nathaniel Schaerli knew what he was doing when he wrote
> this primitive, and I most certainly do not, so I don't expect that I will
> make much further progress on this front.
>
> Dave