Frank Shearar uploaded a new version of Environments to project The Trunk:
http://source.squeak.org/trunk/Environments-fbs.32.mcz
==================== Summary ====================
Name: Environments-fbs.32
Author: fbs
Time: 30 July 2013, 1:23:32.538 pm
UUID: 66b0a9de-4e9e-479b-a248-27363dae4c7d
Ancestors: Environments-fbs.31
Copy SystemDictionary >> #poolUsers to Environment so that `Smalltalk poolUsers` works once more.
=============== Diff against Environments-fbs.31 ===============
Item was added:
+ ----- Method: Environment>>poolUsers (in category 'as yet unclassified') -----
+ poolUsers
+ "Answer a dictionary of pool name -> classes that refer to it.
+ Also includes any globally know dictionaries (such as
+ Smalltalk, Undeclared etc) which although not strictly
+ accurate is potentially useful information"
+ "Smalltalk poolUsers"
+ | poolUsers |
+ poolUsers := Dictionary new.
+ self keys
+ do: [:k | "yes, using isKindOf: is tacky but for reflective code like
+ this it is very useful. If you really object you can:-
+ a) go boil your head.
+ b) provide a better answer.
+ your choice."
+ | pool refs |
+ (((pool := self at: k) isKindOf: Dictionary)
+ or: [pool isKindOf: SharedPool class])
+ ifTrue: [refs := (self systemNavigation allClasses
+ select: [:c | c sharedPools identityIncludes: pool]
+ thenCollect: [:c | c name]) asOrderedCollection.
+ refs
+ add: (self systemNavigation
+ allCallsOn: (self associationAt: k)).
+ poolUsers at: k put: refs]].
+ ^ poolUsers!
Frank Shearar uploaded a new version of Environments to project The Trunk:
http://source.squeak.org/trunk/Environments-fbs.32.mcz
==================== Summary ====================
Name: Environments-fbs.32
Author: fbs
Time: 30 July 2013, 1:23:32.538 pm
UUID: 66b0a9de-4e9e-479b-a248-27363dae4c7d
Ancestors: Environments-fbs.31
Copy SystemDictionary >> #poolUsers to Environment so that `Smalltalk poolUsers` works once more.
=============== Diff against Environments-fbs.31 ===============
Item was added:
+ ----- Method: Environment>>poolUsers (in category 'as yet unclassified') -----
+ poolUsers
+ "Answer a dictionary of pool name -> classes that refer to it.
+ Also includes any globally know dictionaries (such as
+ Smalltalk, Undeclared etc) which although not strictly
+ accurate is potentially useful information"
+ "Smalltalk poolUsers"
+ | poolUsers |
+ poolUsers := Dictionary new.
+ self keys
+ do: [:k | "yes, using isKindOf: is tacky but for reflective code like
+ this it is very useful. If you really object you can:-
+ a) go boil your head.
+ b) provide a better answer.
+ your choice."
+ | pool refs |
+ (((pool := self at: k) isKindOf: Dictionary)
+ or: [pool isKindOf: SharedPool class])
+ ifTrue: [refs := (self systemNavigation allClasses
+ select: [:c | c sharedPools identityIncludes: pool]
+ thenCollect: [:c | c name]) asOrderedCollection.
+ refs
+ add: (self systemNavigation
+ allCallsOn: (self associationAt: k)).
+ poolUsers at: k put: refs]].
+ ^ poolUsers!
Frank Shearar uploaded a new version of Environments to project The Trunk:
http://source.squeak.org/trunk/Environments-fbs.32.mcz
==================== Summary ====================
Name: Environments-fbs.32
Author: fbs
Time: 30 July 2013, 1:23:32.538 pm
UUID: 66b0a9de-4e9e-479b-a248-27363dae4c7d
Ancestors: Environments-fbs.31
Copy SystemDictionary >> #poolUsers to Environment so that `Smalltalk poolUsers` works once more.
=============== Diff against Environments-fbs.31 ===============
Item was added:
+ ----- Method: Environment>>poolUsers (in category 'as yet unclassified') -----
+ poolUsers
+ "Answer a dictionary of pool name -> classes that refer to it.
+ Also includes any globally know dictionaries (such as
+ Smalltalk, Undeclared etc) which although not strictly
+ accurate is potentially useful information"
+ "Smalltalk poolUsers"
+ | poolUsers |
+ poolUsers := Dictionary new.
+ self keys
+ do: [:k | "yes, using isKindOf: is tacky but for reflective code like
+ this it is very useful. If you really object you can:-
+ a) go boil your head.
+ b) provide a better answer.
+ your choice."
+ | pool refs |
+ (((pool := self at: k) isKindOf: Dictionary)
+ or: [pool isKindOf: SharedPool class])
+ ifTrue: [refs := (self systemNavigation allClasses
+ select: [:c | c sharedPools identityIncludes: pool]
+ thenCollect: [:c | c name]) asOrderedCollection.
+ refs
+ add: (self systemNavigation
+ allCallsOn: (self associationAt: k)).
+ poolUsers at: k put: refs]].
+ ^ poolUsers!
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.797.mcz
==================== Summary ====================
Name: Kernel-nice.797
Author: nice
Time: 28 July 2013, 4:48:53.354 pm
UUID: c2ee61a3-86aa-4a39-ae2a-93ac3e8c81c6
Ancestors: Kernel-fbs.796
Workaround to fix http://bugs.squeak.org/view.php?id=1554
A class variable defined in a superclass should take precedence over a global variable.
Note that current implementation will import the bindings of every superclass environment which is questionable.
Fix a doubled statement terminator in Month class>>readFrom:.
=============== Diff against Kernel-fbs.796 ===============
Item was changed:
----- Method: Class>>bindingOf:environment: (in category 'compiling') -----
bindingOf: varName environment: anEnvironment
"Answer the binding of some variable resolved in the scope of the receiver"
| aSymbol binding |
aSymbol := varName asSymbol.
"First look in classVar dictionary."
+ (self classThatDefinesClassVariable: aSymbol) ifNotNil:
+ [:x | ^x classPool bindingOf: aSymbol].
- binding := self classPool bindingOf: aSymbol.
- binding ifNotNil:[^binding].
"Next look in shared pools."
self sharedPools do:[:pool |
binding := pool bindingOf: aSymbol.
binding ifNotNil:[^binding].
].
"Next look in declared environment."
binding := anEnvironment bindingOf: aSymbol.
binding ifNotNil:[^binding].
"Finally look higher up the superclass chain and fail at the end."
superclass == nil
ifTrue: [^ nil]
ifFalse: [^ superclass bindingOf: aSymbol].
!
Item was changed:
----- Method: Month class>>readFrom: (in category 'squeak protocol') -----
readFrom: aStream
| m y |
aStream skipSeparators.
+ m := aStream upToAnyOf: CharacterSet separators.
- m := aStream upToAnyOf: CharacterSet separators..
aStream skipSeparators.
y := aStream upToEnd.
^ self
month: m
year: y asInteger
"Month readFrom: 'July 1998' readStream"!