[Hackage] #789: build-depends on packages that provide no library

Hackage cvs-ghc at haskell.org
Tue Apr 10 16:03:15 CEST 2012

#789: build-depends on packages that provide no library
  Reporter:  duncan              |        Owner:                    
      Type:  defect              |       Status:  new               
  Priority:  normal              |    Milestone:  cabal-install-0.16
 Component:  cabal-install tool  |      Version:  HEAD              
  Severity:  normal              |     Keywords:  solver            
Difficulty:  unknown             |   Ghcversion:                    
  Platform:                      |  
Changes (by kosmikus):

  * keywords:  => solver
  * milestone:  cabal-install-0.14 => cabal-install-0.16


 I'm not prepared to add this as an option to the modular solver just yet.
 In principle, it wouldn't be hard. We could have a configurable option
 that excludes no-library packages while solving.

 The tricky issue is the following: for user-specified goals, we want no-
 library packages to be available, but *only* if they're not also build-
 dependencies of other user-specified goals. However, while building the
 tree, we do not know the complete reverse dependencies of the goal nodes
 yet. We only have the knowledge for everything above the current node. So
 we can, for example, say with certainty that a package is a user goal, but
 we cannot say with certainty that we won't discover that it's a build-
 dependency of another package later.

 This implies that we cannot make the decision whether to exclude no-lib
 versions of a package or not yet, and knowledge we acquire later can
 invalidate the path of the tree we're currently on.

 While this can also be implemented in the modular solver, it's subtle
 enough so that I don't want to do it before the 0.14 release.

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

More information about the cabal-devel mailing list