...at http://www.mirandabanda.org/files/Cog/VM/VM.r3205/.

Happy New Year!

CogVM source as per VMMaker.oscog-eem.1008/r3205

Send cannotReturn for sideways return attemps when there's an unwind-protect.
Old code would erroneously answer unwind-protect even if home could'nt be found.

e.g. This should raise cannot return:

| b |
b := [ ^ 42 ].
[ [b value] ensure: [1] ] fork.
Processor yield

just as this does:

| b |
b := [ ^ 42 ].
[ b value ] fork.
Processor yield

Speed up non-local return processing by using the fact that 98% of the time
returns are within the same page.�� The search for the home context following
finding an unwind is unnecessary iff the home is married and on the same page.

Refactor commonReturn to eiminate CoInterpreter's version, moving the
divergence into maybeReturnToMachineCodeFrame.

Ensure search for home through the block's closure uses followField:ofObject:.

(related) Revisit the Sista bug fix for followed contexts during scavenging in
VMMaker.oscog-eem.913 of 24 October 2014.�� Split isWidowedContext: into a more
careful version, isWidowedContextDuringGC: for use only during scavenging.

Win32:
Nuke obsolete RCS vrsion info

Spur:
Fix argument count slips in three primitives.
Check for sufficient memory in two-way become.

All:
Fix checking of boolean arg in primitiveArrayBecomeOneWayCopyHash.

Make primitiveSlotAt[Put] cope with non-pointer objects.

Change the pixel-touch-pixel prim to allow LPI arguments for the color values

Update the ScratchPlugin bilinear scaling prim to include the correct alpha channel value for non-transparent output pixels.

No longer build or upload the Newspeak V3 VMs, now superseded by Spur.

Use the gcc/clang built-ins for CAS and atomic increment if available.

--
best,
Eliot