
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
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