Eliot Miranda uploaded a new version of System to project The Trunk: http://source.squeak.org/trunk/System-eem.1422.mcz
==================== Summary ====================
Name: System-eem.1422 Author: eem Time: 11 August 2023, 5:28:50.658058 pm UUID: e09b0643-71d9-4b48-9b54-5d898b1381a2 Ancestors: System-mt.1421
Up the lowSpaceThreshold by the size of newSpace, if on Spur. This allows the low-space mechanism to function in current trunk images.
=============== Diff against System-mt.1421 ===============
Item was changed: ----- Method: SmalltalkImage>>lowSpaceThreshold (in category 'memory space') ----- lowSpaceThreshold "Answer the low space threshold. When the amount of free memory (after garbage collection) falls below this limit, the system is in serious danger of completely exhausting memory and crashing. This limit should be made high enough to allow the user open a debugger to diagnose a problem or to save the image. In a stack-based VM such as Cog contexts for activations in + the stack zone will have to be created as the debugger opens, requiring additional headroom. + In a scavenging VM, as in the Spur memory manager/object representation, the scavenger + may attempt to tenure all of new space, so the threshold must be larger than the size of eden." - the stack zone will have to be created as the debugger opens, requiring additional headroom."
+ | newSpaceBytes slotsForDebugger slotsForContextsOnStackPages | + "newSpace = pastSpace+futureSpace+eden= 1/7 + 1/7 + 5/7. Ungar's generation scavenger + paper uses these ratios; so does Spur. At any one time eden and only one of the survivor spaces + is in use, so using the total newSpace size is 1/6 larger than the maximum tenurable memory." + newSpaceBytes := (Smalltalk vmParameterAt: 44 ifAbsent: 0) // 5 * 7. - | slotsForDebugger slotsForContextsOnStackPages | slotsForDebugger := 65536. "Arbitrary guess" slotsForContextsOnStackPages := (self vmParameterAt: 42 ifAbsent: nil) ifNil: [0] ifNotNil: [:numStackPages| | headerSize numActivationsPerPage maxContextSize | numActivationsPerPage := 40. "Design goal of the Cog & Stack VMs" headerSize := 8 / self wordSize. "64-bits for Spur" maxContextSize := thisContext class instSize + CompiledMethod fullFrameSize + headerSize. numStackPages * numActivationsPerPage * maxContextSize]. + ^slotsForDebugger + slotsForContextsOnStackPages * self wordSize max: newSpaceBytes! - ^slotsForDebugger + slotsForContextsOnStackPages * self wordSize!
packages@lists.squeakfoundation.org