VM Maker: Cog-eem.400.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: Cog-eem.400.mcz

commits-2
 
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]]!