# ghc-parmake

`ghc-parmake` is a parallel wrapper for `ghc --make` intended to work as its
drop-in replacement. It can build your Haskell program in parallel using
multiple cores and will be integrated with `cabal build` eventually (though I
also plan to support the standalone version).

`ghc-parmake` works by first extracting a module dependency graph with `ghc -M`
and then running multiple `ghc -c` processes in parallel. Currently, it can
build itself and some small test programs (see the `tests` directory).

To set the number of concurrent jobs, use the `-j` option.

## Usage

    ghc-parmake OPTS FILES

    -j N             - Run N jobs in parallel.
    --ghc-path=PATH  - Set the path to the ghc executable.

    -vv[N]           - Set verbosity to N (only for ghc-parmake). 
                       N is 0-3, default 1.
    -v[N]            - Set verbosity to N (both for GHC and ghc-parmake itself).
    --help           - Print usage information.
    -V               - Print version information.

Other options are passed to GHC unmodified.

## Known limitations

* Build fails when `-odir` != `-hidir`.
* `-hisuf`/`-osuf` are not supported (needed when building libs for profiling).
* Tested only on Linux.

# ghc-parmake

[![Build Status](https://secure.travis-ci.org/23Skidoo/ghc-parmake.png?branch=master)](http://travis-ci.org/23Skidoo/ghc-parmake)

`ghc-parmake` is a parallel wrapper for `ghc --make` intended to work as its
drop-in replacement. It can build your Haskell program in parallel using
multiple cores and will be integrated with `cabal build` eventually (though I
also plan to support the standalone version).

`ghc-parmake` works by first extracting a module dependency graph with `ghc -M`
and then running multiple `ghc -c` processes in parallel. Currently, it can
build itself and some small test programs (see the `tests` directory).

To set the number of concurrent jobs, use the `-j` option.

## Usage

    ghc-parmake OPTS FILES

    -j N             - Run N jobs in parallel.
    --ghc-path=PATH  - Set the path to the ghc executable.

    -vv[N]           - Set verbosity to N (only for ghc-parmake). 
                       N is 0-3, default 1.
    -v[N]            - Set verbosity to N (both for GHC and ghc-parmake itself).
    --help           - Print usage information.
    -V               - Print version information.

Other options are passed to GHC unmodified.

## Known limitations

* Build fails when `-odir` != `-hidir`.
* `-hisuf`/`-osuf` are not supported (needed when building libs for profiling).
* Tested only on Linux.

Add a Travis-CI status icon.
Add a Travis-CI status icon.
