How to start with GHC development?

Chris Nicholls chrisnicholls1 at gmail.com
Thu Dec 13 10:41:31 CET 2012


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 at 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 at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20121213/81376a0e/attachment-0001.htm>


More information about the Glasgow-haskell-users mailing list