[Haskell-cafe] Cabal's dependence mechanism can be more available
sonoflilit at gmail.com
Fri Oct 14 22:47:27 CEST 2011
That a package builds with a certain version of another package does
not mean that the code is correct.
I once had to maintain code that used "CSV > 0.0.0.1", and it turned
out that in CSV-0.0.0.2 there wasn't a newline appended to the end of
the string anymore (in the old version there was), so the packages
compiled great together but I had a huge bug (because I was generating
a text file of empty-line separated CSV blocks for a perl script to
turn into an Excell file, and the perl now thought that it was all one
big CSV block).
Trusting the author is the best that can be done in these cases.
Sometimes the author is wrong, and then we must ask him to correct his
packages - which I do a lot. But that's life.
On Thu, Oct 13, 2011 at 4:05 PM, 吴兴博 <wuxb45 at gmail.com> wrote:
> [[ My point is on cabal, but I had to give some examples. I'm very sorry
> for the authors of the packages listed below. ]]
> The story is :
> I was trying to install a package from hackage [holumbus-mapreduce]. I use
> ghc-7.2.1 and had a hard time to install the packages that depends on.
> [holumbus-mapreduce] depends on [holumbus-distribution].
> [holumbus-distribution] depends on [hxt] and [hxt-regex-xmlschema]. etc..
> There are tens of depends that drive me into an infinite 'step in'.
> If the dependence mechanism of cabal packages is good enough and the
> author of the package built it, the success can be repeat. but it not.
> a example:
> There are hxt packages with version 9.* in hackage now.
> [holumbus-distribution] says that it depends on "hxt >= 8.2".
> But I had to add "< 9" to make it compiled. Maybe when
> holumbus-distribution was released, there was no hxt 9.*.
> some packages depends on "haskell98 <2"
> I just removed this line, and it compiled, and id I use "haskell98",
> the newer "haskell98-2.*" will clash with new "base"
> here is a piece of message from `runhaskell Setup configure`
> Configuring Holumbus-Distribution-0.1.1...
> Warning: This package indirectly depends on multiple versions of the
> package readline-188.8.131.52 requires process-184.108.40.206
> package hslogger-1.1.5 requires process-220.127.116.11
> package haskell98-18.104.22.168 requires process-22.214.171.124
> but finally I found that "readline" does not refuse to be compiled with
> newer "process" at all, I use --reinstall to adjust "readline" and
> "hslogger" play with "process-126.96.36.199"
> It is like C++'s multi-deriving or something like that, I'm not sure of
> the technique word. A what to contain B,C ; B contains D' and C contains
> D'' ; but there can be only One D in A.
> All I did is download the all packages, edit its depends: and compile and
> install it.
> If Cabal can remember some certain package-version combination of the
> successful builds, Sure It will make hackage more available to users.
> based on some success build, it can also try to make promotion to
> depends-packages, and provides newest & can build packages.
> Wu Xingbo
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe