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.