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