at http://www.mirandabanda.org/files/Cog/VM/VM.r3236/
CogVM binaries as per VMMaker.oscog-eem.1029/r3236
Fix stupid, stupid bug in copying vm profile samples between buffers when the circular buffer index has wrapped.
Fix monumental blunder in jitted store-check code. The saved registers mask needs to be the *or* of the value reg and the caller-saved registers, not the *and*!!
Make the pin primitives Spur-only.
Never inline mapStackPages, for debugging.
Spur: Reduce the max num literals in the alternate header format to 15, and steal the bit for the Sista optimized method flag.
Make postBecomeAction's stack sweep only occur in Spur (fix regression). Refactor so that the scan is not inlined. Don't assume newMethod is non-immediate in post-become actions.
Fix stack adjust slip in primitiveSmallFloatTimesTwoPower
Make ensureBehaviorHash: fail for uninitialized behaviours and hence fix the Behavior basicNew basicNew hang.
Optionalize some api methods the Spur Cogit doesn't use.
Rename and correct ensureSemaphoreForwardedThroughContext: to ensureSemaphoreUnforwardedThroughContext:, its intended function.
Make shouldRemapObj: filter-out objects already in newSpace since mapStackPages, via mapInterpreterOops, can visit objects twice in a scavenge, GC, compact sequence.
Make sure the caller (& saved) context(s) in base frames stack page are followed post-become in followForwardingPointersInStackZone:.
Fix bad bug introduced in become changes in VMMaker.oscog-eem.841 through 844. The class table contains puns, e.g. using Array and WeakArray. These class index puns must not mislead the allInstances primitive into concluding that the class in question is at multiple indices and wrongly purge it.
Fix slip in primitivePin. Also be lenient w.r.t. unpinning married contexts. Move the check down into StackInterpreter's version. This allows e.g. self allObjectsDo: [:o| o unpin]
Bow to the inevitable and add a manual override for primitive accessor depth. Use it in at: & at:put:. If manual override is not used then the automatically computed depth is too deep because of context access.
Newspeak: Integrate Ryan's newer absent receiver sends, which first apeared in VMMaker.oscog-eem.919, abandoned because of Glue issues now resolved. Includes nice refactoring of absent send argument marshalling into its own routine.
LargeIntegersPlugin: Remove/fix assumption of 32-bit digit length in normalization routines.
Congratulations Eliot! This is a major milestone for Spur's stability and robustness. With this release, I am comfortable to move the rest of my production to Spur. This is so great!
On Thu, Jan 29, 2015 at 7:26 PM, Eliot Miranda eliot.miranda@gmail.com wrote:
at http://www.mirandabanda.org/files/Cog/VM/VM.r3236/
CogVM binaries as per VMMaker.oscog-eem.1029/r3236
Fix stupid, stupid bug in copying vm profile samples between buffers when the circular buffer index has wrapped.
Fix monumental blunder in jitted store-check code. The saved registers mask needs to be the *or* of the value reg and the caller-saved registers, not the *and*!!
Make the pin primitives Spur-only.
Never inline mapStackPages, for debugging.
Spur: Reduce the max num literals in the alternate header format to 15, and steal the bit for the Sista optimized method flag.
Make postBecomeAction's stack sweep only occur in Spur (fix regression). Refactor so that the scan is not inlined. Don't assume newMethod is non-immediate in post-become actions.
Fix stack adjust slip in primitiveSmallFloatTimesTwoPower
Make ensureBehaviorHash: fail for uninitialized behaviours and hence fix the Behavior basicNew basicNew hang.
Optionalize some api methods the Spur Cogit doesn't use.
Rename and correct ensureSemaphoreForwardedThroughContext: to ensureSemaphoreUnforwardedThroughContext:, its intended function.
Make shouldRemapObj: filter-out objects already in newSpace since mapStackPages, via mapInterpreterOops, can visit objects twice in a scavenge, GC, compact sequence.
Make sure the caller (& saved) context(s) in base frames stack page are followed post-become in followForwardingPointersInStackZone:.
Fix bad bug introduced in become changes in VMMaker.oscog-eem.841 through 844. The class table contains puns, e.g. using Array and WeakArray. These class index puns must not mislead the allInstances primitive into concluding that the class in question is at multiple indices and wrongly purge it.
Fix slip in primitivePin. Also be lenient w.r.t. unpinning married contexts. Move the check down into StackInterpreter's version. This allows e.g. self allObjectsDo: [:o| o unpin]
Bow to the inevitable and add a manual override for primitive accessor depth. Use it in at: & at:put:. If manual override is not used then the automatically computed depth is too deep because of context access.
Newspeak: Integrate Ryan's newer absent receiver sends, which first apeared in VMMaker.oscog-eem.919, abandoned because of Glue issues now resolved. Includes nice refactoring of absent send argument marshalling into its own routine.
LargeIntegersPlugin: Remove/fix assumption of 32-bit digit length in normalization routines.
-- best, Eliot
ARMv6 stack/v3 and stack/spur VMs updated accordingly.
Doug
On Jan 29, 2015, at 17:26, Eliot Miranda eliot.miranda@gmail.com wrote:
at http://www.mirandabanda.org/files/Cog/VM/VM.r3236/ http://www.mirandabanda.org/files/Cog/VM/VM.r3236/
CogVM binaries as per VMMaker.oscog-eem.1029/r3236
Fix stupid, stupid bug in copying vm profile samples between buffers when the circular buffer index has wrapped.
Fix monumental blunder in jitted store-check code. The saved registers mask needs to be the *or* of the value reg and the caller-saved registers, not the *and*!!
Make the pin primitives Spur-only.
Never inline mapStackPages, for debugging.
Spur: Reduce the max num literals in the alternate header format to 15, and steal the bit for the Sista optimized method flag.
Make postBecomeAction's stack sweep only occur in Spur (fix regression). Refactor so that the scan is not inlined. Don't assume newMethod is non-immediate in post-become actions.
Fix stack adjust slip in primitiveSmallFloatTimesTwoPower
Make ensureBehaviorHash: fail for uninitialized behaviours and hence fix the Behavior basicNew basicNew hang.
Optionalize some api methods the Spur Cogit doesn't use.
Rename and correct ensureSemaphoreForwardedThroughContext: to ensureSemaphoreUnforwardedThroughContext:, its intended function.
Make shouldRemapObj: filter-out objects already in newSpace since mapStackPages, via mapInterpreterOops, can visit objects twice in a scavenge, GC, compact sequence.
Make sure the caller (& saved) context(s) in base frames stack page are followed post-become in followForwardingPointersInStackZone:.
Fix bad bug introduced in become changes in VMMaker.oscog-eem.841 through 844. The class table contains puns, e.g. using Array and WeakArray. These class index puns must not mislead the allInstances primitive into concluding that the class in question is at multiple indices and wrongly purge it.
Fix slip in primitivePin. Also be lenient w.r.t. unpinning married contexts. Move the check down into StackInterpreter's version. This allows e.g. self allObjectsDo: [:o| o unpin]
Bow to the inevitable and add a manual override for primitive accessor depth. Use it in at: & at:put:. If manual override is not used then the automatically computed depth is too deep because of context access.
Newspeak: Integrate Ryan's newer absent receiver sends, which first apeared in VMMaker.oscog-eem.919, abandoned because of Glue issues now resolved. Includes nice refactoring of absent send argument marshalling into its own routine.
LargeIntegersPlugin: Remove/fix assumption of 32-bit digit length in normalization routines.
-- best, Eliot
On 02-02-2015, at 9:24 AM, Douglas McPherson djm1329@san.rr.com wrote:
ARMv6 stack/v3 and stack/spur VMs updated accordingly.
We’ll soon be adding ARMv7 quadcore Pi support - http://www.raspberrypi.org/raspberry-pi-2-on-sale/
I’ve been using one for some time now and it is certainly nicely faster. The multiple cores make quite a difference to overall system performance even if Squeak can’t directly take advantage. The memory interface seems faster too.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: FD: Failsafe Disarmed
---- tim Rowledge tim@rowledge.org wrote:
On 02-02-2015, at 9:24 AM, Douglas McPherson djm1329@san.rr.com wrote:
ARMv6 stack/v3 and stack/spur VMs updated accordingly.
We’ll soon be adding ARMv7 quadcore Pi support - http://www.raspberrypi.org/raspberry-pi-2-on-sale/
I’ve been using one for some time now and it is certainly nicely faster. The multiple cores make quite a difference to overall system performance even if Squeak can’t directly take advantage. The memory interface seems faster too.
I was going to ask you about this as I saw the RPi 2 announcement today. I figured you probably already had one :)
I haven’t been building the ARMv7 VMs recently since there is something broken in the ARM fast BitBlt enhancements for ARMv7, which I haven’t had time to look into. Have you been able to make any improvements to that? (There’s also some potential issues noted by Ken Dickey regarding atomic operations).
Doug
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: FD: Failsafe Disarmed
On 02-02-2015, at 12:02 PM, Douglas McPherson djm1329@san.rr.com wrote:
---- tim Rowledge tim@rowledge.org wrote:
On 02-02-2015, at 9:24 AM, Douglas McPherson djm1329@san.rr.com wrote:
ARMv6 stack/v3 and stack/spur VMs updated accordingly.
We’ll soon be adding ARMv7 quadcore Pi support - http://www.raspberrypi.org/raspberry-pi-2-on-sale/
I’ve been using one for some time now and it is certainly nicely faster. The multiple cores make quite a difference to overall system performance even if Squeak can’t directly take advantage. The memory interface seems faster too.
I was going to ask you about this as I saw the RPi 2 announcement today. I figured you probably already had one :)
VM building seems much faster if you add -j4 to the make line in the .mvm script. It’s quite impressive to see 99% cpu utilisation on a quadcore
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim "Bother" said Pooh, as the IRS kicked his door in.
On 04-02-2015, at 5:28 AM, Craig Latta craig@netjam.org wrote:
It’s quite impressive to see 99% cpu utilisation on a quadcore
I'm looking forward to this. :)
`time ./mvm` says 4.5 mins to compile a stackvm with the usual optimisation settings. About half is the single threaded config stuff. The debug build takes less than 3 min, but the optimisation is -O0.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim ..... REALITY.SYS Corrupted - Unable to recover Universe
vm-dev@lists.squeakfoundation.org