new Cog VMs available

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

new Cog VMs available

Eliot Miranda-2

CogVM binaries as per VMMaker.oscog-eem.272/r2701.

Fix unknownBytecode processing to leave pc at unknown bytecode.
Fix case of process switch to an interior frame.
Fix some assert function signatures in the stack vm.
Use symbols for types instead of strings in stack page funcs.

Fix the become issue where methods that are identical are failing
the code test because their penultimate literals are different objects.
Add a flag "cmUsesPenultimateLit" to jitted methods, stealing bits
from stackCheckOffset (which was way larger than needed).
Shrink stackCheckOffset to 12 bits (still an order of magnitude larger
than needed) and add an error check on assigning it.
Also add a check for max method size (2^16-1 bytes) and refuse to
jit a method that generates too much code.
When comparing code, use the cmUsesPenultimateLit flag to decide
if comparison includes penultimate lit or not.

This is mildly insane, but the VM really doesn't know about the
penultimate literal and it shouldn't depend on knowing it can be
ignored.  Note that the CoInterpreter knows about the last literal;
it uses this in supersends.  With this hack, Pharo's condenseSources
works.
--
best,
Eliot