-
Herbert Valerio Riedel authored
See merge commit 66693401 This commit also adds a check for a left-over testsuite/.git folder to sync-all This way, the first time sync-all is called after updating to a post-testsuite-merge (see #8545) state of ghc.git, the sync-all script aborts with an error message if a `testsuite/.git` folder is detected and thus forces the user to take action. Signed-off-by:
Herbert Valerio Riedel <hvr@gnu.org>
Herbert Valerio Riedel authoredSee merge commit 66693401 This commit also adds a check for a left-over testsuite/.git folder to sync-all This way, the first time sync-all is called after updating to a post-testsuite-merge (see #8545) state of ghc.git, the sync-all script aborts with an error message if a `testsuite/.git` folder is detected and thus forces the user to take action. Signed-off-by:
Herbert Valerio Riedel <hvr@gnu.org>
Contributing to the Glasgow Haskell Compiler
So you've decided to hack on GHC, congratulations! We hope you have a rewarding experience. This file will point you in the direction of information to help you get started right away.
The GHC Developer's Wiki
The home for GHC hackers is our Trac instance, located here:
http://ghc.haskell.org/trac/ghc
From here, you can file bugs (or look them up,) use the wiki, view the
git
history, among other things. Of particular note is the building
page, which has the high level overview of the build process and how
to get the source:
http://ghc.haskell.org/trac/ghc/wiki/Building
Contributing patches to GHC in a hurry
Make sure your system has the necessary tools to compile GHC. You can find an overview here:
http://ghc.haskell.org/trac/ghc/wiki/Building/Preparation
Next, clone the repository and all the associated libraries:
$ git clone http://git.haskell.org/ghc.git
$ cd ghc
$ ./sync-all get
First copy mk/build.mk.sample
to mk/build.mk
and ensure it has
your preferred build settings. (You probably want to at least set
BuildFlavour
to quick
):
$ cp mk/build.mk.sample mk/build.mk
$ ... double-check mk/build.mk ...
Now build. If you have multiple cores, you should always use them to speed up compilation:
$ ./boot
$ ./configure
$ make -jN # <N> is the number of cores you have.
You can use the ./inplace/bin/ghc-stage2
binary to play with the
newly built compiler.
Now, hack on your copy and rebuild (with make
) as necessary.
Then start by making your commits however you want. When you're done, you
can use git format-patch
to create a series of .patch
files you
can give to us. In this example, we'll assume I'm on a bugfix
branch
and want to submit my patches:
$ git branch
* bugfix
master
$ git format-patch master -o patches
...
$