GSoC/GCI Archive
Google Summer of Code 2011

Parrot Foundation

Web Page:

Mailing List:

Parrot Foundation is a US (Washington State) non-profit foundation, incorporated to: * Protect the intellectual property for the Parrot virtual machine, tools, libraries, and language implementations, while offering it for use under an open source license. * Cultivate an open source community and encourage the growth of an ecosystem of tools, libraries, extensions, applications, and language implementations around Parrot. * Support the development of Parrot and other Parrot community activities through events and grants, and provide essential technical, legal, and organizational infrastructure for the project.


  • A Look-Ahead(1) Left-to-Right Parser Generator for Parrot A LALR parser generator will be developed that will convert declarative specifications into Winxed code to parse an input stream of tokens.
  • Migrating PAST to NQP and newPOST The nqp_pct branch of parrot.git contains an updated version of POST that can output bytecode directly. This project will update PAST to use this new version of POST and get the branch ready for merge to master.
  • New Parrot Debugger This proposal describes a new Parrot debugger. It will include features such as setting breakpoints, setting watchpoints on registers or individual PMC's, stepping through code both forwards and backwards, backtrace, etc. Additionally, it will provide code instrumentation and be able to introspect state information from running code. The debugger will read debug information and annotations so that it can be used to work with all Parrot-supported HLL's at either the PIR or HLL level.
  • Parrot bindings for GMP integer functions This project aims to provide bindings for all integer functions in the GMP library as well as associated documentation and tests.
  • Python3 on Parrot This project aims to create a Python3 compiler and object system that works on parrot. The compiler would be written in Python itself as much as possible and reuse existing code as much as possible. The object system would be written either using 6model, or custom written in Winxed.