I'm in the same boat, with just a little less reading. :)It seems to be that if we want to encourage participation in GHC development, the first step is to lower the barrier of entry.
One way to do that would be to have a page (wiki, perhaps) that has a reading list for learning about GHC. I'd guess that there are a lot of people like Janek and myself who want to contribute, even a little, and just aren't sure about where to start. We're happy to do our homework, but we need some assignments, so to speak.
Another idea is to have a list of open tasks grouped by how difficult they will be and how much knowledge of Haskell and GHC will be required.
Janek
In that case I'd suggest reading some of the papers on STM, DPH, REPA,
and Cloud Haskell, and then just diving into the GHC code. It's been a
while since I've read them, but SPJ's classic books don't have a whole
lot about concurrency/parallelism IIRC.
For the type system, I highly recommend reading [1]. It's long but it's
more of an introductory/tutorial sort of paper, so it's easy reading.
Also, unlike most intro/tutorial papers, it goes all the way through
System F (H98 minus type classes, plus RankNTypes), whereas most intros
only show Hindley--Damas--Milner (SML). On the one hand, HDM is a good
starting place because it's such an easy type system with a very nice
power/weight ratio, but if you're interested in hacking on modern
Haskell we're so far beyond HDM that starting there would only slow you
down, since we can no longer take advantage of a number of simplifying
assumptions that HDM makes. ... After you've read that paper, you'll
probably want to take a look at one of the newer Fc papers, which adds
in GADTs, type families, and other GHC Haskellisms. After that you
should be ready to start hacking, though you'll need to backfill some of
the theory from time to time.
[1]
http://research.microsoft.com/en-us/um/people/simonpj/papers/higher-rank/
--
Live well,
~wren