Skip to content

Instantly share code, notes, and snippets.

@cotto
Created April 7, 2011 07:40
Show Gist options
  • Save cotto/907239 to your computer and use it in GitHub Desktop.
Save cotto/907239 to your computer and use it in GitHub Desktop.
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 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 executable code.
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 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment