On Sun, Feb 23, 2014 at 9:48 AM, David T. Lewis <lewis@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@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