Skip to content

dorchard/ghc

 
 

Repository files navigation

The Glasgow Haskell Compiler

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

For more information, visit [GHC's web site] 1.

Information for developers of GHC can be found on the [GHC Trac] 2.

Getting the Source

There are two ways to get a source tree:

  1. Download source tarballs

Download the GHC source distribution:

    ghc-<version>-src.tar.bz2

which contains GHC itself and the "boot" libraries.

  1. Check out the source code from git

First clone the GHC github read-only repository:

    $ git clone git://github.com/ghc/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.

DO NOT submit pull request directly to the github repo. See the GHC developer team's working conventions re contributing patches.

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.

Before building GHC you may need to install some other tools and libraries. See, [Setting up your system for building GHC] 8.

NB. In particular, you need [GHC] 1 installed in order to build GHC, because the compiler is itself written in Haskell. You also need [Happy] 4, [Alex] 5, and [Cabal] 9. For instructions on how to port GHC to a new platform, see the [GHC Building Guide] 3.

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

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] 1, 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.

Once you have a build you need to keep it going. You need to keep all repos in sync with the [sync-all script] 7. To get the latest changes:

$ ./sync-all pull
$ ./sync-all get

Contributors

Please see the list of GHC contributors.

About

Mirror of ghc repository. DO NOT SUBMIT PULL REQUESTS HERE

Resources

License

Stars

Watchers

Forks

Packages

No packages published