Student Application Template
Name: Manish Gill
Contact/Email: Redacted. IRC : Redacted. @ Freenode, OFTC
Background: I have been programming in C++ for almost a year. I've read source code of a few open source projects previously, but have never contributed back, and this project is a good opportunity to change that. I've been an Ubuntu user for the past year, and have been using Squeeze ever since I found out about the project.
Project title: Clang support for build services
Project details: The project's focus is to modify existing Debian packages so that they can compile with Clang, and integrate Clang as part of the Debian infrastructure, so that it can be used to compile Debian software like GCC. Another goal is to provide an easy interface to switch the default compiler between gcc and clang.
Synopsis: Having played around with clang for some time, I'm excited to have the opportunity to work for this project. I've been studying Sylvestre's published study that accounts Debian built using clang and the various errors and warnings that cropped up. So the first part of the project will mostly just be fixing the errors that Debian critical packages issue with clang (provided that the packages successfully compile under gcc). I haven't been using Debian very long, but am already comfortable with it. In a short time period of the past two weeks, I've learned the basics of Debian package management, and have also become familiar with chroots. I'm already in the process of setting up a build environment for the project.
Benefits to Debian: In my experience of using Clang, one major benefit it handles warnings and errors, which are much more descriptive than gcc. There are numerous performance benefits of using clang, like low memory usage and faster compilation time (compared to gcc 4.6), many of which can already be attested to by various performance benchmarks. Previous compilation efforts by Sylvestre has already lead to about rebuilding almost 90% of the Debian archive, and Clang has already successfully built some major projects, like the Boost libraries, and the Linux Kernel.
- Debian build essential packages modified to compile successfully with Clang.
- Default Compiler Switching between gcc and Clang.
- Package building using other compilers.
I've kept the following schedule deliberately at a loose pace, as I've yet to become fully familiar with the Debian build services, and I want to give myself enough room to move the timeline around.
- Week 1 - Week 3: Familiarise myself with the build services. Start work on modifying build services for Clang. Test various compilation results on buildd.
- Week 4 - Week 6: Debug and Improve buildd results. Start work on the compiler interface.
- Week 7 - Week 9: Complete the compiler switching interface, debug and remove any problems.
- Week 10 - Week 12: Test the interface using various compilers, remove any inconsistencies.
Exams and other commitments: I have exams from May 21st to June 4th. I'll be free from then on.
Other summer plans: No other summer plans.
Why Debian?: I've been using Ubuntu for a year, and although I'm new to Debian, in the brief time that I've had to play with Debian, I've been impressed with the way Debian focuses on the quality of software. The Debian community has been extremely helpful. This project will teach me more about Debian's inner workings, and I hope to contribute more to the community in the future.
- Are you applying for other projects in SoC?: Yes