[squeak-dev] The Trunk: Kernel-nice.274.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Oct 19 23:44:29 UTC 2009


Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.274.mcz

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

Name: Kernel-nice.274
Author: nice
Time: 19 October 2009, 11:43:28 am
UUID: e0d13094-6ba6-9a48-8499-d9506f2b1d29
Ancestors: Kernel-nice.273

use #fasterKeys

My guess is that ClassDescription >> #organization and #classVariablesString should be traitified, so I did not publish my changes.
Though I got no warning, no indication of trait, no nothing...
I wonder how to work in a traitified image without trait aware tools...

=============== Diff against Kernel-nice.273 ===============

Item was changed:
  ----- Method: ClassBuilder class>>cleanupClassHierarchyFor: (in category 'cleanup obsolete classes') -----
  cleanupClassHierarchyFor: aClassDescription
  	
  	| myName mySuperclass |
  	mySuperclass := aClassDescription superclass.
  	(self isReallyObsolete: aClassDescription) ifTrue: [
  		
  		"Remove class >>>from SystemDictionary if it is obsolete"
  		myName := aClassDescription name asString.
+ 		Smalltalk fasterKeys do: [:each | 
- 		Smalltalk keys asArray do: [:each | 
  			(each asString = myName and: [(Smalltalk at: each) == aClassDescription])
  				ifTrue: [Smalltalk removeKey: each]].
  
  		"Make class officially obsolete if it is not"
  		(aClassDescription name asString beginsWith: 'AnObsolete')
  			ifFalse: [aClassDescription obsolete].
  
  		aClassDescription isObsolete 
  			ifFalse: [self error: 'Something wrong!!'].
  
  		"Add class to obsoleteSubclasses of its superclass"
  		mySuperclass
  			ifNil: [self error: 'Obsolete subclasses of nil cannot be stored'].
  		(mySuperclass obsoleteSubclasses includes: aClassDescription)
  			ifFalse: [mySuperclass addObsoleteSubclass: aClassDescription].
  	] ifFalse:[
  		"check if superclass has aClassDescription in its obsolete subclasses"
  		mySuperclass ifNil:[mySuperclass := Class]. "nil subclasses"
  		mySuperclass removeObsoleteSubclass: aClassDescription.
  	].
  	"And remove its obsolete subclasses if not actual superclass"
  	aClassDescription obsoleteSubclasses do:[:obs|
  		obs superclass == aClassDescription ifFalse:[
  			aClassDescription removeObsoleteSubclass: obs]].
  !

Item was changed:
  ----- Method: Object>>removeActionsSatisfying: (in category 'events-removing') -----
  removeActionsSatisfying: aBlock
  
+ 	self actionMap fasterKeys do:
- 	self actionMap keys do:
  		[:eachEventSelector |
  			self
     				removeActionsSatisfying: aBlock
  				forEvent: eachEventSelector
  		]!

Item was changed:
  ----- Method: Class>>fileOutPool:onFileStream: (in category 'fileIn/Out') -----
  fileOutPool: aPool onFileStream: aFileStream 
  	| aPoolName aValue |
  	(aPool  isKindOf: SharedPool class) ifTrue:[^self notify: 'we do not fileout SharedPool type shared pools for now'].
  	aPoolName := self environment keyAtIdentityValue: aPool.
  	Transcript cr; show: aPoolName.
  	aFileStream nextPutAll: 'Transcript show: ''' , aPoolName , '''; cr!!'; cr.
  	aFileStream nextPutAll: 'Smalltalk at: #' , aPoolName , ' put: Dictionary new!!'; cr.
+ 	aPool fasterKeys sort do: [ :aKey |
- 	aPool keys asSortedCollection do: [ :aKey |
  		aValue := aPool at: aKey.
  		aFileStream nextPutAll: aPoolName , ' at: #''' , aKey asString , '''', ' put:  '.
  		(aValue isKindOf: Number)
  			ifTrue: [aValue printOn: aFileStream]
  			ifFalse: [aFileStream nextPutAll: '('.
  					aValue printOn: aFileStream.
  					aFileStream nextPutAll: ')'].
  		aFileStream nextPutAll: '!!'; cr].
  	aFileStream cr!

Item was changed:
  ----- Method: Class>>declare: (in category 'initialize-release') -----
  declare: varString 
  	"Declare class variables common to all instances. Answer whether 
  	recompilation is advisable."
  
  	| newVars conflicts |
  	newVars := 
  		(Scanner new scanFieldNames: varString)
  			collect: [:x | x asSymbol].
  	newVars do:
  		[:var | var first canBeGlobalVarInitial
  			ifFalse: [self error: var, ' class variable name should be capitalized; proceed to include anyway.']].
  	conflicts := false.
  	classPool == nil 
+ 		ifFalse: [(classPool fasterKeys reject: [:x | newVars includes: x]) do: 
- 		ifFalse: [(classPool keys reject: [:x | newVars includes: x]) do: 
  					[:var | self removeClassVarName: var]].
  	(newVars reject: [:var | self classPool includesKey: var])
  		do: [:var | "adding"
  			"check if new vars defined elsewhere"
  			(self bindingOf: var) notNil
  				ifTrue: 
  					[self error: var , ' is defined elsewhere'.
  					conflicts := true]].
  	newVars size > 0
  		ifTrue: 
  			[classPool := self classPool.
  			"in case it was nil"
  			newVars do: [:var | classPool declare: var from: Undeclared]].
  	^conflicts!




More information about the Squeak-dev mailing list