Load order, Monticello, Polymorph

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Load order, Monticello, Polymorph

Casey Ransberger
I tried taking another stab at whittling down Polymorph this morning.
I grabbed a recent trunk image, updated it, and loaded in a known good
Polymorph-Widgets to get started, but my image crashed while the
progress bar said "installing."

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.

I was able to work around the problem by loading the package into a
standard image, filing out the bits that were missing/crashing me,
filing those back into a Trunk image, and then loading the Monticello
package.

I am at a loss though, as to how I'm going to fix the MC package. What
is MC doing when it it says "installing"? Does it just run all of the
class side initialization methods that it saw?

Or is there some way to inspect the installation process?

--
Ron



--
Ron

Reply | Threaded
Open this post in threaded view
|

Re: Load order, Monticello, Polymorph

Andreas.Raab
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


Reply | Threaded
Open this post in threaded view
|

Re: Re: Load order, Monticello, Polymorph

Casey Ransberger
Beautiful, I'm back in business.

Query:

Does what I've experienced qualify as a bug?

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

On Wed, Nov 18, 2009 at 10:33 AM, Andreas Raab <[hidden email]> 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
>
>
>



--
Ron

Reply | Threaded
Open this post in threaded view
|

Re: Load order, Monticello, Polymorph

Andreas.Raab
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 <[hidden email]> 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
>>
>>
>>
>
>
>