Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2244.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2244 Author: eem Time: 21 June 2017, 10:52:20.520862 am UUID: 2cb680ae-4bf6-40dd-9130-d766a3c3f1e5 Ancestors: VMMaker.oscog-eem.2243
Spur: Fix regression in VMMaker.oscog-eem.2237. sufficientSpaceAfterGC: must compute heapSizePostGC using totalOldSpaceCapacity instead of the old broken segment-insensitive endOfmemory - nilObj, otherwise as soon as a segment is added its quite possible that there will be a full GC after each scavenge.
=============== Diff against VMMaker.oscog-eem.2243 ===============
Item was changed: ----- Method: SpurMemoryManager>>sufficientSpaceAfterGC: (in category 'gc - scavenging') ----- sufficientSpaceAfterGC: numBytes "This is ObjectMemory's funky entry-point into its incremental GC, which is a stop-the-world a young generation reclaimer. In Spur we run the scavenger. Answer if space is not low."
| heapSizePostGC | self assert: numBytes = 0. self scavengingGCTenuringIf: TenureByAge. + heapSizePostGC := segmentManager totalOldSpaceCapacity - totalFreeOldSpace. - heapSizePostGC := endOfMemory - nilObj - totalFreeOldSpace. (heapSizePostGC - heapSizeAtPreviousGC) asFloat / heapSizeAtPreviousGC >= heapGrowthToSizeGCRatio ifTrue: [self fullGC]. [totalFreeOldSpace < growHeadroom and: [(self growOldSpaceByAtLeast: 0) notNil]] whileTrue: [totalFreeOldSpace >= growHeadroom ifTrue: [^true]]. lowSpaceThreshold > totalFreeOldSpace ifTrue: "space is low" [lowSpaceThreshold := 0. "avoid signalling low space twice" ^false]. ^true!
vm-dev@lists.squeakfoundation.org