On 07.12.2011 11:02, Stefan Marr wrote:
Hi:

On 06 Dec 2011, at 15:55, Mariano Martinez Peck wrote:

On Mon, Dec 5, 2011 at 4:21 PM, Stefan Marr<[email protected]>  wrote:
I got here a Monticello package that does not properly load using the Metacello 
configuration. The image freezes and cmd+. does not pop up a debugger anymore.

However, if I extract the source.st contained in the package and file it in 
manually, it does not freeze the image.
It is likely you broke DataStream, and hence #loadDefinitions or friends is 
looping.
I debugged the problem a bit.
Stepping through the whole loading step.

#loadDefinitions is already executed during opening and showing the package in 
the browser.
It needs it, I think, for instance to show the commit message.

And that is not the problem.

Stepping through MCFileRepositoryInspector>>#load reveals that the image 
freezes on installing the method additions.
(methodAdditions do: [:each | each installMethod].)

There are for instance changes in Behavior and TPureBehavior. In general there 
is a dependency between changes, and a wrong order can easily break things.

So, I checked whether the order in methodAdditions actually reflects what is in 
the change set. And the order is not consistent.

So, what ever the approach is to decide on the order in the source.st, it is 
more stable/reliable in this case than what is in the binary snapshot.


Any ideas to make these things consistent?

Thanks
Stefan


I can't claim to know exactly, but I seem to remember it does batches of new, then changed, then removed methods.
Other than that, I think they happen "seemingly" at random.
There are many sorts of internal dependencies, so other than the old workaround of making multiple .mcz's without internal dependencies, one kind of needs an insight into what exactly was at fault here to see if anything could be improved of the loading order in the general case, which does not simultaneously break something else...

Cheers,
Henry

Reply via email to