Hi Jan,
The commentary is a great place to start to understand the GHC pipeline. In fact, GHC is an incredibly well documented project. However, being a place where a lot of new theory gets tested, its' also one of the densest and most intimidating (It's perhaps the only source code I've read that frequently provides references to research papers as comments). So to some extent, to work on it probably does require bashing against some theory for a while.
It also depends on the part of the pipeline that you're interested in. There's quite a difference between, say, the typechecker, and the codegen stages, and they require rather different knowledge.
And this is where I'm a little stuck too. I have a reasonably good picture of GHC's pipeline, having worked on it for my master's thesis, and I'd like to get more involved and possibly even contribute something useful. But I'm not sure where to start. There is the 'Notes on proposed or in progress (but out of tree) GHC compiler features' but it's hard to tell what has been started, or even nearly completed (and none of them seem that 'entry level').
What's the best way to get started? Bug fixes? Writing a toy plugin? I don't have a huge amount of time to offer, but I would like to learn to help!
On Thu, Dec 13, 2012 at 8:56 AM, Jan Stolarek
<jan.stolarek@p.lodz.pl> wrote:
Dear list,
I'm reposting my message from Haskell-cafe here since this seems like a more appropriate place to
ask this question. I would like to learn about internals of GHC and contribute to its development
in the future. I read a couple of papers that give a very general overview of GHC (chapter from
AoS, papers about inliner and multicore support) and I'm thinking what direction should I pursue
now. I got the GHC sources and started reading commentary on the wiki, but it seems that entry
barrier is very high.
Aside from the problem of understanding the whole project organization itself, I also don't have
background on implementation of functional languages. In fact I have a rather basic knowledge of
compilers in general - I only took Stanford's online course on Compilers at Coursera. I was
thinking that perhaps I should read SPJs "Implementing Functional Languages: a tutorial" or "The
Implementation Of Functional Languages" book to learn more about theory? On the other hand I
don't know if getting stuck in theory for next couple of months is a good idea.
I would greatly appreciate any advice and help.
Janek
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users