... at http://www.mirandabanda.org/files/Cog/VM/VM.r3018/.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'm interested in reports on other Windows versions that don't have XP's 2Gb user process address space limit.
Here's my test script:| them |them := OrderedCollection new.[[them addLast: (ByteArray new: 16000000).Transcript cr; print: (Smalltalk vmParameterAt: 3) / (1024*1024.0) maxDecimalPlaces: 1; flush] repeat]on: OutOfMemorydo: [:ex| 2 to: them size by: 2 do: [:i| them at: i put: nil. Smalltalk garbageCollect]].Transcript cr; print: (Smalltalk vmParameterAt: 3) / (1024*1024.0) maxDecimalPlaces: 1; flush.them := nil.Smalltalk garbageCollect.Transcript cr; print: (Smalltalk vmParameterAt: 3) / (1024*1024.0) maxDecimalPlaces: 1; flushAnd the README is:CogVM binaries as per VMMaker.oscog-eem.779/r3018.Rewrite memory allocation on linux for Spur. Arrange that the heap can growabove 2Gb without any large initial alloc.Rewrite platforms/unix/vm/sqUnixSpurMemory.c to stand alone. Use it in placeof sqMacMemory.c with Spur on Mac OS. Now Spur can grow the heap to 2.9Gb onboth linux (CentOS 5.3) and Mac OS X (10.6.8).Rewrite Spur memory allocation on win32 similarly to unix. Can now allocateup to 1.8Gb on Windows XP (which has a 2Gb address space limit). Add a flagto indicate if the win32 exe is running as a console app and don't write tothe in-window console if so.Fix some sign issues with free space tallying to allow Spur to shrink memoryand answer via primitiveVMParameter heap sizes above 2Gb.Add longPrintInstancesOf:/longPrintInstancesWithClassIndex: for debugging.Suggest reading a suitable README when the linux VM fails to spawn the heartbeatthread.Add parameter 54 on Spur to answer totalFreeOldSpace.--
best,Eliot