[Pkg] Monticello Public: PackageInfo-Base-kph.55.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Sat Oct 4 02:15:18 UTC 2008


A new version of PackageInfo-Base was added to project Monticello Public:
http://www.squeaksource.com/mc/PackageInfo-Base-kph.55.mcz

==================== Summary ====================

Name: PackageInfo-Base-kph.55
Author: kph
Time: 4 October 2008, 3:15:14 am
UUID: dc9eabfb-4249-44c6-a298-d11845680828
Ancestors: PackageInfo-Base-kph.54

PackageInfo is now operating 60% faster

=============== Diff against PackageInfo-Base-kph.54 ===============

Item was changed:
  ----- Method: PackageInfo>>initialize (in category 'testing') -----
  initialize
  
+ 	methodCategoryPrefix := nil.
+ 	systemCategories := nil.
+ 	classesAndMetaClasses := nil.!
- 	methodCategoryPrefix := nil!

Item was changed:
  ----- Method: PackageInfo>>externalTraits (in category 'modifying') -----
  externalTraits
  	| behaviors |
  	
  	^ Array streamContents: [:s |
+ 		behaviors := self classesAndMetaClasses asSet.
- 		behaviors := self classesAndMetaClasses.
  		Smalltalk allTraits do: [:trait |
  			(behaviors includes: trait) ifFalse: [s nextPut: trait].
  			(behaviors includes: trait classSide) ifFalse: [s nextPut: trait classSide]]].			!

Item was changed:
  SystemOrganization addCategory: #'PackageInfo-Base'!

Item was changed:
  ----- Method: PackageInfo>>classesDo: (in category 'iterator versions') -----
  classesDo: aBlock
   
+ 	^ self classes do: aBlock!
- 	^ self loadedClasses do: aBlock!

Item was changed:
  ----- Method: PackageInfo>>systemCategories (in category 'listing') -----
  systemCategories
+ 
+ 	systemCategories ifNil: [ 
+ 		systemCategories := OrderedCollection new.
+ 		SystemOrganization categories do: [:cat | (self includesSystemCategory: cat) ifTrue: [ systemCategories add: cat ]].
+ 	].
+ 
+ 	^ systemCategories!
- 	^ SystemOrganization categories select: [:cat | self includesSystemCategory: cat]!

Item was changed:
  Object subclass: #PackageInfo
+ 	instanceVariableNames: 'packageName methodCategoryPrefix properties systemCategories classesAndMetaClasses'
- 	instanceVariableNames: 'packageName methodCategoryPrefix properties'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'PackageInfo-Base'!
  PackageInfo class
  	instanceVariableNames: 'default'!
  
  !PackageInfo commentStamp: 'kph 6/2/2008 23:37' prior: 0!
  Subclass this class to create new Packages.
   !

Item was changed:
  ----- Method: PackageInfo>>classes (in category 'listing') -----
  classes
   
+ 	^ self loadedClasses!
- 	^ self loadedClasses asOrderedCollection!

Item was changed:
  ----- Method: PackageInfo>>loadedClasses (in category 'iterator versions') -----
  loadedClasses
  
  	"returns a SortedCollection"
  	
  	^(self systemCategories gather:
  		[:cat |
  		(SystemOrganization listAtCategoryNamed: cat)
  			collect: [:className | Smalltalk at: className]])
+ 				sortBy: [:a :b | a className <= b className]
- 				asSortedCollection: [:a :b | a className <= b className]
  				
   !

Item was changed:
  ----- Method: PackageInfo>>coreClassesAndSelectorsDo: (in category 'listing') -----
  coreClassesAndSelectorsDo: aBlock
+ 	self classesAndMetaClasses do: [:class | self coreSelectorsForClass: class do: [ :sel | aBlock value: class value: sel ] ]!
- 	self classesAndMetaClassesDo: [:class | self coreSelectorsForClass: class do: [ :sel | aBlock value: class value: sel ] ]!

Item was changed:
  ----- Method: PackageOrganizer>>packageNamed:ifAbsent: (in category 'searching') -----
  packageNamed: aString ifAbsent: errorBlock
+ 	"initialize all cached values before using"
+ 	^ (packages at: aString ifAbsent: errorBlock) initialize!
- 	^ packages at: aString ifAbsent: errorBlock!

Item was changed:
  ----- Method: PackageInfo>>classesAndMetaClasses (in category 'listing') -----
  classesAndMetaClasses
+ 
+ 	^ classesAndMetaClasses ifNil: [ 
+ 
+ 		classesAndMetaClasses := self classes.
+ 	  	classesAndMetaClasses copy do: [:c | classesAndMetaClasses add: c classSide]
+ 	].!
- 	| baseClasses |
- 	baseClasses := self classes.
- 	^baseClasses , (baseClasses collect: [:c | c classSide])!

Item was changed:
  ----- Method: PackageInfo>>externalClasses (in category 'dependencies') -----
  externalClasses
  	| myClasses |
+ 	myClasses := self classesAndMetaClasses asSet.
- 	myClasses := self classesAndMetaClasses.
  	^ Array streamContents:
  		[:s |
  		ProtoObject withAllSubclassesDo:
  			[:class |
  			(myClasses includes: class) ifFalse: [s nextPut: class]]]!

Item was removed:
- ----- Method: PackageInfo class>>named: (in category 'packages access') -----
- named: aString
- 
- 	^ PackageOrganizer default packageNamed: aString ifAbsent: [(self newForName: aString) register]!

Item was removed:
- ----- Method: PackageInfo class>>classResponsibleForName: (in category 'class selection') -----
- classResponsibleForName: aString
-  
- 	PackageInfo allSubclassesDo: [ :class |
- 		(class isResponsibleForName: aString) ifTrue: [ ^ class ].	
- 	].
- 
- 	^ PackageInfo!

Item was removed:
- ----- Method: PackageServices class>>register: (in category 'as yet unclassified') -----
- register: aClass
- 	ServiceClasses add: aClass!

Item was removed:
- ----- Method: PackageOrganizer class>>forcefullyClearCache (in category 'as yet unclassified') -----
- forcefullyClearCache
- 	"Clear out the cache dangerously. Forgets any preambles that have been defined"
- 	default := nil!

Item was removed:
- ----- Method: PackageServices class>>unregister: (in category 'as yet unclassified') -----
- unregister: aClass
- 	ServiceClasses remove: aClass!

Item was removed:
- ----- Method: PackageInfoTests class>>testCategoryMatches (in category 'as yet unclassified') -----
- testCategoryMatches
- 
- ^ #('*-Tests-*' '*-Tests')
-  !

Item was removed:
- ----- Method: PackageList class>>open (in category 'as yet unclassified') -----
- open
- 	^ self new openInWorld!

Item was removed:
- ----- Method: PackageOrganizer class>>new (in category 'as yet unclassified') -----
- new
- 	^ self basicNew initialize!

Item was removed:
- ----- Method: PackageInfoImpl class>>testCategoryMatches (in category 'as yet unclassified') -----
- testCategoryMatches
- 
- ^ PackageInfoTests testCategoryMatches!

Item was removed:
- ----- Method: PackageInfo class>>registerPackageName: (in category 'packages access') -----
- registerPackageName: aString
- 	^ PackageOrganizer default registerPackageNamed: aString!

Item was removed:
- ----- Method: PackageInfo class>>newForName: (in category 'private') -----
- newForName: aString
- 	^ (self classResponsibleForName: aString) basicNew 
- 		packageName: aString; 
- 		initialize; 
- 		yourself!

Item was removed:
- ----- Method: PackageServices class>>initialize (in category 'as yet unclassified') -----
- initialize
- 	ServiceClasses := Set new!

Item was removed:
- ----- Method: PackageOrganizer class>>cleanUp (in category 'as yet unclassified') -----
- cleanUp
- 
- 	self default packageInfos do: [ :pi | 
- 
- 		| resp |
- 		
- 		resp := PackageInfo classResponsibleForName: pi packageName.
- 	
- 		(((resp = PackageInfo) not and: [ pi class ~= resp ]) or: [ pi class isObsolete ])
- 		ifTrue: [ 
- 			PackageOrganizer default unregisterPackageNamed: pi packageName.
- 		].	
- 	].!

Item was removed:
- ----- Method: PackageOrganizer class>>default (in category 'as yet unclassified') -----
- default
- 	^ default ifNil: [default := self new]!

Item was removed:
- ----- Method: PackageInfoKernel class>>isResponsibleForName: (in category 'as yet unclassified') -----
- isResponsibleForName: aString
- 
- ^ aString endsWith: '.kernel'!

Item was removed:
- ----- Method: PackageServices class>>allServices (in category 'as yet unclassified') -----
- allServices
- 	^ ServiceClasses gather: [:ea | ea services]!

Item was removed:
- ----- Method: PackageInfo class>>registerPackage: (in category 'as yet unclassified') -----
- registerPackage: aString
- 	"for compatibility with old fileOuts"
- 	^ Smalltalk at: #FilePackageManager ifPresent: [:p | p registerPackage: aString]!

Item was removed:
- ----- Method: PackageList class>>initialize (in category 'as yet unclassified') -----
- initialize
- 	TheWorldMenu registerOpenCommand: {'Package List'. {self. #open}}!

Item was removed:
- ----- Method: PackageInfoTests class>>isResponsibleForName: (in category 'as yet unclassified') -----
- isResponsibleForName: aString
- 
- ^ aString endsWith: '.test'!

Item was removed:
- ----- Method: PackageInfo>>classesAndMetaClassesDo: (in category 'listing') -----
- classesAndMetaClassesDo: aBlock
- 
- 	"classes and metaClasses orders the classes (sorted) first, 
- 	here the order is class followed by Metaclass"
- 
- 	self classesDo: [ :ea | 
- 		
- 		aBlock value: ea. 
- 		aBlock value: ea classSide 
- 	].
- !

Item was removed:
- ----- Method: PackageInfo class>>allPackages (in category 'packages access') -----
- allPackages
- 	^PackageOrganizer default packages!

Item was removed:
- ----- Method: PackageInfoImpl class>>isResponsibleForName: (in category 'as yet unclassified') -----
- isResponsibleForName: aString
- 
- ^ aString endsWith: '.impl'!

Item was removed:
- ----- Method: PackageInfo class>>isResponsibleForName: (in category 'class selection') -----
- isResponsibleForName: aString
- 
- ^ false!



More information about the Packages mailing list