[Vm-dev] New Cog VMs available

Chris Muller asqueaker at gmail.com
Fri Jan 30 03:53:36 UTC 2015

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 at 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

More information about the Vm-dev mailing list