[Haskell-cafe] GHC devs

Andrew Coppin andrewcoppin at btinternet.com
Sat Oct 17 10:35:30 EDT 2009

Martijn van Steenbergen wrote:
> David Virebayre wrote:
>> Taking the opportunity to thank very much both Simons and Ian for the
>> work they do and the enthusiasm they show. You guys rock.
> I heartily second that!

I won't disagree with that sentiment. ;-)

According to a paper I just read, GHC is "about 150,000 lines of code". 
It's pretty impressive that such a small team could write and actually 
maintain such a big thing. (At least, it impresses me.)

Speaking of which... One of the things I like about the GHC team is that 
they keep putting out really interesting papers. Most of them are pretty 
easy reading, even for somebody as stupid as me. Things like the papers 
on STM, parallel GC, stream fusion, DPH, and low-level performance 
tuning of the GHC RTS and STG implementation. For example, I've just 
been reading a paper which suggests that turning off vectored returns 
yields a net performance win.

One slightly frustrating aspect of all this is that these papers 
describe interesting techniques or new optimisations, but it's usually 
quite hard to track down when/if these things made it into the 
production GHC releases... Sometimes you can tell from the paper (e.g., 
there was recently a paper about a bunch of things being done to the 
parallel RTS to remove bottlenecks from it, and IIRC it stated that this 
work will be released in GHC 6.12.x) Sometimes the GHC release notes 
will tell you (e.g., GHC 6.10.1 says "there's a new flag to turn on 
parallel GC", which pretty much means that this is the first version to 
support this feature). But sometimes it's really hard to cross-reference 
this stuff.

It would be nice if somebody could collect together all the papers about 
GHC, and which (if any) GHC release versions implement this stuff...

More information about the Haskell-Cafe mailing list