[squeak-dev] Re: Load order, Monticello, Polymorph

Andreas Raab andreas.raab at gmx.de
Thu Nov 19 05:49:13 UTC 2009


Ronald Spengler wrote:
> Beautiful, I'm back in business.
> 
> Query:
> 
> Does what I've experienced qualify as a bug?

Sure thing. I just committed a fix for this problem.

> I'm still a little foggy about what happened here.

Oh, simple: When we load code there can be methods that have 
dependencies on other methods. If we call one of these then we'll blow 
up since the required method isn't present yet. This has often been a 
problem with compiler changes and so we try to be really careful about 
what methods may be called during the critical phase of installation.

The problem we were having was that I had carelessly thrown a progress 
bar in the installation loop and that progress bar will redraw in the 
midst of the critical loop - calling methods all over Morphic, possibly 
in all the other things referenced from the world and consequently 
blowing up if there was indeed a dependency and the progress bar was 
updated inbetween installing the dependent method and its requirement.

Cheers,
   - Andreas

> On Wed, Nov 18, 2009 at 10:33 AM, Andreas Raab <andreas.raab at gmx.de> wrote:
>> Ronald Spengler wrote:
>>> I was confused for a bit, but after some investigation, it seems that
>>> the install phase doesn't have access to the methods that were just
>>> compiled (the crash relates to MNUs where Polymorph methods are
>>> missing, and when the debugger pops, the same thing happens, which
>>> leaves me stuck in a REPL.) I know there's been some work going on to
>>> do with Monticello and load order; I have a feeling this is that.
>> Yes, most likely. Try the following and let me know if it works for you:
>>
>> In MCPackageLoader>>basicLoad change the line saying
>>
>>        "Pass 3: Install the new / changed methods
>>        (this is a separate pass to allow compiler changes to be loaded)"
>>        methodAdditions do:[:ea| ea installMethod] displayingProgress:
>> 'Installing...'.
>>
>> just remove the "displayingProgress:" part from it. It's actually pretty
>> ironic that we go through all this length with proper load order only to
>> sprinkle into the one part that counts Morphic updates via progress bar
>> animations :-) I would not be surprised if this is the entire cause of your
>> problems.
>>
>> Cheers,
>>  - Andreas
>>
>>
>>
> 
> 
> 




More information about the Squeak-dev mailing list