On Wed, May 9, 2012 at 3:39 PM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
Now I do not understand why this guy cannot get printed.
I do not see why
ClassDescription>>printOn: aStream     aStream nextPutAll: self name
Metaclass>>name     "Answer a String that is the name of the receiver, either 'Metaclass' or     the name of the receiver's class followed by ' class'."
    thisClass == nil         ifTrue: [^'a Metaclass']         ifFalse: [^thisClass name , ' class']
self first soleInstance printString     -> leads to have emergency debugger.
you do not get emergency! I do not like when we do not get the same bugsâ¦
on some inst vars and expressions I get the emergency evaluator.
self name shows:
a Dictionary(#DependentsFields->a WeakIdentityKeyDictionary(a CategoryWidget->a DependentsArray(a PluggableIconListMorph(217841664)) a ContextVariablesInspector->a DependentsArray(a PluggableListMorph(445382656) a PluggableTextMorph(1046216704)) a ContextVariablesInspector->a DependentsArray(a PluggableListMorph(290193408) ... )
The source of printing problems will be in thisClass.
The next interesting thing is that it has no pointers and it is removed after garbageCollect.
So this is a good news :).
The question is what produced such strange object and how many similar ones we still have in the image. It can have very unwelcome consequences - for example the segmentation faults on Fuel packages exports when executed from command line. But from workspace it behaves differently. -- Pavel
-- Pavel
Stef