Levente Uzonyi uploaded a new version of System to project The Trunk: http://source.squeak.org/trunk/System-ul.423.mcz
==================== Summary ====================
Name: System-ul.423 Author: ul Time: 28 February 2011, 12:05:19.782 pm UUID: 5334bfde-1537-fa4a-8491-4219f54632ce Ancestors: System-ul.422
- moved all class and trait access logic from SmalltalkImage to SystemDictionary - simplified a few methods in SystemDictionary
=============== Diff against System-ul.422 ===============
Item was changed: ----- Method: SmalltalkImage>>allClasses (in category 'classes and traits') ----- allClasses "Return all the class defined in the system"
+ ^globals allClasses! - ^Array streamContents:[:s| self allClassesDo:[:aClass| s nextPut: aClass]].!
Item was changed: ----- Method: SmalltalkImage>>allClassesAndTraits (in category 'classes and traits') ----- allClassesAndTraits "Return all the classes and traits defined in the system"
+ ^globals allClassesAndTraits! - ^Array streamContents:[:s| self allClassesAndTraitsDo:[:each| s nextPut: each]].!
Item was changed: ----- Method: SmalltalkImage>>allClassesAndTraitsDo: (in category 'classes and traits') ----- allClassesAndTraitsDo: aBlock "Evaluate the argument, aBlock, for each class and trait in the system."
+ globals allClassesAndTraitsDo: aBlock! - self allClassesDo: aBlock. - self allTraitsDo: aBlock. - !
Item was changed: ----- Method: SmalltalkImage>>allClassesDo: (in category 'classes and traits') ----- allClassesDo: aBlock "Evaluate the argument, aBlock, for each class in the system."
+ globals allClassesDo: aBlock! - ^globals allClassesDo: aBlock!
Item was changed: ----- Method: SmalltalkImage>>allTraits (in category 'classes and traits') ----- allTraits "Return all traits defined in the system"
+ ^globals allTraits! - ^Array streamContents:[:s| self allTraitsDo:[:aTrait| s nextPut: aTrait]].!
Item was changed: ----- Method: SmalltalkImage>>allTraitsDo: (in category 'classes and traits') ----- allTraitsDo: aBlock "Evaluate the argument, aBlock, for each trait in the system."
+ globals allTraitsDo: aBlock! - ^globals allTraitsDo: aBlock!
Item was changed: ----- Method: SmalltalkImage>>classNames (in category 'classes and traits') ----- classNames "Answer a collection of all class names in the system."
+ ^globals classNames! - ^self allClasses collect:[:aClass| aClass name].!
Item was changed: ----- Method: SmalltalkImage>>traitNames (in category 'classes and traits') ----- traitNames "Answer a SortedCollection of all traits (not including class-traits) names."
+ ^globals traitNames! - ^self allTraits collect:[:aTrait| aTrait name].!
Item was changed: ----- Method: SystemDictionary>>allClassesAndTraits (in category 'classes and traits') ----- allClassesAndTraits "Return all the classes and traits defined in the Smalltalk SystemDictionary"
+ ^Array streamContents: [ :stream | + self allClassesAndTraitsDo: [ :each | stream nextPut: each ] ]! - ^ self classNames , self traitNames collect: [:each | self at: each]!
Item was changed: ----- Method: SystemDictionary>>allClassesAndTraitsDo: (in category 'classes and traits') ----- allClassesAndTraitsDo: aBlock + + self + allClassesDo: aBlock; + allTraitsDo: aBlock! - ^self allClassesAndTraits do: aBlock!
Item was changed: ----- Method: SystemDictionary>>allClassesDo: (in category 'classes and traits') ----- allClassesDo: aBlock "Evaluate the argument, aBlock, for each class in the system."
+ self classNames do: [ :name | + aBlock value: (self at: name) ]! - (self classNames collect: [:name | self at: name]) do: aBlock!
Item was changed: ----- Method: SystemDictionary>>allTraitsDo: (in category 'classes and traits') ----- allTraitsDo: aBlock "Evaluate the argument, aBlock, for each trait in the system."
+ self traitNames do: [ :name | + aBlock value: (self at: name) ]! - (self traitNames collect: [:name | self at: name]) do: aBlock!
Item was changed: ----- Method: SystemDictionary>>classAndTraitNames (in category 'classes and traits') ----- classAndTraitNames "Answer a sorted collection of all class and trait (not including class-traits) names. The performance of this algorithm is O(n) if the classNames are already cached, otherwise O(n*log(n)) where n is self size."
| classNames traitNames result temporary | classNames := self classNames. + traitNames := self traitNames ifEmpty: [ ^classNames ]. - traitNames := self traitNames. - traitNames ifEmpty: [^classNames]. temporary := Array new: classNames size + traitNames size. result := temporary shallowCopy. temporary replaceFrom: 1 to: classNames size with: classNames startingAt: 1; replaceFrom: classNames size + 1 to: temporary size with: traitNames startingAt: 1; mergeFirst: 1 middle: classNames size last: temporary size into: result by: nil. ^result!
packages@lists.squeakfoundation.org