On 2009-11-09 12:39, Duncan Coutts wrote:
You'll be glad to know this is addressed in Cabal-1.8, though not in a
fully automatic way. The problem with sharing automatically is knowing
when it is safe to do so and when it is not. Each component that shares
a source file can use different compiler options, cpp flags, and include
dirs (and perhaps other stuff that we cannot easily track). Also, when
you link it into a library you actually compile it differently than when
you compile it into an executable (the -package-name flag is different).

So what we've done is to let executables depend on libraries. That makes
the sharing explicit. At some point I also want to add support for
private libs which would make this feature useful in more cases.

I was hoping that I could make use of this feature now:

 $ cabal --version
 cabal-install version 0.7.5
 using version 1.8.0.2 of the Cabal library

However, when I try to use it I get the following error:

 cabal: internal error: could not construct a valid install plan.
 The proposed (invalid) plan contained the following problems:
 The following packages are involved in a dependency cycle ...

The relevant tests in the Cabal source tree also fail for me:

 PackageTests/BuildDeps/InternalLibrary[123]

Is this feature supposed to work now, or has it been postponed?

--
/NAD
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to