External Publication
Visit Post

[Well-Typed Blog] Reducing Haskell parallel build times using semaphores

Haskell Community [Unofficial] February 21, 2026
Source

mpilgrem:

Is there any reason not to use semaphore by default, when it is supported (GHC 9.8.1 or later with Cabal-3.12.0.0 or later)?

One remaining issue for cabal-install is https://github.com/ghc-proposals/ghc-proposals/pull/673. If GHC is built against libc (say, it’s a Debian bindist) and Cabal is build against musl (say, it’s an Alpine bindist), the underlying implementations of semaphores will be incompatible. In such scenario Cabal fails hard.

That said, I think that it’s wrong to fail hard and instead a graceful degradation to non-semaphore mode should be implemented. If Stack implements such graceful degradation, there should be no reason not to enable semaphores by default.

Discussion in the ATmosphere

Loading comments...