About MC for managing the image
stéphane ducasse
ducasse at iam.unibe.ch
Mon Sep 19 06:42:21 UTC 2005
Hi colin
I just discussed this point with avi. My take on that is a bit
extreme (and does not fit a system like squeak)
but I would say that per design you should not have initialization
order.
>> Both of these cases are solved by simply asking MC to load or
>> merge the two packages together, rather than asking it to load
>> them sequentially. The load strategy it uses is very simple: a
>> superclass always needs to be loaded before its subclasses, and a
>> class always needs to be loaded before its methods. Additions are
>> always done before removals, and removals are done with the
>> inverse rules (first remove methods, then classes, then
>> superclasses).
>>
>> What you don't get to do in that case is specify anything about
>> the load order yourself. I think the cases where specifying this
>> is necessary are going to be very rare, but certainly they will
>> happen. That's what the update stream is useful for: simply put
>> two configurations in (one of them, maybe, with only a single
>> package) to ensure that loads happen in the correct sequence.
>> This should only be needed for delicate migrations, I don't think
>> it should ever be needed for every time a group of packages is
>> loaded together.
>>
>
> One thing that isn't addressed here is initialization order. If
> package A depends on package B, A should be completely initialized
> before initialization of B begins. I don't think we do this
> correctly at the moment.
>
> Otherwise, I completely agree. We should use sequences of
> Configurations in the update stream for those special cases where
> we need specific intermediate states. In all other cases, MC's
> internal load ordering should be fine.
>
> Colin
>
More information about the Packages
mailing list