haskell / haskell/cabal

Use `ghc -j` when building a single package

Open
#4,486 5 comments 0 reactions 0 assignees View on GitHub
Cabal: cmd/build re: ghc-options type: enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.