|Version 69 (modified by simonpj, 3 years 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.
First, 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.
Subscribe to the cvs-ghc mailing list. This list gets an email for every commit that is made, and reports generated by the automated nightly builders, and it is also the place to discuss ongoing development of GHC. The list is high volume, so you probably want to at least filter it into a separate folder/label.
Talk to other GHC contributors.
Read the GHC reading list.
These 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.
- 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
- Using the Bug Tracker: see Using the Bug Tracker
- Coding style: When you are editing GHC's source code, please follow our coding guidelines:
- Testing: all patches that go into GHC must first pass validation, which ensures that a basic build works and the regression test suite passes.
- Using Darcs: Our conventions and some useful tips for using darcs are here: Using Darcs.