Friday, October 7, 2011

GemKit and Atomic Loading revisited

Ok, I spoke too soon.  It turns out that the loading of GbcManagement didn't actually work properly.  There were 26 methods in GbcHierarchyRoot which didn't install.  After a bit of tracing, I discovered why.  The GbcHierarchyRoot class defines a new compiler for instance and class methods and that compiler was loaded in the same package as the GbcHierarchyRoot class.  This means that GbcHierarchyRoot could load before the compiler, load the methods to change to the compiler that's not loaded, then fail to compile anything else.

The solution to this is to create another package which has all the GbcHierarchyRoot methods and is loaded after GbcManagement.  This allows everything to load cleanly.

Now, on to more problems...

1 comment:

  1. Yes, one of several problems with Atomic Loading in that version. Most have already been reported to Cincom, but I think that particular problem is one that Cincom caution about. It is better to just turn off atomic loading and forget about it. VW 7.8 was to have a new third load option (more like the original ENVY atomic loading) that should behave better.

    ReplyDelete