Folks -
We're all clear now. The problem with trunk updating was caused by Monticello (more precisely Monticello-rej.309) which attempted to make MC loading atomic but in the process introduced some serious breakage in MC. In short, what the changes did was to first compile new methods and classes and defer installation the newly compiled methods until later. That sounds good at first but only to the point where you realize that methods often need to be recompiled in the process of class definition changes.
In this case, we had various methods in subclasses of CharacterScanner which were updated at the same time as a new variable was added in CharacterScanner (pendingKernX). The process involved compiling some methods with the *old* CharacterScanner definition and some methods with the *new* CharacterScanner definition (depending on whether the method was compiled before or after CharacterScanner's redefinition). As a consequence, when the methods were installed (some of which referred to the old, and some of which referred to the new layout) everything crashed and burned.
I have added a workaround in the form of an extra loading pass in MC that first loads class definitions and then the rest. This gets us past the hurdle but is probably not a proper long-term solution. Any ideas on how to address this issue would be greatly appreciated. At this point I'm leaning towards getting rid of MC's dependency driven load process and replace it with a declarative version that is explicit about what it does (i.e., adding/removing categories, adding/redefining/removing classes, adding/redefining/removing traits, adding/redefining/removing methods etc.) since the current MC version also has the problem that removals now again happen before additions which is yet another problem.
Cheers, - Andreas
Andreas Raab wrote:
Folks -
Just as a warning, something went wrong in the last round of updates I posted and I'm trying to understand what happened. I recommend you stay away from updating until I send an "all clear" message.
Cheers,
- Andreas