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