The Chapel team recently concluded our first Google Summer of Code (GSoC), which we introduced in our spring blog post. GSoC is a program in which Google funds students around the world to spend their summers working on open-source projects. The process began with Chapel applying and being accepted as a mentor organization back in February. After mentor organizations were announced, students began working with the accepted organizations to lay the groundwork for their project proposals, which were submitted in March. Google provided Chapel with two student slots, a typical number for a first-year mentor organization. This made choosing students among the pool of 46 applicants challenging, as there were well over a dozen highly impressive applicants who we wish we could have accepted. After a difficult review process that spanned multiple stages, the team accepted Andrea Francesco Iurio, a master’s student in computer science at the University of Milan, and Kushal Singh, a senior undergraduate student in computer science and engineering at the International Institute of Information Technology, Hyderabad.
Andrea proposed to work on designing and implementing stack traces in Chapel. Kushal proposed to work on designing and implementing incremental compilation in Chapel. Both Andrea and Kushal stood out as strong applicants by becoming active in the Chapel community early on. They were active on the mailing lists and IRC channel, and made contributions to the Chapel code base. Additionally, Andrea and Kushal both had successfully completed a previous Google Summer of Code, with organizations Mono and RIOT-OS, respectively.
After student acceptances were announced in April, students began ramping up with their mentors for the summer during the community bonding stage. Andrea and Kushal were mentored by Michael Ferguson and Lydia Duncan, respectively, each of whom are full-time developers on the Chapel team at Cray. During the coding portion of the program, which ran from May 23 to Aug. 23, the students worked on their projects full time, regularly communicating with their mentors and other Chapel team members.
During the summer, Andrea completed an implementation of stack traces in Chapel. With this feature, Chapel programmers can get a full report on how a “halt” in their program was reached, rather than just the file and line number of the “halt.” Stack trace reporting will be available in the upcoming Chapel 1.14.0 release. Users can enable stack trace reporting by setting the “CHPL_UNWIND” environment variable before building Chapel, as described in our online documentation. This feature has already become helpful as a debugging tool for Chapel programmers, and we plan to enable it by default in future releases.
The result of Kushal’s design work on incremental compilation over the summer was summarized and submitted as Chapel Improvement Proposal 15. Of the proposed design, much of the necessary infrastructural changes were made during the summer, including restructuring code generation, building a code cache and minimizing code cache differences across builds. This feature aims to reduce the time required to recompile a previously compiled, but modified Chapel program. The code path that enables this functionality is turned on with the new “–incremental” compiler flag, which will be available in the upcoming 1.14.0 release. Incremental compilation will be a major step forward in optimizing the “edit-compile-run” cycle for Chapel development.
The summer of code officially ended on Aug. 30. Congratulations to our students, Andrea and Kushal, for successfully completing their GSoC with Chapel. We are incredibly pleased with the significant milestones they reached this summer. It has been a great first GSoC for Chapel, and we feel fortunate to have received such bright and hard-working students.
Now that the summer has ended, Andrea and Kushal are both entering their final year of study in their respective programs. While they won’t have as much time to spare for Chapel development, they both plan to continue contributing to the Chapel language. Andrea has started using Chapel in his coursework, and hopes to continue improving upon his stack trace project going forward. Kushal plans to pursue the next steps towards incremental compilation through an honors project as part of his undergraduate program. As for the Chapel team, Lydia and I will be representing Chapel at the GSoC 2016 summit at Google’s main campus this October.
Thanks to Google for hosting this program and providing the Chapel team with this opportunity to mentor students to work on Chapel.
For further information on Chapel’s GSoC projects, see our summer of code page.