[Vm-dev] Re: Squeak3D plugin code generation broken by latest update

David T. Lewis lewis at mail.msen.com
Thu Dec 3 05:22:29 UTC 2015


On Wed, Dec 02, 2015 at 06:54:14PM -0800, tim Rowledge wrote:
> This is very puzzling. The change relevant to this is that in the Cog vmmaker version of  buildCodeGeneratorUpTo: the receiver (B3DEnginePlugin in this case) is added and initialized etc. So it needs to *not* be in the following list.
> 

Not so in trunk. Presumably this is a change in oscog.

> In the trunk vmmaker, it really looks like it is also correctly added. If I generate the B3DEnginePlugin it creates a file that only differs in the date related info from one created by an unchanged vmmaker. 
> 

Generated code attached.

The generated code is missing a bunch of stuff, most notably the static
variable declarations that presumably are included when B3DEnginePlugin
is added to the code generator.

Note the empty /*** Constants ***/ section with no static variables
declared. That's what leads to the compile time errors, but I expect
that there are other things missing, given that the B3DEnginePlugin
class is missing from the code generator.


> What is the error you get? I just don???t seem to get one!
>

Compile time errors look like this (small sample):


[ 33%] Building C object Squeak3D/CMakeFiles/Squeak3D.dir/home/lewis/squeak/VMM-20150614/src/plugins/Squeak3D/Squeak3D.c.o
/home/lewis/squeak/VMM-20150614/src/plugins/Squeak3D/Squeak3D.c: In function ‘analyzeMatrix’:
/home/lewis/squeak/VMM-20150614/src/plugins/Squeak3D/Squeak3D.c:172:19: error: ‘FlagM44NoPerspective’ undeclared (first use in this function)
   flags = flags | FlagM44NoPerspective;
                   ^
/home/lewis/squeak/VMM-20150614/src/plugins/Squeak3D/Squeak3D.c:172:19: note: each undeclared identifier is reported only once for each function it appears in
/home/lewis/squeak/VMM-20150614/src/plugins/Squeak3D/Squeak3D.c:177:20: error: ‘FlagM44NoTranslation’ undeclared (first use in this function)
    flags = flags | FlagM44NoTranslation;
                    ^
/home/lewis/squeak/VMM-20150614/src/plugins/Squeak3D/Squeak3D.c:179:21: error: ‘FlagM44Identity’ undeclared (first use in this function)
     flags = flags | FlagM44Identity;
                     ^

Those errors are caused by missing static declarations for e.g.
FlagM44NoPerspective, presumably caused by B3DEngineConstants not
being included in the code generator, probably because B3DEnginePlugin
was not added to the code generator.

We must be overlooking something here. I don't see how this could possibly
have worked, but you are apparently getting generated code that differs
only by time stamp. What are we missing?

Dave

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Squeak3D.c
Type: text/x-csrc
Size: 85011 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20151203/a230dad6/Squeak3D-0001.c


More information about the Vm-dev mailing list