On Tue, 21 Nov 2023 at 10:58, Tobias Burnus <tob...@codesourcery.com> wrote:
>
> 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. (*)


Another good place to start is the
https://gcc.gnu.org/wiki/GettingStarted wiki page (which the
SummerOfCode page also links to).

Reply via email to