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
