Use `ghc -j` when building a single package
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
cabal doesn't pass `-j` to GHC, to avoid launching too many processes. But that's the case even when it builds *one* package, in particular, the last one, after all dependencies are done. That's annoying when running `cabal install` on big packages, say `Agda`.
And while this is clearly a hack, it guarantees that not too many processes are created.
By https://github.com/haskell/cabal/issues/976#issuecomment-298223990, `cabal build` can pass `-j` but `cabal install` doesn't.
Contributor guide
Research direction
Start by tracing the cabal install build path and compare it with the cabal build behavior described in the issue. The change is done when building the final single package can pass -j to GHC without creating excessive processes; verify this with the relevant build tests or a large-package installation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- build-system, cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100