The Perl Foundation and the Parrot Foundation took part in Google Summer of Code this year, and as the organization administrator, I am very proud of and humbled by all the students and mentors that I worked with. I am constantly reminded that there are very intelligent developers who are very young, and the Perl and Parrot Foundations are very lucky to attract them and have them in our communities. I firmly believe that the passing Google Summer of Code 2010 projects have had a large positive impact on our codebases and many people will benefit from them for years to come.

We were lucky to get proposals from very bright and capable students. We started the summer with 10 students and had 8 students pass their final evaluations. The passing projects include:
Ryan Jendoubi -- Ctypes for Perl
Mentor: Reini Urban (Repo)
This project is exciting many Perl developers, because it minimizes the need to use XS, which makes many more pure-Perl modules possible. This improves portability, because XS-based modules are notorious for being fragile across operating systems and compiler versions. This adds up to a whole lot of WIN.

Nat Tuck -- Hybrid Threads for Parrot
Mentor: Andrew Whitworth (Repo)
Threads allow a single program to use more than one CPU, which is becoming increasingly important these days. Even mobile phones are multicore! This work aimed to add threading support to Parrot Virtual Machine. Much was accomplished, but this effort is still on-going. So-called "green threads" were implemented, which is a necessary step to get Hybrid threads working.

Tyler Curtis -- A PAST Optimization Framework for Parrot
Mentor: chromatic (Repo)
This project is about providing a framework for optimizing PASTs (Parrot Abstract Syntax Trees). This will be used by language implementers when optimizing their HLLs (High Level Languages). This framework allows all languages on Parrot to benefit from optimizations that are written once, instead of each language implementer writing their own optimizations.

Daniel Arbelo Arrocha -- NFG and single-representation strings for Parrot
Mentor: Allison Randal (Repo)
NFG stands for Normal Form Grapheme, and basically means having a standard internal representation of Unicode strings, so that very expensive conversions do not have to repeatedly take place. This makes string-heavy computations much faster and unifies a lot of code.

Carl Masak -- Add support for binary data in Rakudo
Mentor: Jonathan Worthington
 (Repo)
Rakudo Perl 6 now supports various binary data formats that were implemented as part of this project. Many relevant tests were also added to the Perl 6 Spec Test Suite as well as improvements and clarifications to the Perl 6 Specification.

Muhd Khairul Syamil Hashim -- Instrumentation Tool for Parrot
Mentor: Christoph Otto (Repo)
This instrumentation tool for Parrot allows developers to dynamically peek into the execution of Parrot op-codes. This allows for profiling tools that can answer questions like "who calls functions X" and "how many Objects of type X were created."

John Harrison -- Improvements to NCI/LLVM Stack Frame Builder for Parrot
Mentor: Peter Lobsinger (Repo)
This project is a prerequisite for a JIT (Just In Time compilation) framework, which is an important goal for the Parrot community, since Parrot decided that our old JIT subsystem was broken beyond repair and removed it. Parrot has decided to use the very popular LLVM project in our rewrite of our JIT, and this project brings us a step closer on our journey.

Pawel Murias -- Mildew and SMOP on CPAN
Mentor: Daniel Ruoso (Repo)
This project involved working on Mildew and SMOP. Mildew is a Perl 6 implementation, and SMOP is the library Mildew uses for meta-object programming. You can think of Mildew as a sister to Rakudo Perl 6. Having many implementations of Perl 6 helps to better define the Perl 6 specification. Updated versions of SMOP and Mildew are now available on CPAN.
The two projects that did not pass the final evaluations were:
Justin Hunter -- Rework Catalyst framework instance initialization code
Mentor: Florian Ragwitz



Mirko Westermeier -- Bulletproofing the Mojolicious test suite
Mentor: Marcus Ramberg
Both of these projects passed their midterms, but due to circumstances outside of the program, these students were not able to complete their goals for their final evaluation. Sometimes Real Life throws you a curve ball, like starting a new job, moving to a new city, having a baby or similar things. We wish these students the best of luck, and hope that they complete their projects outside the structure of Google Summer of Code.

To all that participated in Google Summer of Code - Rock on and keep spreading the open source love!

By Jonathan “Duke” Leto, Google Summer of Code Administrator for Parrot and Perl

Cross posted from dukeleto.pl, my personal blog about Perl 5, Perl 6, and Parrot Virtual Machine.