Status of M0 roadmap task

Christoph Otto christoph at
Thu Apr 7 15:17:29 UTC 2011

Hi all,

This is a status report on my progress on the M0 specification and prototype. 
  dukeleto, atrodo and I have been working on the spec in 
docs/pdds/draft/pdd32_m0.pod in the "m0-spec" branch on github and I've 
started prototyping it in dynops in dukeleto's "lorito" branch as a way to 
shake out bugs and holes and to get some kind of executable code.  The 
executable code lives in t/dynoplibs/m0proto.t and is defined in 

The spec is largely complete but still has a few significant holes that would 
block an implementation.  The op set and basic layout of the interpreter seem 
to be workable.  FFI looks good (apart from callbacks) thanks to plobsing's 
feedback and the binary bytecode format and its text-based rendering look like 
they'll do what we need.  The parts that are under-specified are concurrency 
primitives and the mechanism for control flow transfer between bytecode 
segments (which will be roughly analogous to PIR's subs).  Prototyping 
intra-segment control flow is the next on the agenda.  Feedback is still 
welcome on any part of the spec.

I'll consider the spec complete once we have a faithful prototype 
implementation that provides enough functionality to implement 6model and 
interoperate with Parrot's existing C code.  The 6model requirements are 
pretty basic: structs, arrays, hashes and invokable code that can take 
arguments.  It's hard to say exactly how long it will take to get to that 
point, but my best guess is about a month from now in the second week of May.


More information about the parrot-dev mailing list