[Hackage] #447: build multiple packages in parallel

Hackage cvs-ghc at haskell.org
Mon Apr 2 02:48:52 CEST 2012

#447: build multiple packages in parallel
  Reporter:  duncan              |        Owner:  refold            
      Type:  enhancement         |       Status:  assigned          
  Priority:  high                |    Milestone:  cabal-install-0.16
 Component:  cabal-install tool  |      Version:                    
  Severity:  normal              |     Keywords:                    
Difficulty:  normal              |   Ghcversion:  6.8.3             
  Platform:                      |  

Comment(by refold):

 I've updated my parallel patches (see attachment). Patches apply cleanly
 to the current mainline. The parallel code path now always uses the
 external setup method (via `Setup.hs`), so the required changes to the
 Cabal lib are minimised. There are still some traces of output
 serialisation, though.

 Some numbers:

 $ time cabal install -j 1 alex happy
 real    1m19.236s
 user    1m1.330s
 sys     0m10.510s

 $ time cabal install -j 4 alex happy
 real    0m52.106s
 user    1m10.680s
 sys     0m15.030s

 $ time cabal install -j 1 yesod

 real    19m14.913s
 user    15m59.420s
 sys     1m25.650s

 $ time cabal install -j 4 yesod

 real    14m8.599s
 user    21m36.530s
 sys     4m5.650s

 I also tested the Nov 2011 version of the code (tries to use the internal
 setup method, requires pervasive changes to Cabal lib):

 $ time cabal install -j 4 alex happy
 real    0m45.503s
 user    1m4.040s
 sys     0m10.100s

 $ time cabal install -j 4 yesod
 real    10m41.840s
 user    17m6.560s
 sys     1m33.040s

 Compiling and linking all these `Setup.hs` files does add some noticeable

 If these patches get accepted, I'll start working on improving the UI.

Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/447#comment:8>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects

More information about the cabal-devel mailing list