[squeak-dev] All Clear (and Monticello issues)

Andreas Raab andreas.raab at gmx.de
Mon Aug 31 03:56:52 UTC 2009


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
> 
> 




More information about the Squeak-dev mailing list