Google Summer of Code is a global program that offers student developers summer stipends to write code for various open source software projects. Google Summer of Code 2010 went by quickly, and much was accomplished. The Perl Foundation and Parrot Foundation took part this year, and 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 Blog: http://blogs.perl.org/users/doubi/ Repo: http://gitorious.org/perl-ctypes/perl-ctypes
This project is exciting many Perl developers, because it would minimize the need to use XS, which will make many more pure-Perl modules possible. This improves portability, becaue 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 Blog: http://parrot.org/blog/836 Repo: http://github.com/parrot/parrot/tree/gsoc_threads
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 at adding 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 Blog: http://parrot.org/blog/839 Repo: http://github.com/ekiru/tree-optimization
This project is about providing a framework for optimizing PASTs (Parrot Abstract Syntax Trees). This will be used by language implementors 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 implementor writing their own optimizations.
Daniel Arbelo Arrocha -- NFG and single-representation strings for Parrot Mentor: Allison Randal Blog: https://www.parrot.org/darbelo Repo: http://github.com/parrot/parrot/tree/gsoc_nfg
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 Blog: http://use.perl.org/~masak/journal/ Repo: http://github.com/rakudo/rakudo
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 Blog: http://www.parrot.org/blog/841 Repo: http://github.com/khairulsyamil/parrot-instrument
This instrumentation tool for Parrot allows one to dynamically peek into the execution of Parrot op-codes. This allows for writing 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 Blog: http://www.parrot.org/ash Repo: http://github.com/ashgti/parrot
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: http://github.com/perl6/mu
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 implemenations of Perl 6 helps to better define the Perl 6 specification. Updated versions of SMOP and Mildew are now available on CPAN.
The failing projects 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 and similar things. We wish these students the best of luck, and hope that they complete their projects outside the structure of GSoC.
I am very proud and humbled by all the students and mentors that I worked with this year. I am constantly reminded that there are very intelligent developers that are very young, and The Perl Foundation and Parrot Foundation is very lucky to attract them and have them in our communities. I firmly believe that the passing GSoC 2010 projects have made a large positive impact on our codebases and many people will benefit from them for years to come.
Rock on and keep spreading the Open Source love!