[Vm-dev] VM Maker: VMMaker-dtl.348.mcz
David T. Lewis
lewis at mail.msen.com
Sun Jul 20 18:38:12 UTC 2014
On Sun, Jul 20, 2014 at 11:11:35AM -0700, Eliot Miranda wrote:
> Morning, David.
Just finished mowing the lawn, back to Squeak for a few minutes :)
> On Sun, Jul 20, 2014 at 9:04 AM, <commits at source.squeak.org> wrote:
> > David T. Lewis uploaded a new version of VMMaker to project VM Maker:
> > http://source.squeak.org/VMMaker/VMMaker-dtl.348.mcz
> > ==================== Summary ====================
> > Name: VMMaker-dtl.348
> > Author: dtl
> > Time: 20 July 2014, 11:57:32.241 am
> > UUID: 869e87ed-0476-48a8-bca8-fe779633f9ae
> > Ancestors: VMMaker-dtl.347
> > VMMaker 4.13.6
> > Merge VMMaker.oscog-eem.826 except:
> > - Do not add the #initialize methods, not required because variables are
> > declared static, therefore guaranteed to be initialized to 0. Also would
> > require code generator changes for special treatment of instance side
> > #initialize..
> David, the #initialize methods /are/ needed. If one were to simulate this
> plugin (which vm developers /do/ do; none of the Cog VMs would exist
> without it) then the #initialize methods are required to initialize those
> variables to 0, not nil.
I think you have probably added some code generation features to do the right
thing with an #initialize method on the instance side of a plugin. Whatever
those changes are, they are not yet in VMM trunk.
> > - Do not ^self unnecessarily, not required here and code generated changes
> > would be needed.
> Could you give me the instances? I'm fairly sure I wouldn't have added a
> ^self if it wasn't needed. Maybe I mad a mistake?
No you did not make a mistake, it's just a code generation feature in oscog that
is not in trunk. In this case, the return value was not checked, so there was no
need to change the original code from '^ 0' to '^ self'.
That in turn left me with no defensible reason to spend the afternoon on further
code merges, rather than going out to mow the lawn ;-)
More information about the Vm-dev