<div dir="ltr">... at <a href="http://www.mirandabanda.org/files/Cog/VM/VM.r3018/">http://www.mirandabanda.org/files/Cog/VM/VM.r3018/</a>.<div><br></div><div>The main difference here is fixes to memory segment allocation on Spur.  Linux and Mac OS can now grow the heap to 2.9Gb or there abouts, and Win XP can grow to 1.8Gb.  I&#39;m interested in reports on other Windows versions that don&#39;t have XP&#39;s 2Gb user process address space limit.<br clear="all">
<div><br></div><div>Here&#39;s my test script:</div><div><div>| them |<br></div><div>them := OrderedCollection new.</div><div>[[them addLast: (ByteArray new: 16000000).</div><div> Transcript cr; print: (Smalltalk vmParameterAt: 3) / (1024*1024.0) maxDecimalPlaces: 1; flush] repeat]</div>
<div><span class="" style="white-space:pre">        </span>on: OutOfMemory</div><div><span class="" style="white-space:pre">        </span>do: [:ex| 2 to: them size by: 2 do: [:i| them at: i put: nil. Smalltalk garbageCollect]].</div><div>
Transcript cr; print: (Smalltalk vmParameterAt: 3) / (1024*1024.0) maxDecimalPlaces: 1; flush.</div><div>them := nil.</div><div>Smalltalk garbageCollect.</div><div>Transcript cr; print: (Smalltalk vmParameterAt: 3) / (1024*1024.0) maxDecimalPlaces: 1; flush</div>
</div><div><br></div><div>And the README is:</div><div><div>CogVM binaries as per VMMaker.oscog-eem.779/r3018.<br></div><div><br></div><div>Rewrite memory allocation on linux for Spur.  Arrange that the heap can grow</div>
<div>above 2Gb without any large initial alloc.</div><div><br></div><div>Rewrite platforms/unix/vm/sqUnixSpurMemory.c to stand alone.  Use it in place</div><div>of sqMacMemory.c with Spur on Mac OS.  Now Spur can grow the heap to 2.9Gb on</div>
<div>both linux (CentOS 5.3) and Mac OS X (10.6.8).</div><div><br></div><div>Rewrite Spur memory allocation on win32 similarly to unix.  Can now allocate</div><div>up to 1.8Gb on Windows XP (which has a 2Gb address space limit).  Add a flag</div>
<div>to indicate if the win32 exe is running as a console app and don&#39;t write to</div><div>the in-window console if so.</div><div><br></div><div>Fix some sign issues with free space tallying to allow Spur to shrink memory</div>
<div>and answer via primitiveVMParameter heap sizes above 2Gb.</div><div><br></div><div>Add longPrintInstancesOf:/longPrintInstancesWithClassIndex: for debugging.</div><div><br></div><div>Suggest reading a suitable README when the linux VM fails to spawn the heartbeat</div>
<div>thread.</div><div><br></div><div>Add parameter 54 on Spur to answer totalFreeOldSpace.</div></div><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>