Version 68 (modified by simonmar, 9 years ago) (diff)

GhciDebugger has more to do with the compiler than the RTS

Welcome to the GHC Developer Wiki

This is the home for GHC developers, one place for all the resources related to developing GHC. If you're only interested in using GHC, then you probably want The GHC home page instead.

Please help us improve the information here. You can easily do this by editing the wiki directly. Just log in as user guest with password guest. The "Help/Guide" link at the top of every page gives a good description of the markup language etc.

For a complete list of local wiki pages, see TitleIndex.


  • We will be running a Hackathon just before ICFP 2006 in Portland, oregon.
  • Internships at Microsoft Research, Cambridge, working on Haskell and GHC

Release cycle status

Downloading snapshots

  • Download snapshots here. This link also gets you to a typeset user manual for the current snapshot.

The bug tracker

The Code

Our source code is kept in a collection of darcs repositories.

We recently transitioned from using CVS as our revision control system to darcs. The darcs repositories have full history, but in case you need to look at the CVS trees:

Getting Started

How to get started with hacking on GHC:

Mailing lists

GHC developers hang out on the cvs-ghc mailing list. This list also receives the following:

  • checkins on the main ghc repository
  • patches sent by darcs send
  • nightly build reports

The traffic level varies quite a bit depending on how much activity there is.

Checkins for packages are reported on the cvs-libraries mailing list. To get mail from all the cvs-* lists, subscribe to the cvs-all mailing list (but don't post there, please).

Developer Documentation

This section collects information intended for people who would like to help work on GHC's source code.

Getting the GHC sources, and building GHC from source

  • The Building Guide: Information on how to build GHC from sources and port GHC to a new platform.
  • ProblemsCompilingGhc: Hints about building GHC on Windows platforms
  • DebuggingGhcCrashes: how to use gdb to debug a crash in GHC-compiled code.
  • ModuleDependencies: A listing of the dependencies between modules of the compiler.
  • BeginnersNotes: Some notes about getting started hacking GHC and the structure of the compiler (especially types and typecheck)
  • Platforms which platforms GHC currently supports.

Understanding the compiler proper

  • TypeFunctions: Notes concerning the implementation of type functions and associated types in the FC branch of GHC.
  • IntermediateTypes: Notes about the type system of GHC's new intermediate language, in the FC branch
  • RewriteRules: Notes about the implementation of RULEs in GHC
  • BackEndNotes: Some ideas and notes about the back end.
  • GhciDebugger: Some notes about the implementation of the GHCi debugger. Probably uninteresting unless you want to work on the debugger.

Primitive operations

Understanding the run-time system

  • GarbageCollectorNotes Notes about GHC's existing single threaded garbage collector and development of a parallel GC.

Old but useful

Finally, here are some generally-useful, but now somewhat-out-of-date resources:

  • The GHC Commentary: Information on the internals of GHC, in various states of up-to-dateness. We are keen to move this stuff out of its current location and onto this Wiki. If anyone is willing to help do that, even for just a part in which you are interested, we would be delighted.
  • GhcPapers: papers and pointers to other documents that relate to the inner workings of GHC.