[squeak-dev] All Clear (and Monticello issues)
Bert Freudenberg
bert at freudenbergs.de
Mon Aug 31 08:07:05 UTC 2009
On 31.08.2009, at 05:56, Andreas Raab wrote:
> 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.
Uh, I wasn't even aware our MC version did this. The same version by
Ralph introduced the bug that not all files are shown in the
repository browser.
I found a little bit of discussion at
http://lists.squeakfoundation.org/pipermail/v3dot10/2007-March/000370.html
Glad this kind of discussion would happen on squeak-dev now.
> 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
I think the SystemEditor in the latest Monticello does pretty much do
this. Before patching up our old version we should switch to that one.
- Bert -
More information about the Squeak-dev
mailing list
|