A parallel wrapper for 'ghc --make'
'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. 'ghc-parmake' works by extracting a module dependency graph with 'ghc -M' and then running multiple 'ghc -c' processes in parallel. To set the number of concurrent jobs, use the '-j' option.
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).
To use it with cabal, try cabal build --with-ghc=ghc-parmake --ghc-options="-j N".
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. - Tested only on Linux.
