[Vm-dev] VM Maker: VMMaker.oscog-eem.2816.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Sep 24 22:32:13 UTC 2020


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

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

Name: VMMaker.oscog-eem.2816
Author: eem
Time: 24 September 2020, 3:31:59.370069 pm
UUID: 400c2a4a-f20c-49e2-83d4-af6cfbf28635
Ancestors: VMMaker.oscog-eem.2815

Spur: Bridging new and old space.

At snapshot time eden is empty, so bridge from pastSpace direct to oldSpace.  Hence eliminate enableNewSpaceObjectEnumerationFrom:.  Fixes an assert failure at snapshot enumerating the unnecessary bridge at the start of the empty eden.

=============== Diff against VMMaker.oscog-eem.2815 ===============

Item was removed:
- ----- Method: SpurMemoryManager>>enableNewSpaceObjectEnumerationFrom: (in category 'object enumeration-private') -----
- enableNewSpaceObjectEnumerationFrom: initialObject
- 	"We use bridges to stitch segments together to make it appear that the heap is one contiguous space.
- 	 Bridges at the end of oldSpace segments are maintained.  Bridges at the end of pastSpace and eden
- 	 are temporary, and are established here, depending on the current sizes of pastSpace end eden."
- 	<inline: #always>
- 	((self oop: initialObject isLessThan: scavenger eden start)
- 	 and: [scavenger eden start > pastSpaceStart]) ifTrue:
- 		[self initSegmentBridgeWithBytes: scavenger eden start - pastSpaceStart at: pastSpaceStart]!

Item was changed:
  ----- Method: SpurMemoryManager>>enableObjectEnumerationFrom: (in category 'object enumeration-private') -----
  enableObjectEnumerationFrom: initialObject
  	"We use bridges to stitch segments together to make it appear that the heap is one contiguous space.
  	 Bridges at the end of oldSpace segments are maintained.  Bridges at the end of pastSpace and eden
  	 are temporary, and are established here, depending on the current sizes of pastSpace end eden."
  	<inline: false>
  	(self oop: initialObject isLessThan: oldSpaceStart) ifTrue:
+ 		[freeStart > scavenger eden start
+ 			ifTrue:
+ 				[self initSegmentBridgeWithBytes: oldSpaceStart - freeStart at: freeStart.
+ 				 self initSegmentBridgeWithBytes: scavenger eden start - pastSpaceStart at: pastSpaceStart]
+ 			ifFalse:"If eden is empty (e.g. at snapshot time), skip it entirely"
+ 				[self initSegmentBridgeWithBytes: newSpaceStart - pastSpaceStart at: pastSpaceStart]]!
- 		[self initSegmentBridgeWithBytes: oldSpaceStart - freeStart at: freeStart.
- 		 self enableNewSpaceObjectEnumerationFrom: initialObject]!



More information about the Vm-dev mailing list