Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1715.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1715 Author: eem Time: 8 March 2016, 3:10:49.368185 pm UUID: 3e6d062f-668d-43fa-b068-402d2b862a2a Ancestors: VMMaker.oscog-EstebanLorenzano.1714
Ensure purgeDuplicateClassTableEntriesFor: will not destroy class pun entries.
=============== Diff against VMMaker.oscog-EstebanLorenzano.1714 ===============
Item was changed: ----- Method: SpurMemoryManager>>purgeDuplicateClassTableEntriesFor: (in category 'class table') ----- purgeDuplicateClassTableEntriesFor: aClass + "Given that either marking or allInstances has ensured that + all instances of aClass have the class's hash as their class + index, ensure aClass is in the table only at its hash (or a pun)." - "Given that either marking or allnstances has ensured that - all instances of aClass have the class's hash as their class - index, ensure aClass is in the table only at its hash." | expectedIndex | expectedIndex := self rawHashBitsOf: aClass. self classTableEntriesDo: [:entry :index| + (entry = aClass + and: [index ~= expectedIndex + and: [index > self lastClassIndexPun]]) ifTrue: - (entry = aClass and: [index ~= expectedIndex]) ifTrue: [self classAtIndex: index put: nilObj. index < classTableIndex ifTrue: [classTableIndex := index]]]. "classTableIndex must never index the first page, which is reserved for classes known to the VM." self assert: classTableIndex >= (1 << self classTableMajorIndexShift)!
vm-dev@lists.squeakfoundation.org