Eliot Miranda uploaded a new version of TemporaryVariableScopeEditor to project The Trunk:
http://source.squeak.org/trunk/TemporaryVariableScopeEditor-eem.2.mcz
==================== Summary ====================
Name: TemporaryVariableScopeEditor-eem.2
Author: eem
Time: 5 May 2012, 1:30:55.001 pm
UUID: e6f191e7-a640-45ae-9402-96597be44653
Ancestors: TemporaryVariableScopeEditor-eem.1
Add editMethod: convenience. Recategorize class-side methods.
=============== Diff against TemporaryVariableScopeEditor-eem.1 ===============
Item was changed:
+ ----- Method: TempScopeEditor class>>edit (in category 'editing') -----
- ----- Method: TempScopeEditor class>>edit (in category 'as yet unclassified') -----
edit
"Trawl the system for methods containing misdeclared temps and correct these methods."
SystemNavigation default allSelect:
[:m| | scanner |
(m isQuick not
and: [(scanner := InstructionStream on: m) scanFor:
[:b| b = 143 and: [scanner followingByte >= 16]]]) ifTrue:
[(self new forMethod: m) edit].
false]!
Item was added:
+ ----- Method: TempScopeEditor class>>editMethod: (in category 'editing') -----
+ editMethod: aCompiledMethod
+ (self new forMethod: aCompiledMethod) edit!
Item was changed:
+ ----- Method: TempScopeEditor class>>editPackage: (in category 'editing') -----
- ----- Method: TempScopeEditor class>>editPackage: (in category 'as yet unclassified') -----
editPackage: packageInfoOrName
"Trawl the given package for methods containing misdeclared temps and correct these methods."
"self editPackage: #Cassowary"
SystemNavigation new
allMethodsSelect:
[:m| | scanner |
(m isQuick not
and: [(scanner := InstructionStream on: m) scanFor:
[:b| b = 143 and: [scanner followingByte >= 16]]]) ifTrue:
[(self new forMethod: m) edit].
false]
localToPackage: packageInfoOrName!
Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-yo.404.mcz
==================== Summary ====================
Name: Tools-yo.404
Author: yo
Time: 4 May 2012, 9:11:23.233 pm
UUID: bfc2fb69-8de6-461f-a5ab-67e55498cb63
Ancestors: Tools-bf.403
Guard the case when there is a reference to obsolete classes. One could imagine to have a pseudo package to show obsolete classes referenced from this package, but guarding againt an error is one step toward it anyway.
=============== Diff against Tools-bf.403 ===============
Item was changed:
----- Method: DependencyBrowser>>computePackageDependencies: (in category 'package deps') -----
computePackageDependencies: pkgName
"Compute the dependencies for the given package"
| pi |
classDeps := Dictionary new.
packageDeps := Dictionary new.
pkgName ifNil:[^self].
pi := PackageOrganizer default packageNamed: pkgName ifAbsent:[^self]. "unloaded"
pi classes do:[:pkgClass|
(classDeps at: (pkgClass superclass ifNil:[ProtoObject]) name
ifAbsentPut:[OrderedCollection new]) add:
(MethodReference class: pkgClass selector: #Definition)].
pi methods do:[:mref| | cm |
cm := mref compiledMethod.
1 to: cm numLiterals do:[:i| | lit |
((lit := cm literalAt: i) isVariableBinding and:[lit value isBehavior]) ifTrue:[
(classDeps at: lit value name ifAbsentPut:[OrderedCollection new])
add: (MethodReference class: cm methodClass selector: cm selector)]]].
classDeps keys do:[:className| | aClass pkg |
aClass := Smalltalk classNamed: className.
+ pkg := aClass ifNil: [nil] ifNotNil: [PackageOrganizer default packageOfClass: aClass ifNone:[nil]].
- pkg := PackageOrganizer default packageOfClass: aClass ifNone:[nil].
pkg ifNil:[
Transcript cr; show: 'WARNING: No package for ', className.
(classDeps removeKey: className) do:[:each| Transcript crtab; show: each].
] ifNotNil:[
(packageDeps at: pkg name ifAbsentPut:[OrderedCollection new]) add: className.
].
].
(packageDeps removeKey: pkgName ifAbsent:[#()]) do:[:each|
classDeps removeKey: each ifAbsent:[].
].!
Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-yo.404.mcz
==================== Summary ====================
Name: Tools-yo.404
Author: yo
Time: 4 May 2012, 9:11:23.233 pm
UUID: bfc2fb69-8de6-461f-a5ab-67e55498cb63
Ancestors: Tools-bf.403
Guard the case when there is a reference to obsolete classes. One could imagine to have a pseudo package to show obsolete classes referenced from this package, but guarding againt an error is one step toward it anyway.
=============== Diff against Tools-bf.403 ===============
Item was changed:
----- Method: DependencyBrowser>>computePackageDependencies: (in category 'package deps') -----
computePackageDependencies: pkgName
"Compute the dependencies for the given package"
| pi |
classDeps := Dictionary new.
packageDeps := Dictionary new.
pkgName ifNil:[^self].
pi := PackageOrganizer default packageNamed: pkgName ifAbsent:[^self]. "unloaded"
pi classes do:[:pkgClass|
(classDeps at: (pkgClass superclass ifNil:[ProtoObject]) name
ifAbsentPut:[OrderedCollection new]) add:
(MethodReference class: pkgClass selector: #Definition)].
pi methods do:[:mref| | cm |
cm := mref compiledMethod.
1 to: cm numLiterals do:[:i| | lit |
((lit := cm literalAt: i) isVariableBinding and:[lit value isBehavior]) ifTrue:[
(classDeps at: lit value name ifAbsentPut:[OrderedCollection new])
add: (MethodReference class: cm methodClass selector: cm selector)]]].
classDeps keys do:[:className| | aClass pkg |
aClass := Smalltalk classNamed: className.
+ pkg := aClass ifNil: [nil] ifNotNil: [PackageOrganizer default packageOfClass: aClass ifNone:[nil]].
- pkg := PackageOrganizer default packageOfClass: aClass ifNone:[nil].
pkg ifNil:[
Transcript cr; show: 'WARNING: No package for ', className.
(classDeps removeKey: className) do:[:each| Transcript crtab; show: each].
] ifNotNil:[
(packageDeps at: pkg name ifAbsentPut:[OrderedCollection new]) add: className.
].
].
(packageDeps removeKey: pkgName ifAbsent:[#()]) do:[:each|
classDeps removeKey: each ifAbsent:[].
].!
Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-yo.404.mcz
==================== Summary ====================
Name: Tools-yo.404
Author: yo
Time: 4 May 2012, 9:11:23.233 pm
UUID: bfc2fb69-8de6-461f-a5ab-67e55498cb63
Ancestors: Tools-bf.403
Guard the case when there is a reference to obsolete classes. One could imagine to have a pseudo package to show obsolete classes referenced from this package, but guarding againt an error is one step toward it anyway.
=============== Diff against Tools-bf.403 ===============
Item was changed:
----- Method: DependencyBrowser>>computePackageDependencies: (in category 'package deps') -----
computePackageDependencies: pkgName
"Compute the dependencies for the given package"
| pi |
classDeps := Dictionary new.
packageDeps := Dictionary new.
pkgName ifNil:[^self].
pi := PackageOrganizer default packageNamed: pkgName ifAbsent:[^self]. "unloaded"
pi classes do:[:pkgClass|
(classDeps at: (pkgClass superclass ifNil:[ProtoObject]) name
ifAbsentPut:[OrderedCollection new]) add:
(MethodReference class: pkgClass selector: #Definition)].
pi methods do:[:mref| | cm |
cm := mref compiledMethod.
1 to: cm numLiterals do:[:i| | lit |
((lit := cm literalAt: i) isVariableBinding and:[lit value isBehavior]) ifTrue:[
(classDeps at: lit value name ifAbsentPut:[OrderedCollection new])
add: (MethodReference class: cm methodClass selector: cm selector)]]].
classDeps keys do:[:className| | aClass pkg |
aClass := Smalltalk classNamed: className.
+ pkg := aClass ifNil: [nil] ifNotNil: [PackageOrganizer default packageOfClass: aClass ifNone:[nil]].
- pkg := PackageOrganizer default packageOfClass: aClass ifNone:[nil].
pkg ifNil:[
Transcript cr; show: 'WARNING: No package for ', className.
(classDeps removeKey: className) do:[:each| Transcript crtab; show: each].
] ifNotNil:[
(packageDeps at: pkg name ifAbsentPut:[OrderedCollection new]) add: className.
].
].
(packageDeps removeKey: pkgName ifAbsent:[#()]) do:[:each|
classDeps removeKey: each ifAbsent:[].
].!