On Apr 3, 2011, at 5:41 AM, Vasily Chekalkin wrote:

> Actually, there is next good proposal for emitting PBC from POST -
> make PAST emit "newPOST" and finally glue everyting together. In the
> perfect world - including PIRATE for parsing <inline> nodes on fly.

So mote it be.  My proposal has been updated on Melange and gist:

https://gist.github.com/899867  "Parrot GSoC 2011 Proposal: Migrating PAST to 
NQP and newPOST"

The important bits:
______________________________

Project Details

This project can be divided into three roughly equal sections: converting 
existing PAST classes to NQP, converting PAST to use new POST types and 
implementing new features.

The conversion of the PAST classes to NQP is motivated by a desire to match the 
new POST nodes. In addition, PIR is a low level enough language that adding new 
features would require significantly more time. The conversion will ease my 
development effort later, give me a thorough understanding of the code, and 
make further development in this area simpler.

While the POST library in nqp_pct has the same Op, Label, and Sub classes as 
the original it also has a variety of new classes to make code generation 
simpler and more efficient. The PAST::Compiler class will need to be made aware 
of the new types and make use of them where appropriate.

Finally, although the POST library provides bytecode generation it currently 
lacks complete feature parity with PIR generation. In particular, it lacks 
support for annotation and debug information. These features are available via 
the Packfile PMC and should be possible to be generated once PAST is updated to 
provide the information to POST. An evaluation will be done at the beginning of 
this portion of the summer to determine if any other features need to be 
implemented, since the conversion of the PAST library will likely expose any 
gaps.

The week prior to each evaluation will be dedicated to bugfixes and other 
issues. This extra time should help to both produce a high quality result and 
absorb any excess time caused by unforeseen issues. A goal for the project is 
to get the new PAST and POST libraries ready for production use, which in this 
case means being merged to Parrot's master branch. A week at the very end of 
GSoC will be allocated to code cleanup to address any issues that could prevent 
such a merge.

There is one major gap in this proposal: POST nodes containing inline PIR code. 
Unfortunately, implementing such nodes requires a full PIR parser. If time 
allows, pirate will be used to implement these nodes but this is not considered 
a major goal for the summer.


_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to