Clone this wiki locally
Add your project here. If you have lots of ideas, please create a separate page for your project and link it here. Adding more design and guidance information will improve the chances of the project actually getting completed.
Core Development Projects
- Small: suitable for a small branch or a Bachelor's research project.
- Medium: suitable for a GSoC project, Bachelor's research project, or a moderately-sized grant proposal.
- Large: suitable for a Master's thesis, Ph.D dissertation, etc.
|Copying garbage collector||Large|
|Concurrent garbage collector||Medium|
|TreeUnit||Small||Create a tree unit test language for PAST and POST.|
|Polymorphic inline cache||Medium|
|NFG||Medium||Add NFG string normalization form (partially completed in a GSoC 2010 project).|
|GObject metamodel||Medium||Create an object metamodel for Parrot based on GObject.|
|I/O improvements||Large||Implement asynchronous I/O operations. May require threading improvements first.|
|D-BUS interface||Medium||Implement a D-BUS wrapper library for Parrot.|
|I18N support||Medium||Implement an I18N translation system so that all internal system messages can be translated into other languages.|
|CUDA bindings||Medium||Implement CUDA bindings for Parrot so applications can take advantage of GPU processing power.|
|Memory caching system||Small||Create an interface to 'memcached' on Parrot. The interface should allow storage and lookup of serialized PMC's, STRING's, and other arbitrary data.|
|LALR parser generator||Large||Create a LALR parser generator (similar to YACC/Bison) that runs on Parrot and generates pure PIR/PBC parsers.|
|Parrot Documentation Revision||Medium||Complete revision of Parrot's Documentation Set.|
This is actually a series of medium/large projects.
Step 1: Create a CGI, SCGI, and/or FastCGI library for Parrot.
Step 2: On top of that, create an easier interface like WSGI, Rack, or Plack
Step 3: On top of that, create a dead simple framework like Dancer, Sinatra, or even Rails or Catalyst
Step 4: World Domination
|Sandboxing||Large||Create a system to protect the system from untrusted scripts|
- Small: a toy language; based heavily on another language for which we have an existing compiler project.
- Medium: most general-purpose programming languages that don't have a large runtime libraries.
- Large: a particularly large language; a language with a particularly large and elaborate runtime library.
|Python 2 and 3||Large||http://python.org|