On Sun, Jan 26, 2014 at 4:07 PM, Tudor Girba <tudor@tudorgirba.com> wrote:
I looked more into it, and here is a smaller example:
Gofer new�
smalltalkhubUser: 'Moose' project: 'MooseAlgos';
package: 'Moose-Algos-Graph';
load

This one does open the debugger, so the other emergency evaluator issue comes from somewhere else.

The problem seems to come from a Trait being defined in this package, and loading this trait triggers ClassModifiedClassDefinition which stumbles in�

ClassModifiedClassDefinition>>isPropagation�
"If there is not slot changes, I can assume that there is a propagation (the change is in one of the superclasses)"
self oldClassDefinition layout ifNil: [ ^ false ].
^ self newClassDefinition layout instanceVariables = self oldClassDefinition layout instanceVariables


Despite of the name of ClassModifiedClassDefinition, it is announced also when traits are modified. I don't know if Trait should implement #layout... but it is not. �

I reproduced using this:

Trait named: #DDDD.
Trait�
named: #DDDD�
uses: {TSortable}�
category: 'a'.

I guess that�ClassModifiedClassDefinition�is not only being announced when a class changed but also it is being announced when its superclass changed (in the case, "propagated"). So the purpose of #isPropagation is the check that. But I'm not sure this announcement should be done for the subclasses...