On 6 June 2011 22:54, Carlo <[email protected]> wrote: > Sorry ignore...didn't read your comment... > > On 06 Jun 2011, at 9:51 PM, Carlo wrote: > > How about: > > (((value class isObsolete not) and: [value isTrait not]) and: [ key == value > name ]) > > not sure if it covers all the same scenarios but in my image it gave the same > answers as before the change: > Smalltalk globals flushClassNameCache. > Smalltalk globals classNames size. 1940 > Smalltalk globals nonClassNames size. 96 > > Cheers > Carlo > > On 06 Jun 2011, at 9:28 PM, Stéphane Ducasse wrote: > > fillCaches > "Fill cachedClassNames and cachedNonClassNames. Return an array with > the calculated values." > > | classNames nonClassNames | > classNames := OrderedCollection new: self size. > nonClassNames := OrderedCollection new. > self keysAndValuesDo: [ :key :value | > "The key == value name test below addresses two separate > issues: > 1) Obsolete classes, where key = #Foo and value name = > 'AnObsoleteFoo' > 2) Aliases, i.e., Smalltalk at: #OtherName put: aClass" > ((value isKindOf: (self class environment at: #Class)) and: [ > key == value name ]) > ifTrue: [ classNames add: key ] > ifFalse: [ nonClassNames add: key ] ]. > "The expression (self class environment at: #Class) deserves > some explanation. > For bootstrapping we need to have a different Class when > executing value isKindOf: Class : > In such expression Class represents a kind of fixed point: the > class of the class of the system. > When bootstrapping we want the class Class of the current > kernel defined in the current namespace. > Since the current namespace should contains the class that > describes itself as well as a new Class class. > we are done :). - StephaneDucasse" > > classNames sort. > cachedNonClassNames := nonClassNames sort. > cachedClassNames := classNames. > ^{ classNames. nonClassNames } > why not just use #isBehavior?
> Stef > > France - ukraine still 0-0 :) > > > > > > > > -- Best regards, Igor Stasenko AKA sig.
