Hi Tom,

On 21.11.23 11:32, Hamish Baxter via Gcc wrote:
I am a current Computer Science student who enjoys C programming with an
interest in learning compilers, and am looking to contribute to an
open source project.

I am not sure exactly where to start or how it works: perhaps testing /
technical documentation / bug fixes?  Is it possible to please have some
guidance or perhaps I can assist someone with their current project?

I think the first question is at which part of the compiler you would
like to work on:

* The front end: C, C++, Fortran, Ada, Rust, Go, Modula2, ...

* Middle end such as diagnostic (e.g. analyzer), optimizations (loops,
IPA, pattern-based, ...)

* Backend: Code for a specific hardware

Additionally, there is:

* library related work (including C++'s STL) – usually related to
front-end work

and work on

* language extensions like OpenMP or OpenACC.

https://gcc.gnu.org/wiki/SummerOfCode give some idea – those are for
summer of code projects and outside of such a project, some other tasks
(smaller and more diverse) might make more sense, but at least it gives
an idea.

Some documentation on GCC internals and tutorials also exists, but I it
makes sense for you to decide rough area interests you most – as the
backend documentation is probably less useful if you want to work on the
FE or vice versa.

What I regard as good starting point is indeed bugfixing. When guiding
summer of code students, I always tried to find some small bug-fix
project to get started and have some simple but complete task (building
GCC; writing the patch; adding testcase; testing it; submitting the full
patch). While there might be some simple feature tasks, I usually found
it the easiest to to propose fixing an internal-compiler error (ICE) for
invalid code (ice-on-invalid-code) or adding accepts-invalid diagnostic
– those tend to be easier and there are more often lower-hanging fruits
as wrong-code bugs or reject-valid / ice-on-valid-code tend to get more
attention and are quicker fixed if easy. (*)

Tobias,

who mostly works on the OpenMP and on the Fortran FE.

(*) https://gcc.gnu.org/bugzilla/query.cgi - the hyphenated strings are
Bugzilla keywords. When beginning, it makes sense to ask for some
guidance as some bugs might turn out to be rather complex while others
sound complex but are simple. — One place to ask for some
code-development hints is besides the mailing list the IRC channel, cf.
top at https://gcc.gnu.org/wiki

-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 
München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas 
Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht 
München, HRB 106955

Reply via email to