Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.136.mcz==================== Summary ====================
Name: Cog-eem.136
Author: eem
Time: 10 February 2014, 5:41:06.312 pm
UUID: f1174339-0c7d-4e75-bd4c-04cc5f1c75a3
Ancestors: Cog-eem.135
...and fix snafu. str:n:cmp: et al only wokr one way round.
=============== Diff against Cog-eem.135 ===============
Item was changed:
----- Method: SpurBootstrap>>mapOldBehavior:toNewBehavior: (in category 'bootstrap image') -----
mapOldBehavior: oldObj toNewBehavior: newObj
"Map the old format inst var's value to the new value.
In addition, for Character, make it immediate and remove its instance variable."
newHeap
storePointerUnchecked: InstanceSpecificationIndex
ofObject: newObj
withValue: (self newClassFormatFor: oldObj).
oldObj = oldHeap classCharacter ifTrue:
[InstanceSpecificationIndex + 1 to: (oldHeap numSlotsOf: oldObj) do:
[:i| | var field |
var := oldHeap fetchPointer: i ofObject: oldObj.
((oldHeap fetchClassOf: var) = oldHeap classArray
and: [(oldHeap numSlotsOf: var) = 1
and: [field := oldHeap fetchPointer: 0 ofObject: var.
(oldHeap fetchClassOf: field) = oldHeap classString
and: [(oldHeap lengthOf: field) = 5
+ and: [(oldHeap str: 'value' n: (oldHeap firstIndexableField: field) cmp: 5) = 0]]]]) ifTrue:
- and: [(oldHeap str: (oldHeap firstIndexableField: field) n: 'value' cmp: 5) = 0]]]]) ifTrue:
[newHeap
storePointerUnchecked: i
ofObject: newObj
withValue: newHeap nilObject.
^self]]]!