Nicolas Cellier uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-nice.183.mcz
==================== Summary ====================
Name: Compiler-nice.183
Author: nice
Time: 29 December 2010, 3:54:57.862 pm
UUID: 228c16fb-1ba3-407c-84fd-d5722ca2be2f
Ancestors: Compiler-ul.182
Cosmetic: rename two shadowing temps in order to avoid warnings in Transcript
=============== Diff against Compiler-ul.182 ===============
Item was changed:
----- Method: BytecodeEncoder>>blockExtentsToTempsMap (in category 'temps') -----
blockExtentsToTempsMap
"Answer a Dictionary of blockExtent to temp locations for the current method.
This is used by the debugger to locate temp vars in contexts. A temp map
entry is a pair of the temp's name and its index, where an index is either an
integer for a normal temp or a pair of the index of the indirect temp vector
containing the temp and the index of the temp in its indirect temp vector."
| blockExtentsToTempsMap |
blockExtentsToLocals ifNil:
[^nil].
blockExtentsToTempsMap := Dictionary new.
blockExtentsToLocals keysAndValuesDo:
[:blockExtent :locals|
blockExtentsToTempsMap
at: blockExtent
put: (Array streamContents:
+ [:aStream|
- [:stream|
locals withIndexDo:
[:local :index|
local isIndirectTempVector
ifTrue: [local remoteTemps withIndexDo:
+ [:remoteLocal :innerIndex| aStream nextPut: { remoteLocal key. { index. innerIndex } }]]
+ ifFalse: [aStream nextPut: { local key. index }]]])].
- [:remoteLocal :innerIndex| stream nextPut: { remoteLocal key. { index. innerIndex } }]]
- ifFalse: [stream nextPut: { local key. index }]]])].
^blockExtentsToTempsMap!
Item was changed:
----- Method: VariableNode>>variableGetterBlockIn: (in category 'tiles') -----
variableGetterBlockIn: aContext
+ | temps tempIndex ivars |
- | temps index ivars |
(self type = 4 and: [self key isVariableBinding]) ifTrue: [
^[self key value]
].
aContext ifNil: [^nil].
self isSelfPseudoVariable ifTrue: [^[aContext receiver]].
self type = 1 ifTrue: [
ivars := aContext receiver class allInstVarNames.
+ tempIndex := ivars indexOf: self name ifAbsent: [^nil].
+ ^[aContext receiver instVarAt: tempIndex]
- index := ivars indexOf: self name ifAbsent: [^nil].
- ^[aContext receiver instVarAt: index]
].
self type = 2 ifTrue: [
temps := aContext tempNames.
+ tempIndex := temps indexOf: self name ifAbsent: [^nil].
+ ^[aContext tempAt: tempIndex]
- index := temps indexOf: self name ifAbsent: [^nil].
- ^[aContext tempAt: index]
].
^nil
!
Nicolas Cellier uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-nice.183.mcz
==================== Summary ====================
Name: Compiler-nice.183
Author: nice
Time: 29 December 2010, 3:54:57.862 pm
UUID: 228c16fb-1ba3-407c-84fd-d5722ca2be2f
Ancestors: Compiler-ul.182
Cosmetic: rename two shadowing temps in order to avoid warnings in Transcript
=============== Diff against Compiler-ul.182 ===============
Item was changed:
----- Method: BytecodeEncoder>>blockExtentsToTempsMap (in category 'temps') -----
blockExtentsToTempsMap
"Answer a Dictionary of blockExtent to temp locations for the current method.
This is used by the debugger to locate temp vars in contexts. A temp map
entry is a pair of the temp's name and its index, where an index is either an
integer for a normal temp or a pair of the index of the indirect temp vector
containing the temp and the index of the temp in its indirect temp vector."
| blockExtentsToTempsMap |
blockExtentsToLocals ifNil:
[^nil].
blockExtentsToTempsMap := Dictionary new.
blockExtentsToLocals keysAndValuesDo:
[:blockExtent :locals|
blockExtentsToTempsMap
at: blockExtent
put: (Array streamContents:
+ [:aStream|
- [:stream|
locals withIndexDo:
[:local :index|
local isIndirectTempVector
ifTrue: [local remoteTemps withIndexDo:
+ [:remoteLocal :innerIndex| aStream nextPut: { remoteLocal key. { index. innerIndex } }]]
+ ifFalse: [aStream nextPut: { local key. index }]]])].
- [:remoteLocal :innerIndex| stream nextPut: { remoteLocal key. { index. innerIndex } }]]
- ifFalse: [stream nextPut: { local key. index }]]])].
^blockExtentsToTempsMap!
Item was changed:
----- Method: VariableNode>>variableGetterBlockIn: (in category 'tiles') -----
variableGetterBlockIn: aContext
+ | temps tempIndex ivars |
- | temps index ivars |
(self type = 4 and: [self key isVariableBinding]) ifTrue: [
^[self key value]
].
aContext ifNil: [^nil].
self isSelfPseudoVariable ifTrue: [^[aContext receiver]].
self type = 1 ifTrue: [
ivars := aContext receiver class allInstVarNames.
+ tempIndex := ivars indexOf: self name ifAbsent: [^nil].
+ ^[aContext receiver instVarAt: tempIndex]
- index := ivars indexOf: self name ifAbsent: [^nil].
- ^[aContext receiver instVarAt: index]
].
self type = 2 ifTrue: [
temps := aContext tempNames.
+ tempIndex := temps indexOf: self name ifAbsent: [^nil].
+ ^[aContext tempAt: tempIndex]
- index := temps indexOf: self name ifAbsent: [^nil].
- ^[aContext tempAt: index]
].
^nil
!
Nicolas Cellier uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-nice.183.mcz
==================== Summary ====================
Name: Compiler-nice.183
Author: nice
Time: 29 December 2010, 3:54:57.862 pm
UUID: 228c16fb-1ba3-407c-84fd-d5722ca2be2f
Ancestors: Compiler-ul.182
Cosmetic: rename two shadowing temps in order to avoid warnings in Transcript
=============== Diff against Compiler-ul.182 ===============
Item was changed:
----- Method: BytecodeEncoder>>blockExtentsToTempsMap (in category 'temps') -----
blockExtentsToTempsMap
"Answer a Dictionary of blockExtent to temp locations for the current method.
This is used by the debugger to locate temp vars in contexts. A temp map
entry is a pair of the temp's name and its index, where an index is either an
integer for a normal temp or a pair of the index of the indirect temp vector
containing the temp and the index of the temp in its indirect temp vector."
| blockExtentsToTempsMap |
blockExtentsToLocals ifNil:
[^nil].
blockExtentsToTempsMap := Dictionary new.
blockExtentsToLocals keysAndValuesDo:
[:blockExtent :locals|
blockExtentsToTempsMap
at: blockExtent
put: (Array streamContents:
+ [:aStream|
- [:stream|
locals withIndexDo:
[:local :index|
local isIndirectTempVector
ifTrue: [local remoteTemps withIndexDo:
+ [:remoteLocal :innerIndex| aStream nextPut: { remoteLocal key. { index. innerIndex } }]]
+ ifFalse: [aStream nextPut: { local key. index }]]])].
- [:remoteLocal :innerIndex| stream nextPut: { remoteLocal key. { index. innerIndex } }]]
- ifFalse: [stream nextPut: { local key. index }]]])].
^blockExtentsToTempsMap!
Item was changed:
----- Method: VariableNode>>variableGetterBlockIn: (in category 'tiles') -----
variableGetterBlockIn: aContext
+ | temps tempIndex ivars |
- | temps index ivars |
(self type = 4 and: [self key isVariableBinding]) ifTrue: [
^[self key value]
].
aContext ifNil: [^nil].
self isSelfPseudoVariable ifTrue: [^[aContext receiver]].
self type = 1 ifTrue: [
ivars := aContext receiver class allInstVarNames.
+ tempIndex := ivars indexOf: self name ifAbsent: [^nil].
+ ^[aContext receiver instVarAt: tempIndex]
- index := ivars indexOf: self name ifAbsent: [^nil].
- ^[aContext receiver instVarAt: index]
].
self type = 2 ifTrue: [
temps := aContext tempNames.
+ tempIndex := temps indexOf: self name ifAbsent: [^nil].
+ ^[aContext tempAt: tempIndex]
- index := temps indexOf: self name ifAbsent: [^nil].
- ^[aContext tempAt: index]
].
^nil
!
Nicolas Cellier uploaded a new version of CollectionsTests to project The Trunk:
http://source.squeak.org/trunk/CollectionsTests-nice.178.mcz
==================== Summary ====================
Name: CollectionsTests-nice.178
Author: nice
Time: 29 December 2010, 3:51:12.599 pm
UUID: d84311fa-3a9c-4fa6-b0b4-10927f21f3f1
Ancestors: CollectionsTests-ul.177
Test integer equality with = rather than ==
=============== Diff against CollectionsTests-ul.177 ===============
Item was changed:
----- Method: IntervalTest>>testPermutationsDo (in category 'tests') -----
testPermutationsDo
| i oc |
i := (1.234 to: 4.234).
oc := OrderedCollection new.
i permutationsDo: [:e | oc add: e].
+ self assert: (oc size = i size factorial).
- self assert: (oc size == i size factorial).
^ oc!
Nicolas Cellier uploaded a new version of CollectionsTests to project The Trunk:
http://source.squeak.org/trunk/CollectionsTests-nice.178.mcz
==================== Summary ====================
Name: CollectionsTests-nice.178
Author: nice
Time: 29 December 2010, 3:51:12.599 pm
UUID: d84311fa-3a9c-4fa6-b0b4-10927f21f3f1
Ancestors: CollectionsTests-ul.177
Test integer equality with = rather than ==
=============== Diff against CollectionsTests-ul.177 ===============
Item was changed:
----- Method: IntervalTest>>testPermutationsDo (in category 'tests') -----
testPermutationsDo
| i oc |
i := (1.234 to: 4.234).
oc := OrderedCollection new.
i permutationsDo: [:e | oc add: e].
+ self assert: (oc size = i size factorial).
- self assert: (oc size == i size factorial).
^ oc!
Nicolas Cellier uploaded a new version of CollectionsTests to project The Trunk:
http://source.squeak.org/trunk/CollectionsTests-nice.178.mcz
==================== Summary ====================
Name: CollectionsTests-nice.178
Author: nice
Time: 29 December 2010, 3:51:12.599 pm
UUID: d84311fa-3a9c-4fa6-b0b4-10927f21f3f1
Ancestors: CollectionsTests-ul.177
Test integer equality with = rather than ==
=============== Diff against CollectionsTests-ul.177 ===============
Item was changed:
----- Method: IntervalTest>>testPermutationsDo (in category 'tests') -----
testPermutationsDo
| i oc |
i := (1.234 to: 4.234).
oc := OrderedCollection new.
i permutationsDo: [:e | oc add: e].
+ self assert: (oc size = i size factorial).
- self assert: (oc size == i size factorial).
^ oc!
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.536.mcz
==================== Summary ====================
Name: Kernel-nice.536
Author: nice
Time: 29 December 2010, 1:46:35.807 pm
UUID: 4a558059-d69d-48b6-a118-0930c12d98b9
Ancestors: Kernel-nice.535
redo last change after an update
=============== Diff against Kernel-nice.535 ===============
Item was changed:
----- Method: ClassDescription>>isClassSide (in category 'accessing parallel hierarchy') -----
isClassSide
+ ^self isMeta!
- ^self == self classSide!
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.536.mcz
==================== Summary ====================
Name: Kernel-nice.536
Author: nice
Time: 29 December 2010, 1:46:35.807 pm
UUID: 4a558059-d69d-48b6-a118-0930c12d98b9
Ancestors: Kernel-nice.535
redo last change after an update
=============== Diff against Kernel-nice.535 ===============
Item was changed:
----- Method: ClassDescription>>isClassSide (in category 'accessing parallel hierarchy') -----
isClassSide
+ ^self isMeta!
- ^self == self classSide!
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.536.mcz
==================== Summary ====================
Name: Kernel-nice.536
Author: nice
Time: 29 December 2010, 1:46:35.807 pm
UUID: 4a558059-d69d-48b6-a118-0930c12d98b9
Ancestors: Kernel-nice.535
redo last change after an update
=============== Diff against Kernel-nice.535 ===============
Item was changed:
----- Method: ClassDescription>>isClassSide (in category 'accessing parallel hierarchy') -----
isClassSide
+ ^self isMeta!
- ^self == self classSide!
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.535.mcz
==================== Summary ====================
Name: Kernel-nice.535
Author: nice
Time: 29 December 2010, 1:23:53.998 pm
UUID: 779b35c6-c256-407f-96f0-17420be3d5e6
Ancestors: Kernel-nice.534
revert last change because MC load order will create an infinite loop.
=============== Diff against Kernel-nice.534 ===============
Item was changed:
----- Method: ClassDescription>>isClassSide (in category 'accessing parallel hierarchy') -----
isClassSide
+ ^self == self classSide!
- ^self isMeta!