[squeak-dev] The Trunk: Kernel-nice.278.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Oct 20 22:28:18 UTC 2009
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.278.mcz
==================== Summary ====================
Name: Kernel-nice.278
Author: nice
Time: 21 October 2009, 12:26:28 am
UUID: 86933c27-4f26-4bf0-a9b9-a2a5afbbbaac
Ancestors: Kernel-nice.277
Use #keys rather than #fasterKeys
Note that pattern (x keys asArray sort) could as well be written (x keys sort) now that keys returns an Array...
This #asArray is here solely for cross-dialect/fork compatibility.
=============== Diff against Kernel-nice.277 ===============
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 keys do: [:each |
- Smalltalk fasterKeys 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 keys do:
- self actionMap fasterKeys 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 keys asArray sort do: [ :aKey |
- aPool fasterKeys sort 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 keys reject: [:x | newVars includes: x]) do:
- ifFalse: [(classPool fasterKeys 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!
Item was changed:
----- Method: ClassDescription>>classVariablesString (in category 'printing') -----
classVariablesString
"Answer a string of my class variable names separated by spaces."
^String streamContents: [ :stream |
+ self classPool keys asArray sort
- self classPool fasterKeys sort
do: [ :each | stream nextPutAll: each ]
separatedBy: [ stream space ] ]!
More information about the Squeak-dev
mailing list
|