[Hackage] #447: build multiple packages in parallel

Hackage cvs-ghc at haskell.org
Sun Nov 6 00:19:31 CET 2011


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

Comment(by refold):

 Attached are my patches that [http://dissocial.st/blog/2011-08-22-GSoC-
 Final parallelise cabal-install's 'install' command].

 Sorry for sending them as a single large bundle - ideally I would like
 to split the patch series, but `darcs send` makes it hard by ignoring
 depended-upon patches. Additionally, it's hard to destructively edit
 history in Darcs, so instead of obliterating two unnecessary patches
 (changes to `README` and `cabal-install.cabal`) I undid those changes with
 a "merge" patch.

 The patch series logically consists of three parts (in chronological
 order):

 1) From the first patch up to the "Parallelise the `install` command"
 patch

 Implements the basic parallel framework as described
 [http://dissocial.st/blog/2011-06-03-GSocIntroduction here]. Changes
 are a bit more pervasive than expected because of Cabal's internal
 assumption that the current working directory is the same as the directory
 of the
 package currently being built.

 2) From the end of the previous part up to the "Implement output
 serialisation (client bits)." patch

 Implements output serialisation - since we don't want the console
 output to be garbled, all printing should be done from a single
 thread. This is done by changing all code called from
 D.C.I.executeInstallPlan to use callbacks instead of standard output
 functions (debug/info/...).

 3) Bugfixes and polishing (remaining patches)

 During this stage I was concentrated on testing and fixing bugs and
 didn't add any new functionality.

 My patches are also available in a [http://darcsden.com/23Skidoo/Cabal
 separate Darcs repository].

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



More information about the cabal-devel mailing list