[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:

==================== 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]
  							[map at: oldValue ifAbsent:
  								[(oldValue = oldHeap characterTable
+ 								  or: [oldValue = (oldHeap splObj: CompactClasses)])
- 								   or: [oldValue = (oldHeap splObj: CompactClasses)])
  									ifTrue: [newHeap nilObject]
  										[self assert: (oldHeap fetchClassOfNonImm: oldValue) = oldHeap classCharacter.
  										 newHeap characterObjectOf:
  											(oldHeap integerValueOf:
  												(oldHeap fetchPointer: CharacterValueIndex ofObject: oldValue))]]].
  			storePointerUnchecked: i
  			ofObject: newObj
  			withValue: newValue].
  	(self isOldObjABehavior: oldObj) ifTrue:
  			storePointerUnchecked: InstanceSpecificationIndex
  			ofObject: newObj
  			withValue: (self newClassFormatFor: oldObj)]!

More information about the Vm-dev mailing list