[Hackage] #288: the package indexes are very slow

Hackage trac at galois.com
Sat Jun 7 10:31:46 EDT 2008


#288: the package indexes are very slow
---------------------------------+------------------------------------------
  Reporter:  duncan              |        Owner:         
      Type:  defect              |       Status:  new    
  Priority:  normal              |    Milestone:         
 Component:  cabal-install tool  |      Version:  1.2.3.0
  Severity:  normal              |     Keywords:         
Difficulty:  hard (< 1 day)      |   Ghcversion:  6.8.2  
  Platform:                      |  
---------------------------------+------------------------------------------
 In a large run, eg trying to make a plan to install 560 packages from
 hackage:

 {{{
 $ cabal install --dry-run $(cat pkgs)
 }}}

 it turns out (according to the ghc profile), 91% of the time is spent
 reading the index of installed and available packages.

 The ghc package index is a couple of massive text files in `Read/Show`
 format so that takes for ever to read. The available package index is the
 tarball of .cabal files and our .cabal file parser is really slow.

 For smaller runs it's not so bad:

 {{{
 $ cabal install --dry-run xmonad
 }}}

 since we only have to inspect the subset of the available package index
 that make up xmonad's transitive deps (any versions thereof), so that
 allows us to avoid forcing most of the index.

 http://hackage.haskell.org/trac/ghc/ticket/2089

 might help us, but then again maybe not if we still have to parse the
 result of calling ghc-pkg since that will give us another text format.

 For our own package index, perhaps we should be generating a cache in some
 other format when we download the package index.

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


More information about the cabal-devel mailing list