Version 89 (modified by jstolarek, 5 months ago) (diff)


Working on GHC

GHC is a BSD-licensed open-source project, and we welcome your help in making it better. This page has pointers to information you'll need.

  • Read the GHC Newcomers page, dedicated to helping newcomers in getting started and tackling their first bugs.
  • Register an account on this GHC Trac, so that you can edit pages. Editing advice is in the "Wiki" links in the green sidebar on the left of every page
  • Subscribe to the ghc-devs mailing list. This list is the place to discuss ongoing development of GHC. ghc-commits gets an email for every commit that is made, and reports generated by the automated nightly builders go to ghc-builds. Additionally, trac ticket discussions can be followed in ghc-tickets. These lists are high volume, so you probably want to at least filter them into separate folders/labels.
  • Read the building guide (link always in the left hand margin) to learn how to build and test GHC.

The following pages guide you step-by-step through making a contribution:

  • Fix a bug in GHC. You can see all open bugs by clicking on "All bugs" in the left margin of this page. At the top of the list is a filter you can use to refine your search. Also check out the (currently stalled) GHC bug sweep. Perhaps you can un-stall it.
  • Add a new feature to GHC. You can see all open feature requests by clicking on "All bugs" in the left margin of this page. At the top of the list is a filter you can use to refine your search.

Working conventions

  • Using Git: Our conventions and some useful tips for using git are here: Using Git.
  • Releases and branches: Our conventions for making releases and how the branches are managed: Releases
  • Testing: all patches that go into GHC must first pass validation, which ensures that a basic build works and the regression test suite passes.
    • The policy on validating patches, and how to perform validation, is at: Testing Patches.
    • Details about the regression test suite, and how to use it are at: Running Tests.
  • Licensing: make sure you are familiar with GHC's Licensing. Unless you say otherwise, we will assume that if you submit a contribution to GHC, then you intend to supply it to us under the same license as the existing code. However, we do not ask for copyright attribution; you retain copyright on any contributions you make, so feel free to add your copyright to the top of any file in which you make non-trivial changes.

Tips and Tricks

  • To have an easier time looking up tickets and searching trac, use the browser tips page to make your search and lookups for Trac tickets substantially easier.
  • If you use Emacs, see Emacs for some useful stuff to put in your .emacs file.

Old stuff

  • Using Darcs: Our conventions and some useful tips for using darcs are here: Using Darcs.