diff --git a/Library/Homebrew/language/haskell.rb b/Library/Homebrew/language/haskell.rb index 8680df3a1e..b2aa1c5054 100644 --- a/Library/Homebrew/language/haskell.rb +++ b/Library/Homebrew/language/haskell.rb @@ -45,13 +45,17 @@ module Language end def cabal_install(*args) + # cabal hardcodes 64 as the maximum number of parallel jobs + # https://github.com/Homebrew/homebrew/issues/49509 + make_jobs = ENV.make_jobs > 64 ? 64 : ENV.make_jobs + # cabal-install's dependency-resolution backtracking strategy can easily # need more than the default 2,000 maximum number of "backjumps," since # Hackage is a fast-moving, rolling-release target. The highest known # needed value by a formula at this time (February 2016) was 43,478 for # git-annex, so 100,000 should be enough to avoid most gratuitous # backjumps build failures. - system "cabal", "install", "--jobs=#{ENV.make_jobs}", "--max-backjumps=100000", *args + system "cabal", "install", "--jobs=#{make_jobs}", "--max-backjumps=100000", *args end def cabal_configure(flags)