Google Summer Of Code

Thanks for your interest in the GNU Compiler Collection as your mentoring organization in Google's Summer of Code.

Project Ideas

There are several pages with general ideas for GCC. These ideas are not just one project but many different projects linked here for easy of access.

If you have a project idea, it is often a good idea to discuss it before the application via the mailing list or via IRC.

/!\ Note: The GCC is owned by the Free Software Foundation (FSF), as such, all contributors must assign their copyright to the FSF before any of their changes are accepted. The copyright assignment process is described in Contributing to GCC. See also GettingStarted.

Relatively simple tasks

GCC Improvement Projects

New optimization passes

Language front-ends and run-time libraries

Other projects

If you are interested in learning your way around the GCC codebase, the Partial_Transitions is a good place to start.

Other project ideas can be found in the bug database. Look for old bugs which are still open.

Or invent your own project. We're always open to good ideas. But note that we are probably not too interested in projects to add new extensions to the C or C++ languages. We've found over time that these tend to introduce more problems than they solve.

Thanks, and we look forward to your submissions!

Application

The Drupal project has a great page on How to write an SOC application. A gcc Summer of Code participant for 2006, Laurynas Biveinis, wrote a blog about it.

A former GCC Summer of Code student has written an excellent page reporting important advices for students : 5 advices to get your Google Summer of Code proposal accepted.

You should also have a copyright assignment filed with the Free Software Foundation. Otherwise, we will not be able to accept your contributions. See the legal prerequisites for details.

Some guidelines are:

Accepted GCC Projects

2013

Project

Student

Mentor

Porting the GCC go language frontend on the GNU/HURD kernel

Fotis Koutoulakis

Thomas Schwinge

Optimizing large applications with LTO

Martin Liška

Jan Hubicka

Completing C++11 regex

Tim Shen

Stephen M. Webb

2012

Project

Student

Mentor

Continue work on GCC generic optimisation and cleanup

Dimitrios Apostolou

Andrey Belevantsev

Implement regular expressions to C++

Morgen Matvey

Benjamin De Kosnik

Gimple FE : Extending the text gimple recognizer to a real front end

Sandeep Soni

Diego Novillo

C++11 regex support in libstdc++

Sergey Lega

Benjamin De Kosnik

2011

Project

Student

Mentor

Extend GFortran's Coarray support with MPI-based paralellization (project page)

Daniel Carrera

Tobias Burnus

GCC Optimisation Final Report, Various Notes: (1) (2) (3)

Dimitrios Apostolou

Steven Bosscher

Integration of transactional memory support into a data-flow extension of OpenMP

Ismail KURU

Richard Henderson

Developement of Gimple Front End (project page)

Ketaki

Diego Novillo

Gccpy - GCC Python Front-end (project page)

Philip Herron

Ian Lance Taylor

Customizable warnings with a GCC plugin (project page)

Piervit

Basile Starynkevitch

Implement faster OpenMP Task for libgomp

Sho Nakatani (中谷 翔)

Jakub Jelínek

2010

The source code for finished projects can be found at Google's code hosting site and their respective SVN branches.

Project

Student

Mentor

EFI extension of Binutils

Yi-Hong Lu

H. J. Lu

Development of GIMPLE FE

Sandeep Soni

Diego Novillo

Improvement of general vector extension in GCC

Artjoms Sinkarovs

Richard Günther

Partial Implementation of Python as a GCC Front-end

Philip Herron

Ian Taylor

Improving the static control part detection mechanism in Graphite

Vladimir Kargov

Sebastian Pop

Traditional loop transformations in GRAPHITE

Ankur Deshwal

David Edelsohn

ScopLib support for Graphite - Linking Graphite to the huge industrial and research community

Riyadh Baghdadi

Sebastian Pop

Porting GRAPHITE to CLooG trunk

Andreas Simbuerger

Tobias Grosser

gfortran: Polymorphism and a complete OOP implementation

Janus Weil

Tobias Burnus

Extending Fortran 2003 and 2008 support for gfortran (esp. Co-Arrays)

Daniel Kraft

Tobias Burnus

2009

Project

Student

Mentor

Automatic parallelization in Graphite

Li Feng

Tobias Grosser

Enable generic function cloning and program instrumentation in GCC to be able to create static binaries adaptable to varying program and system behavior or different architectures at run-time

Liang Peng

Grigori Fursin

gfortran: Procedure Pointer Components & OOP

Janus Weil

Tobias Burnus

Traditional Loop Transformations

pranav garg

Sebastian Pop

Make the OpenCL Platform Layer API and Runtime API for the Cell Processor and CPUs

phil prattszeliga

Paolo Bonzini

Provide fine-grain optimization selection and tuning abilities in GCC to be able to tune default optimization heuristic of the compiler or fine optimizations for a given program on a given architecture entirely automatically using statistical and machine learning techniques from the MILEPOST project.

Yuanjie Huang

Grigori Fursin

2008

Project

Student

Mentor

GCC Improvements on Windows

Aaron W. LaFramboise

Steven Bosscher

Improving Dead Store Elimination

Jakub Staszak

Daniel Berlin

Extend Fortran 2003 support for gfortran

Daniel Kraft

François-Xavier Coudert

C++0x lambda functions for GCC

John Freeman

Douglas Gregor

Improved GIMPLE to GRAPHITE transformation

Tobias Grosser

Sebastian Pop

Finish work on propagation aliasing and array dependence information from Tree-SSA to RTL.

Alexander Monakov

Diego Novillo

Procedure Pointers for gfortran

Janus Weil

Tobias Burnus

2007

Project

Student

Mentor

Propagating array data dependence information from Tree-SSA to RTL

Alexander Monakov

Daniel Berlin

Better_Uninitialized_Warnings

Manuel López-Ibáñez

Diego Novillo

Speeding up GCC for fun and profit

James Webber

Eric Marshall Christopher

Fortran 2003 features for GCC

Janus Weil

Steven Bosscher

Open Mutliprogramming Interprocedural Analasis and Optimalizations

Jakub Staszak

Daniel Berlin

Integrating OpenJDK's javac bytecode compiler into gcj

Dalibor Topic

Mark J. Wielaard

New static scheduling heuristic for GCC

Dmitry Zhurikhin

Vladimir Makarov

GCC support for Windows-compatible Structured Exception Handling (SEH) on the i386 platform

Michele Cicciotti

Ian Lance Taylor

2006

Project

Student

Mentor

Code parallelization using polyhedral model

Plesco Alexandru

Daniel Berlin

Escape_analysis

Paul Biggar

Daniel Berlin

Garbage_collection_tuning

Laurynas Biveinis

Daniel Berlin

java.lang.management in Classpath

Andrew John Hughes

Mark Wielaard

Lock free C++ containers

Phillip Jordan

Benjamin Kosnik

Wcoercion option

Manuel López-Ibáñez

Ian Lance Taylor

Information for GSoC admin

Answers to questionnaire

Organization profiles do not propagate between GSoC programmes of different years and below are answers to the questionnaire as completed in 2014.

None: SummerOfCode (last edited 2014-03-19 02:44:03 by MaximKuvyrkov)