Mirror of ghc repository. DO NOT SUBMIT PULL REQUESTS HERE
Haskell C Perl Shell Emacs Lisp Python
Pull request Compare This branch is 1 commit ahead, 22500 commits behind ghc:master.
Failed to load latest commit information.
bindisttest Fix bindisttest in git Mar 31, 2011
compiler Implements a prototype of the 'docase' notation. Aug 24, 2011
distrib Refactor configure.ac's: Define FIND_GCC() in aclocal.m4 Aug 2, 2011
docs Fix DocBook formatting Aug 22, 2011
driver Remove dead code, now that -fvia-c is a no-op Apr 4, 2011
ghc In :browse, always print output in the *current* context Aug 22, 2011
includes make shutdownHaskellAndExit() shut down the RTS and exit immediately Aug 12, 2011
libffi Make and use AR_STAGE[0123] makefile vars Apr 23, 2011
libraries Fix conditional pragma to work with 6.12 Aug 9, 2011
mk Fix validation problem when GHC is 7.2.1, warnings from binary. Aug 19, 2011
rts fix occasional failure of numsparks001 test. During shutdown we Aug 14, 2011
rules Use the correct __GLASGOW_HASKELL__ value when invoking hsc2hs on Aug 8, 2011
utils Fix validation problem when GHC is 7.2.1, warnings from binary. Aug 19, 2011
.authorspellings Slurp author spellings file from base and add more authors Nov 12, 2010
.darcs-boring Remove redundant libraries/cabal-bin.hs Jan 16, 2011
.gitignore New functionality required for the supercompiler plugin Jun 29, 2011
ANNOUNCE Remove references to Haskell 98 Nov 23, 2010
HACKING Admonish the user to read the wiki page! Apr 13, 2011
LICENSE Reorganisation of the source tree Apr 7, 2006
MAKEHELP Remove html, pdf and ps from the list of targets in MAKEHELP Apr 28, 2011
Makefile Fix 'make test' command for new testsuite location Jul 20, 2011
README Update darcs references to git in README Apr 3, 2011
SUBMAKEHELP Make the "show" target work anywhere in the build tree Jun 16, 2010
aclocal.m4 Update to work with Alex 3.0: basically disabling Alex's new Unicode Aug 5, 2011
boot sanitise naming of package lists Aug 5, 2011
config.guess Fix detection of i386 vs. x86_64 for -pc-solaris Jan 27, 2009
config.sub Update config.guess, config.sub and install.sh from automake-1.10.2 Jan 16, 2009
configure.ac Fail configure if Alex 3 is found. Haddock doesn't build with Alex 3 Aug 10, 2011
ghc.mk sanitise naming of package lists Aug 5, 2011
ghc.spec.in Remove unused hasktags configure check May 5, 2011
install-sh Mark scripts executable (boot, and the ones the build system chmods) Apr 2, 2011
new_tc_notes Super-monster patch implementing the new typechecker -- at last Sep 13, 2010
packages Comments only Aug 3, 2011
settings.in Move more commands into the settings file Jun 22, 2011
sync-all Output the full documentation in response to "./sync-all --help" Jul 20, 2011
tarballs Add tarball syncing to darcs-all Oct 14, 2009
validate Have validate check for the "files written by multiple tests" error Aug 8, 2011


The Glasgow Haskell Compiler

This is the source tree for GHC, a compiler and interactive
environment for the Haskell functional programming language.

For more information, visit GHC's web site:


Information for developers of GHC can be found here:


Getting the Source

There are two ways to get a source tree:

  1. Download source tarballs

  Download the GHC source distribution:


  which contains GHC itself and the "boot" libraries.

  2. Check out the source code from git

  First get the GHC git repository:

    $ git clone http://darcs.haskell.org/ghc.git/

  Then run the sync-all script in that repository
  to get the other repositories:

     $ cd ghc
     $ ./sync-all get

  This checks out the "boot" packages.

Building & Installing

For full information on building GHC, see the GHC Building Guide [3].
Here follows a summary - if you get into trouble, the Building Guide
has all the answers.

NB. you need GHC installed in order to build GHC, because the compiler
is itself written in Haskell.  For instructions on how to port GHC to a
new platform, see the Building Guide.

If you're building from git sources (as opposed to a source
distribution) then you also need to install Happy [4] and Alex [5].

For building library documentation, you'll need Haddock [6].  To build
the compiler documentation, you need a good DocBook XML toolchain and

Quick start:  the following gives you a default build:

    $ perl boot
    $ ./configure
    $ make
    $ make install

The "perl boot" step is only necessary if this is a tree checked out
from git.  For source distributions downloaded from GHC's web site,
this step has already been performed.

These steps give you the default build, which includes everything
optimised and built in various ways (eg. profiling libs are built).
It can take a long time.  To customise the build, see the file HACKING.


 [1] http://www.haskell.org/ghc/                        GHC Home Page
 [2] http://hackage.haskell.org/trac/ghc                GHC Developer's Wiki
 [3] http://hackage.haskell.org/trac/ghc/wiki/Building  Building Guide
 [4] http://www.haskell.org/happy/                      Happy
 [5] http://www.haskell.org/alex/                       Alex
 [6] http://www.haskell.org/haddock/                    Haddock


Please see