Version 4 (modified by simonmar, 11 years ago) (diff)


Coding conventions

There are some documents on coding style:

Submitting patches

To submit patches to the developers, please use darcs send. You don't need any special permission to do this.

Committing changes

If you have permission to push patches directly to the repository (pretty easy to get, just demonstrate your competence by sending us a patch or two first), then you can use darcs push:

  $ darcs push <account>

(change ghc to the name of the repository if you're pushing changes from one of the sub-repositories, like testsuite, or a package such as base. Note: darcs push requires that SSH is working and can log in to your account on

Do not forget to darcs record your changes first!

When to record/push

Guidelines for pushing patches to GHC:

  • Try to make small patches (i.e. work in consistent increments).
  • If possible, push often. This helps to avoid conflicts.
  • Rather than push conflicting patches followed by conflict resolutions, use amend-record to make a single patch. Darcs currently doesn't handle conflicts well, so we are trying to keep the HEAD clean of conflicts for now. It doesn't matter so much on the stable branches though.
  • Try not to break anything. At the minimum, the tree should build on your system with the patch, better still test your changes before pushing. The nightly builds will show up any breakage on other platforms.

    If you do end up breaking the build then it's not the end of the world, so don't sweat about it too much. History shows that even people called Simon are not immune from doing so!
  • Discuss anything you think might be controversial before pushing it.