Ticket #1594 (closed proposed-project: fixed)
Build multiple Cabal packages in parallel
|Reported by:||tibbe||Owned by:|
|Difficulty:||1 person Summer||Mentor:||not-accepted|
Description (last modified by marcot) (diff)
Many developers have multi-core machines but Cabal runs the build process in a single thread, only making use of one core. If the build process could be parallelized build times could be cut by perhaps a factor of 2-8, depending on the number of cores and opportunity of parallel execution available.
Task: Add support for building packages in parallel, via a set of command line flags (e.g. -j).
- Keep a queue of available build tasks and schedule the tasks on multiple threads, while respecting task dependencies. Cabal already has an idea of what needs to be built in which order so you don't need to start from scratch.
- Adapt the program output (including logging) system so that parallel builds don't generate garbled output.
See this ticket for more information: http://hackage.haskell.org/trac/hackage/ticket/447
- Mikhail Glushenkov <the.dead.shall.rise@…>
- Marco Túlio Gontijo e Silva <marcot@…>