On Sat, 2008-06-14 at 12:48 +0200, Norbert Hartl wrote:
> On Sat, 2008-06-14 at 12:42 +0200, Stéphane Ducasse wrote:
> > Adrian why did you remove the test for rootsOfTheWorld because it  
> > describes that rootsOfTheWorld does I will reintroduce it.
> > if this is ok ?
> > 
> No, not really. testRootsOfTheWorld will fail as there are 3 classes
> set up for TraitsTest that have superclass nil. 
> 
> Maybe the best fix is as Adrian suggested that the test classes
> which are set up for TraitsTest become Object superclass instead
> of ProtoObject.
> 
> I could do the change.
> 
After all the test is not easy to succeed. TraitsTest sets up 3 
classes so 

Class rootsOfTheWorld

will be 6 during test run and 3 afterwards. The second line of the
test is completely useless as rootsOfTheWorld does a check if the
superclass is nil.

Norbert
> Norbert
> > On Jun 14, 2008, at 9:56 AM, Adrian Lienhard wrote:
> > 
> > >
> > > On Jun 13, 2008, at 17:54 , Stéphane Ducasse wrote:
> > >
> > >> Yes it is used by OB-Refactoring and other and the refactoring  
> > >> engine.
> > >> May be it shoudl be packaged there.
> > >
> > > I checked the refactoring engine and this method is used in various  
> > > places. So the simplest thing to do was to add it back to the Pharo  
> > > image.
> > >
> > > Stef, I published a new version of the package SLICE-test-fixes-al.2.
> > >
> > > Adrian
> > >
> > >
> > >>
> > >>
> > >> Stef
> > >> On Jun 13, 2008, at 5:36 PM, Adrian Lienhard wrote:
> > >>
> > >>> hm, I checked that there are no senders of this method before  
> > >>> removing it.
> > >>> How can I reproduce it? i.e., what means "open an environment to  
> > >>> apply refactoring"?
> > >>>
> > >>> Is this the refactoring browser? If yes, then it might be a good  
> > >>> idea to move the method there if it is not used elsewhere.
> > >>>
> > >>> Adrian
> > >>>
> > >>> On Jun 13, 2008, at 13:56 , Stéphane Ducasse wrote:
> > >>>
> > >>>> So Adrian I have the impression that you remove too much :)
> > >>>>
> > >>>> Stef
> > >>>>
> > >>>> On Jun 13, 2008, at 1:51 PM, Stéphane Ducasse wrote:
> > >>>>
> > >>>>> Once loaded the latest version and update
> > >>>>>
> > >>>>>       When I open an environment to apply refactoring
> > >>>>>       I get doesNotUnderstand: #rootsOfTheWorld
> > >>>>>
> > >>>>> Stef
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>> From: [EMAIL PROTECTED]
> > >>>>> To: [EMAIL PROTECTED]
> > >>>>> Subject: [BUG]Class class(Object)>>doesNotUnderstand:  
> > >>>>> #rootsOfTheWorld
> > >>>>>
> > >>>>> here insert explanation of what you were doing, suspect changes  
> > >>>>> you've made and so forth.
> > >>>>>
> > >>>>> 13 June 2008 1:50:10 pm
> > >>>>>
> > >>>>> VM: Mac OS - a SmalltalkImage
> > >>>>> Image: Pharo0.1 [latest update: #10037]
> > >>>>>
> > >>>>> SecurityManager state:
> > >>>>> Restricted: false
> > >>>>> FileAccess: true
> > >>>>> SocketAccess: true
> > >>>>> Working Dir /Users/ducasse/Desktop/Pharo/Pharo0.1-10036-2008-06-10
> > >>>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
> > >>>>> Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/ 
> > >>>>> My Squeak
> > >>>>>
> > >>>>> Class class(Object)>>doesNotUnderstand: #rootsOfTheWorld
> > >>>>>       Receiver: Class
> > >>>>>       Arguments and temporary variables:
> > >>>>>               aMessage:       rootsOfTheWorld
> > >>>>>       Receiver's instance variables:
> > >>>>>               superclass:     ClassDescription
> > >>>>>               methodDict:     a MethodDictionary(#addClassVarName:->a 
> > >>>>>  
> > >>>>> CompiledMethod (608) #addIn...etc...
> > >>>>>               format:         156
> > >>>>>               instanceVariables:      #('subclasses' 'name' 
> > >>>>> 'classPool'  
> > >>>>> 'sharedPools' 'environment...etc...
> > >>>>>               organization:   ('accessing' basicCategory 
> > >>>>> basicCategory:  
> > >>>>> basicLocalSelectors bas...etc...
> > >>>>>               subclasses:     an Array(ObjectTracer class 
> > >>>>> PseudoContext class  
> > >>>>> ProtoObject class)
> > >>>>>               name:   #Class
> > >>>>>               classPool:      a Dictionary()
> > >>>>>               sharedPools:    nil
> > >>>>>               environment:    a SystemDictionary(lots of globals)
> > >>>>>               category:       #'Kernel-Classes'
> > >>>>>               traitComposition:       TBehaviorCategorization
> > >>>>>               localSelectors:         an IdentitySet(#classPool: 
> > >>>>> #sharing:  
> > >>>>> #removeFromSystemUnlogged ...etc...
> > >>>>>
> > >>>>> BrowserEnvironment>>allClassesDo:
> > >>>>>       Receiver: Smalltalk
> > >>>>>       Arguments and temporary variables:
> > >>>>>               aBlock:         [] in BrowserEnvironment>>classesDo: 
> > >>>>> {[:each | (self  
> > >>>>> includesClass: eac...etc...
> > >>>>>               each:   nil
> > >>>>>       Receiver's instance variables:
> > >>>>>               label:  nil
> > >>>>>               searchStrings:  nil
> > >>>>>
> > >>>>> BrowserEnvironment>>classesDo:
> > >>>>>       Receiver: Smalltalk
> > >>>>>       Arguments and temporary variables:
> > >>>>>               aBlock:         [] in 
> > >>>>> BrowserEnvironment>>classesAndSelectorsDo:  
> > >>>>> {[:class | self   sele...etc...
> > >>>>>               each:   nil
> > >>>>>       Receiver's instance variables:
> > >>>>>               label:  nil
> > >>>>>               searchStrings:  nil
> > >>>>>
> > >>>>> BrowserEnvironment>>classesAndSelectorsDo:
> > >>>>>       Receiver: Smalltalk
> > >>>>>       Arguments and temporary variables:
> > >>>>>               aBlock:         [] in 
> > >>>>> OREnvironmentNode>>selectorEnvironment  
> > >>>>> {[:class :selector | selec...etc...
> > >>>>>               class:  nil
> > >>>>>               sel:    nil
> > >>>>>       Receiver's instance variables:
> > >>>>>               label:  nil
> > >>>>>               searchStrings:  nil
> > >>>>>
> > >>>>>
> > >>>>> --- The full stack ---
> > >>>>> Class class(Object)>>doesNotUnderstand: #rootsOfTheWorld
> > >>>>> BrowserEnvironment>>allClassesDo:
> > >>>>> BrowserEnvironment>>classesDo:
> > >>>>> BrowserEnvironment>>classesAndSelectorsDo:
> > >>>>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> > >>>>> OREnvironmentNode>>selectorEnvironment
> > >>>>> ORSystemBrowser>>setMetaNode:node:
> > >>>>> ORSystemBrowser class(OBBrowser  
> > >>>>> class)>>metaNode:root:selection:panels:
> > >>>>> ORSystemBrowser class(OBBrowser class)>>root:selection:
> > >>>>> ORSystemBrowser class(OBBrowser class)>>root:
> > >>>>> ORSystemBrowser class(OREnvironmentBrowser class)>>on:
> > >>>>> ORCmdSpawnEnvironment>>execute
> > >>>>> ORCmdSpawnEnvironment(OBCommand)>>perform:orSendTo:
> > >>>>> [] in MenuItemMorph>>invokeWithEvent: {[(selArgCount := selector  
> > >>>>> numArgs) = 0   ifTrue: [target perform: selector] ...]}
> > >>>>> BlockContext>>ensure:
> > >>>>> CursorWithMask(Cursor)>>showWhile:
> > >>>>> MenuItemMorph>>invokeWithEvent:
> > >>>>> MenuItemMorph>>mouseUp:
> > >>>>> MenuItemMorph>>handleMouseUp:
> > >>>>> MouseButtonEvent>>sentTo:
> > >>>>> MenuItemMorph(Morph)>>handleEvent:
> > >>>>> MorphicEventDispatcher>>dispatchDefault:with:
> > >>>>> MorphicEventDispatcher>>dispatchEvent:with:
> > >>>>> MenuItemMorph(Morph)>>processEvent:using:
> > >>>>> MorphicEventDispatcher>>dispatchDefault:with:
> > >>>>> MorphicEventDispatcher>>dispatchEvent:with:
> > >>>>> MenuMorph(Morph)>>processEvent:using:
> > >>>>> MenuMorph(Morph)>>processEvent:
> > >>>>> MenuMorph>>handleFocusEvent:
> > >>>>> [] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.   
> > >>>>> ActiveEvent := anEvent.  result := focusHolder     han...]}
> > >>>>> [] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
> > >>>>> BlockContext>>on:do:
> > >>>>> PasteUpMorph>>becomeActiveDuring:
> > >>>>> HandMorph>>sendFocusEvent:to:clear:
> > >>>>> HandMorph>>sendEvent:focus:clear:
> > >>>>> HandMorph>>sendMouseEvent:
> > >>>>> HandMorph>>handleEvent:
> > >>>>> HandMorph>>processEvents
> > >>>>> [] in WorldState>>doOneCycleNowFor: {[:h |  ActiveHand := h.  h  
> > >>>>> processEvents.  ActiveHand := nil]}
> > >>>>> Array(SequenceableCollection)>>do:
> > >>>>> WorldState>>handsDo:
> > >>>>> WorldState>>doOneCycleNowFor:
> > >>>>> WorldState>>doOneCycleFor:
> > >>>>> PasteUpMorph>>doOneCycle
> > >>>>> [] in Project class>>spawnNewProcess {[[World doOneCycle.   
> > >>>>> Processor yield.  false] whileFalse.  nil]}
> > >>>>> [] in BlockContext>>newProcess {[self value.  Processor  
> > >>>>> terminateActive]}
> > >>>>>
> > >>>>>
> > >>>>> _______________________________________________
> > >>>>> Pharo-project mailing list
> > >>>>> [email protected]
> > >>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo- 
> > >>>>> project
> > >>>>>
> > >>>>
> > >>>>
> > >>>> _______________________________________________
> > >>>> Pharo-project mailing list
> > >>>> [email protected]
> > >>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >>>
> > >>>
> > >>> _______________________________________________
> > >>> Pharo-project mailing list
> > >>> [email protected]
> > >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >>>
> > >>
> > >>
> > >> _______________________________________________
> > >> Pharo-project mailing list
> > >> [email protected]
> > >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >
> > >
> > > _______________________________________________
> > > Pharo-project mailing list
> > > [email protected]
> > > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >
> > 
> > 
> > _______________________________________________
> > Pharo-project mailing list
> > [email protected]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> 
> 
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to