New guy

Hello! Not too long ago I discovered Clang and it is a shame it took
me so long. I really like compilers, that was my focus during my last
undergraduate years and then forgot about it since I could not find
vacancies for compiler engineers. Taking so long to notice is just a
proof of my lack of hope.

I decided to do some work for any open source project because I am so
scared of getting rusty with just my real job (and Clang seems way so
nicer!). When I found out about Clang I went straight to the open
projects page, but it is so hard to choose something. Therefore here I
am, introducing myself and asking for your advice.

I know there is a lot of work to do, but also, since Clang is young, I
think I still have a chance to work on tasks that don't show up too
often. For example, I think most of parsing is finished :_( but maybe
there is some code generation work for C++ (still in alpha state?) So
just to make a clear question...

* Which key parts of the compiler do you think I should try to help?

By "key parts" I mean the type of work which I will not easily find in
other projects. Those parts that are unique to a compiler and still
need work because Clang is young. I want to know where are those good
chances that don't show up too often. Which are the fun parts that
will be gone in a future?

I am interested in static analysis, code generation, c++ compiler and
garbage collection. All of it seems too hard to step in from day 0,
and regarding garbage, I think there are more important things to do
first. In the past I wrote myself a very reduced C++ compiler
generating mips code, just int types, easy expressions and simple
inheritance stuff. So the next questions are...

* which are the best jobs to get to know clang? what should I start
learning? (also not sure about how many hours I will be able to
invest)

if you want to know something more about me or the type of work I
like, you could also look at the latest entries of my blog:

http://www.digital-lumberjack.com
(and yes, you will notice immediately I am no native speaker)

please, ignore my undergraduate work since I bet that it is more like
baby-compiler stuff for all of you

thanks,
Francisco Garcia

Hi Francisco,

Hello! Not too long ago I discovered Clang and it is a shame it took
me so long. I really like compilers, that was my focus during my last
undergraduate years and then forgot about it since I could not find
vacancies for compiler engineers. Taking so long to notice is just a
proof of my lack of hope.

I decided to do some work for any open source project because I am so
scared of getting rusty with just my real job (and Clang seems way so
nicer!). When I found out about Clang I went straight to the open
projects page, but it is so hard to choose something. Therefore here I
am, introducing myself and asking for your advice.

My advice is to not look at the open projects, but rather scan through
bugzilla and pick a bug that you find interesting and try to see it
through. This is a great way to start to learn the code base.

Another great approach is to pick up Clang and go try to use it on
some project you care about, and then see if you find problems or
things you would like to work better. Then file bugs, and tackle those
as in step 1! :slight_smile:

I know there is a lot of work to do, but also, since Clang is young, I
think I still have a chance to work on tasks that don't show up too
often. For example, I think most of parsing is finished :_( but maybe
there is some code generation work for C++ (still in alpha state?) So
just to make a clear question...

* Which key parts of the compiler do you think I should try to help?

By "key parts" I mean the type of work which I will not easily find in
other projects. Those parts that are unique to a compiler and still
need work because Clang is young. I want to know where are those good
chances that don't show up too often. Which are the fun parts that
will be gone in a future?

One example of work we know we need to do, but no one is particularly
working on, is Clang's generated code quality. For example, no one has
taken a good look at comparing llvm-gcc to Clang and trying to make
sure Clang matches llvm-gcc's performance on, say, the projects in
llvm's test-suite repository.

- Daniel