whiteknight/6model branch

Andrew Whitworth wknight8111 at gmail.com
Sat Aug 27 17:10:26 UTC 2011

I've started a new branch whiteknight/6model to start porting 6model
from NQP into Parrot core. As of a few minutes ago, Parrot is building
again and passing most coretests. Even though Parrot builds, I haven't
tested any of the new 6model features yet, so I am sure they are
broken. I haven't gotten all the new ops added in yet, so you might
not even be able to test it out anyway.

Several people have asked about what they can do to help. Here is a
big list of things that we need to get this branch mergable. We are
probably looking at a month or two of work minimum, considering all
the fixes we need to make and all the coordination we need to do with
NQP and Rakudo.

1. We need to build this with several compilers. I know NQP was not
written with the same portability guidelines in mind as Parrot has.
Tests especially with g++ and anything more exacting would be great.
If you find problems, feel free to fix them
2. Codestd tests are failing hard. I've done a lot of fixing to get
headerizer running, but we are going to need a lot more. This includes
file- and function-level documentation (some functions have docs, but
not in the correct POD format), ASSERT_ARGS, and various other
formatting fixes.
3. We need to fix other tests that are failing as well.
4. We need to add tests for the new 6model features: the new PMC
types, the new ops, etc. Some of these can probably be borrowed from
the NQP repo. Some will need to be written fresh. We want to make sure
coverage for these new files and features is high (80% at least, I
would think. Higher is better).
5. We need to update several function names to use parrot naming
conventions. I'm thinking "Parrot_6m_" as a prefix for the API
functions, but I'm happy to hear other suggestions.

We don't need to do it immediately, but we can start thinking about
ways to better integrate 6model features into Parrot. This may mean
updating existing ops to be 6model aware and maybe merging some of the
new op semantics into old ops, updating PMC types and the pmc
subsystem to better use 6model features, updating the packfile system,
updating IMCC, etc. I am very interested to hear ideas about these
kinds of things.


--Andrew Whitworth

More information about the parrot-dev mailing list