[Vm-dev] VM Maker: Cog-eem.400.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Feb 11 19:25:30 UTC 2020


Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.400.mcz

==================== Summary ====================

Name: Cog-eem.400
Author: eem
Time: 11 February 2020, 11:25:28.523494 am
UUID: 43ed320e-f5e3-4d45-b136-f448de9c20de
Ancestors: Cog-eem.399

Ecstacy:
M	SpurMtoNBitImageConverter>>alterSystem
D	SpurMtoNBitImageConverter>>flipWordSize
A	SpurMtoNBitImageConverter>>nilWordSize

Have the converter properly void SmalltalkImage classPool at: #WordSize.
We want to void it rather than nil it so that we know that we have some signal of being in a newly converted image. It takes an insignificant amoputn of tme to compute WordSize the first timne, and having this hook could be useful for applications that introduce word-size dependencies the image converters are ignorant of.

=============== Diff against Cog-eem.399 ===============

Item was changed:
  ----- Method: SpurMtoNBitImageConverter>>alterSystem (in category 'bootstrap image') -----
  alterSystem
  	self ensureSmallFloatInClassTable.
+ 	self nilWordSize!
- 	self flipWordSize!

Item was removed:
- ----- Method: SpurMtoNBitImageConverter>>flipWordSize (in category 'bootstrap image') -----
- flipWordSize
- 	| wordSizeSym |
- 	wordSizeSym := self findSymbol: #WordSize.
- 	targetHeap allOldSpaceObjectsDo:
- 		[:o|
- 		((targetHeap rawNumSlotsOf: o) > ValueIndex
- 		and: [(targetHeap isFixedSizePointerFormat: (targetHeap formatOf: o))
- 		and: [(targetHeap fetchPointer: KeyIndex ofObject: o) = wordSizeSym
- 		and: [(targetHeap fetchPointer: ValueIndex ofObject: o) = (targetHeap integerObjectOf: sourceHeap bytesPerOop)]]]) ifTrue:
- 			[targetHeap
- 				storePointerUnchecked: ValueIndex
- 				ofObject: o
- 				withValue: (targetHeap integerObjectOf: targetHeap bytesPerOop)]]!

Item was added:
+ ----- Method: SpurMtoNBitImageConverter>>nilWordSize (in category 'bootstrap image') -----
+ nilWordSize
+ 	| wordSizeSym |
+ 	wordSizeSym := self findSymbol: #WordSize.
+ 	targetHeap allOldSpaceObjectsDo:
+ 		[:o|
+ 		((targetHeap rawNumSlotsOf: o) > ValueIndex
+ 		and: [(targetHeap isFixedSizePointerFormat: (targetHeap formatOf: o))
+ 		and: [(targetHeap fetchPointer: KeyIndex ofObject: o) = wordSizeSym
+ 		and: [(targetHeap fetchPointer: ValueIndex ofObject: o) = (targetHeap integerObjectOf: sourceHeap bytesPerOop)]]]) ifTrue:
+ 			[targetHeap storePointer: ValueIndex ofObject: o withValue: targetHeap nilObject]]!



More information about the Vm-dev mailing list