[Vm-dev] VM Maker: VMMaker-dtl.342.mcz

Eliot Miranda eliot.miranda at gmail.com
Mon Feb 24 22:17:23 UTC 2014


On Sun, Feb 23, 2014 at 9:48 AM, David T. Lewis <lewis at mail.msen.com> wrote:

>
> On Sun, Feb 23, 2014 at 08:48:28AM -0800, Eliot Miranda wrote:
> >
> > Hi David, you might want to check the accessors.  For example, in the
> below you added getNilObj but (at least in Cog) there's already nilObject,
> trueObject et al to access nilObj, trueObj et al.
> >
> > Eliot (phone)
>
> I'll double check when I get a chance. It's quite likely that I've made
> some unnecessary changes along the way. The general problem was the case
> of a variable foo with accessors #foo and #foo: such that the generated
> code would be:
>         sqInt foo;
>         sqInt foo(void);
>         sqInt foo(sqInt bar);
>

Right.  And the easiest pattern for that is

sqInt foo;

foo
    <cmacro: '() GIV(foo)'>
    ^foo

foo: aFoo
    foo := aFoo

=>

sqInt foo;
#define foo() GIV(foo)
void foo(sqInt aFoo) { GIV(foo) = aFoo; }

e.g. memory in ObjectMemory and SpurObjectMemory in Cog.

This because the C preprocessor will fail to match a zero-argument marco
against a 1-argument use of that macro.  So

foo() => GIV(foo)
foo(bar) => foo(bar)

Dave
>
>
> >
> > On Feb 23, 2014, at 8:36 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.342.mcz
> > >
> > > ==================== Summary ====================
> > >
> > > Name: VMMaker-dtl.342
> > > Author: dtl
> > > Time: 23 February 2014, 10:37:08.672 am
> > > UUID: b96b3f58-94e9-45e0-a1b5-833b62ca2284
> > > Ancestors: VMMaker-dtl.341
> > >
> > > VMMaker 4.13.3
> > >
> > > Make it possible to produce a working VM with inlining disabled.
> > >
>



-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20140224/9c6bb92b/attachment.htm


More information about the Vm-dev mailing list