Nicolas Cellier uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-nice.182.mcz
==================== Summary ====================
Name: System-nice.182
Author: nice
Time: 29 November 2009, 10:34:37 am
UUID: bba11df9-123e-409e-9830-3bab1c9dd9fc
Ancestors: System-dtl.181
http://bugs.squeak.org/view.php?id=7205
cache category in MethodReference instVar
allows a 25% speedup in Monticello snapshotting, after source caching
=============== Diff against System-dtl.181 ===============
Item was changed:
Object subclass: #MethodReference
+ instanceVariableNames: 'classSymbol classIsMeta methodSymbol stringVersion category'
- instanceVariableNames: 'classSymbol classIsMeta methodSymbol stringVersion'
classVariableNames: ''
poolDictionaries: ''
category: 'System-Tools'!
!MethodReference commentStamp: 'tlk 5/9/2006 18:43' prior: 0!
A MethodReference is is a lightweight proxy for a CompiledMethod. Has methods for pointed to the CompileMethod's source statements, byte codes. Is heavily used my Tools.
Instance Variables
classIsMeta: Boolean class vs. instance
classSymbol: Symbol for method's class (without class keyword if meta)
methodSymbol: Symbol for method's selector
stringVersion: 'Class>>selector:' format
!
Item was added:
+ ----- Method: MethodReference>>category (in category 'queries') -----
+ category
+ ^ category ifNil: [category := self actualClass organization categoryOfElement: methodSymbol]!
Item was added:
+ ----- Method: MethodReference>>category: (in category 'setting') -----
+ category: aSymbol
+ category := aSymbol!
Nicolas Cellier uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-nice.182.mcz
==================== Summary ====================
Name: System-nice.182
Author: nice
Time: 29 November 2009, 10:34:37 am
UUID: bba11df9-123e-409e-9830-3bab1c9dd9fc
Ancestors: System-dtl.181
http://bugs.squeak.org/view.php?id=7205
cache category in MethodReference instVar
allows a 25% speedup in Monticello snapshotting, after source caching
=============== Diff against System-dtl.181 ===============
Item was changed:
Object subclass: #MethodReference
+ instanceVariableNames: 'classSymbol classIsMeta methodSymbol stringVersion category'
- instanceVariableNames: 'classSymbol classIsMeta methodSymbol stringVersion'
classVariableNames: ''
poolDictionaries: ''
category: 'System-Tools'!
!MethodReference commentStamp: 'tlk 5/9/2006 18:43' prior: 0!
A MethodReference is is a lightweight proxy for a CompiledMethod. Has methods for pointed to the CompileMethod's source statements, byte codes. Is heavily used my Tools.
Instance Variables
classIsMeta: Boolean class vs. instance
classSymbol: Symbol for method's class (without class keyword if meta)
methodSymbol: Symbol for method's selector
stringVersion: 'Class>>selector:' format
!
Item was added:
+ ----- Method: MethodReference>>category (in category 'queries') -----
+ category
+ ^ category ifNil: [category := self actualClass organization categoryOfElement: methodSymbol]!
Item was added:
+ ----- Method: MethodReference>>category: (in category 'setting') -----
+ category: aSymbol
+ category := aSymbol!
Nicolas Cellier uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-nice.182.mcz
==================== Summary ====================
Name: System-nice.182
Author: nice
Time: 29 November 2009, 10:34:37 am
UUID: bba11df9-123e-409e-9830-3bab1c9dd9fc
Ancestors: System-dtl.181
http://bugs.squeak.org/view.php?id=7205
cache category in MethodReference instVar
allows a 25% speedup in Monticello snapshotting, after source caching
=============== Diff against System-dtl.181 ===============
Item was changed:
Object subclass: #MethodReference
+ instanceVariableNames: 'classSymbol classIsMeta methodSymbol stringVersion category'
- instanceVariableNames: 'classSymbol classIsMeta methodSymbol stringVersion'
classVariableNames: ''
poolDictionaries: ''
category: 'System-Tools'!
!MethodReference commentStamp: 'tlk 5/9/2006 18:43' prior: 0!
A MethodReference is is a lightweight proxy for a CompiledMethod. Has methods for pointed to the CompileMethod's source statements, byte codes. Is heavily used my Tools.
Instance Variables
classIsMeta: Boolean class vs. instance
classSymbol: Symbol for method's class (without class keyword if meta)
methodSymbol: Symbol for method's selector
stringVersion: 'Class>>selector:' format
!
Item was added:
+ ----- Method: MethodReference>>category (in category 'queries') -----
+ category
+ ^ category ifNil: [category := self actualClass organization categoryOfElement: methodSymbol]!
Item was added:
+ ----- Method: MethodReference>>category: (in category 'setting') -----
+ category: aSymbol
+ category := aSymbol!
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.307.mcz
==================== Summary ====================
Name: Kernel-nice.307
Author: nice
Time: 29 November 2009, 9:53:32 am
UUID: 32793c3c-4bcd-4323-9c9a-277b9345634e
Ancestors: Kernel-nice.306
http://bugs.squeak.org/view.php?id=7218
ClassOrganizer categories breaks if given an empty array
because categoryStops gets set to #() when it should be at least #(0)
=============== Diff against Kernel-nice.306 ===============
Item was changed:
----- Method: Categorizer>>categories: (in category 'accessing') -----
+ categories: anArray
- categories: anArray
"Reorder my categories to be in order of the argument, anArray. If the
resulting organization does not include all elements, then give an error."
| newCategories newStops newElements catName list runningTotal |
+
+ anArray size < 2 ifTrue: [ ^ self ].
+
newCategories := Array new: anArray size.
newStops := Array new: anArray size.
newElements := Array new: 0.
runningTotal := 0.
1 to: anArray size do:
[:i |
catName := (anArray at: i) asSymbol.
list := self listAtCategoryNamed: catName.
newElements := newElements, list.
newCategories at: i put: catName.
newStops at: i put: (runningTotal := runningTotal + list size)].
elementArray do:
[:element | "check to be sure all elements are included"
(newElements includes: element)
ifFalse: [^self error: 'New categories must match old ones']].
"Everything is good, now update my three arrays."
categoryArray := newCategories.
categoryStops := newStops.
elementArray := newElements!
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.307.mcz
==================== Summary ====================
Name: Kernel-nice.307
Author: nice
Time: 29 November 2009, 9:53:32 am
UUID: 32793c3c-4bcd-4323-9c9a-277b9345634e
Ancestors: Kernel-nice.306
http://bugs.squeak.org/view.php?id=7218
ClassOrganizer categories breaks if given an empty array
because categoryStops gets set to #() when it should be at least #(0)
=============== Diff against Kernel-nice.306 ===============
Item was changed:
----- Method: Categorizer>>categories: (in category 'accessing') -----
+ categories: anArray
- categories: anArray
"Reorder my categories to be in order of the argument, anArray. If the
resulting organization does not include all elements, then give an error."
| newCategories newStops newElements catName list runningTotal |
+
+ anArray size < 2 ifTrue: [ ^ self ].
+
newCategories := Array new: anArray size.
newStops := Array new: anArray size.
newElements := Array new: 0.
runningTotal := 0.
1 to: anArray size do:
[:i |
catName := (anArray at: i) asSymbol.
list := self listAtCategoryNamed: catName.
newElements := newElements, list.
newCategories at: i put: catName.
newStops at: i put: (runningTotal := runningTotal + list size)].
elementArray do:
[:element | "check to be sure all elements are included"
(newElements includes: element)
ifFalse: [^self error: 'New categories must match old ones']].
"Everything is good, now update my three arrays."
categoryArray := newCategories.
categoryStops := newStops.
elementArray := newElements!
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.307.mcz
==================== Summary ====================
Name: Kernel-nice.307
Author: nice
Time: 29 November 2009, 9:53:32 am
UUID: 32793c3c-4bcd-4323-9c9a-277b9345634e
Ancestors: Kernel-nice.306
http://bugs.squeak.org/view.php?id=7218
ClassOrganizer categories breaks if given an empty array
because categoryStops gets set to #() when it should be at least #(0)
=============== Diff against Kernel-nice.306 ===============
Item was changed:
----- Method: Categorizer>>categories: (in category 'accessing') -----
+ categories: anArray
- categories: anArray
"Reorder my categories to be in order of the argument, anArray. If the
resulting organization does not include all elements, then give an error."
| newCategories newStops newElements catName list runningTotal |
+
+ anArray size < 2 ifTrue: [ ^ self ].
+
newCategories := Array new: anArray size.
newStops := Array new: anArray size.
newElements := Array new: 0.
runningTotal := 0.
1 to: anArray size do:
[:i |
catName := (anArray at: i) asSymbol.
list := self listAtCategoryNamed: catName.
newElements := newElements, list.
newCategories at: i put: catName.
newStops at: i put: (runningTotal := runningTotal + list size)].
elementArray do:
[:element | "check to be sure all elements are included"
(newElements includes: element)
ifFalse: [^self error: 'New categories must match old ones']].
"Everything is good, now update my three arrays."
categoryArray := newCategories.
categoryStops := newStops.
elementArray := newElements!