[Vm-dev] VM Maker: Cog-eem.130.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Jan 30 01:15:57 UTC 2014
Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.130.mcz
==================== Summary ====================
Name: Cog-eem.130
Author: eem
Time: 29 January 2014, 5:15:39.096 pm
UUID: db35ce95-1612-471e-9ec9-4eb6bb5e0d01
Ancestors: Cog-eem.129
Redefine Behavior>>shouldNotBeRedefined in the Spur
bootstrap to not refer to the compactClassesArray.
Fix typo.
=============== Diff against Cog-eem.129 ===============
Item was added:
+ ----- Method: SpurBootstrap class>>BehaviorPROTOTYPEshouldNotBeRedefined (in category 'method prototypes') -----
+ BehaviorPROTOTYPEshouldNotBeRedefined
+ "Answer if the receiver should not be redefined.
+ The assumption is that classes in Smalltalk specialObjects and
+ instance-specific Behaviors should not be redefined"
+
+ ^(Smalltalk specialObjectsArray
+ identityIndexOf: self
+ ifAbsent: [(self isKindOf: self) ifTrue: [1] ifFalse: [0]]) ~= 0!
Item was changed:
----- Method: SpurBootstrap>>fillInPointerObject:from: (in category 'bootstrap image') -----
fillInPointerObject: newObj from: oldObj
"Fill-in a newObj with appropriately mapped contents from oldObj.
Filter-out the character table and the compact classes array.
Map character objects to immediate characters."
0 to: (oldHeap lastPointerOf: oldObj) / oldHeap wordSize - 1 do:
[:i| | oldValue newValue |
oldValue := oldHeap fetchPointer: i ofObject: oldObj.
newValue := (oldHeap isIntegerObject: oldValue)
ifTrue: [oldValue]
ifFalse:
[map at: oldValue ifAbsent:
[(oldValue = oldHeap characterTable
+ or: [oldValue = (oldHeap splObj: CompactClasses)])
-
- or: [oldValue = (oldHeap splObj: CompactClasses)])
ifTrue: [newHeap nilObject]
ifFalse:
[self assert: (oldHeap fetchClassOfNonImm: oldValue) = oldHeap classCharacter.
newHeap characterObjectOf:
(oldHeap integerValueOf:
(oldHeap fetchPointer: CharacterValueIndex ofObject: oldValue))]]].
newHeap
storePointerUnchecked: i
ofObject: newObj
withValue: newValue].
(self isOldObjABehavior: oldObj) ifTrue:
[newHeap
storePointerUnchecked: InstanceSpecificationIndex
ofObject: newObj
withValue: (self newClassFormatFor: oldObj)]!
More information about the Vm-dev
mailing list