Skip to content
This repository

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

Project sizes:

  • 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.
Name Size Synopsis
Copying garbage collector Large
Concurrent garbage collector Medium
TreeUnit Small Create a tree unit test language for PAST and POST.
Context-threaded runcore Medium
Polymorphic inline cache Medium
IMCC improvements 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.
Prototype-based metamodel Medium Create a prototype-based object metamodel suitable for languages like JavaScript.
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.
Web Services Medium/Large 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

Compiler Projects

Project sizes:

  • 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.
Language Size Website
Clojure Medium http://http://clojure.org/
Common Lisp Large http://www.lispworks.com/documentation/HyperSpec/Front/index.htm
E Medium http://erights.org
ECMAScript Medium http://www.ecma-international.org/publications/standards/Ecma-262.htm
Fantom Medium http://fantom.org
Go Large http://golang.org
Groovy Medium http://groovy.codehaus.org
Java Large http://www.oracle.com/technetwork/java/index.html
MATLAB Large http://www.mathworks.com/products/matlab/index.html
PHP Medium http://www.php.net
Pike Medium http://pike.ida.liu.se
Python 2 and 3 Large http://python.org
Scala Medium http://www.scala-lang.org
Vala Medium https://live.gnome.org/Vala
Something went wrong with that request. Please try again.