can you propose a fix?On 26 Jan 2014, at 22:56, Martin Dias <tinchodias@gmail.com> wrote:On Sun, Jan 26, 2014 at 10:50 PM, Martin Dias <tinchodias@gmail.com> wrote:
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';loadThis 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 instanceVariablesDespite 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...Yes, when a class is redefined, the change is announced for subclasses also. Maybe we shouldn't, no?code to reproduce:aClass := Object subclass: #A.aClass subclass: #B.anns := OrderedCollection new.SystemAnnouncer uniqueInstance�when: ClassModifiedClassDefinitionsend: #add:to: anns.Object�subclass: #AinstanceVariableNames: 'a'.anns. --->an OrderedCollection(a ClassModifiedClassDefinition a ClassModifiedClassDefinition)Mart�n