[Haskell-cafe] Upgrading ByteString causes (seemingly) impossible RTS linker errs

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Sun Jan 27 18:55:07 EST 2008


On Sun, 2008-01-27 at 12:54 -0800, Adam Langley wrote:
> On Jan 27, 2008 12:24 PM, Don Stewart <dons at galois.com> wrote:
> > It should be possible to specify that your lib depends on exactly
> > 0.9.0.1 in the .cabal file.
> 
> In the same general area. When you upgrade something like bytestring
> and have to update everything that was built with it (otherwise you'll
> get type errors because the ByteString types from the two different
> versions are different) cabal-install is of no help. Since it already
> believes that I have those packages installed (correctly) if refuses
> to install them again so I have to do it all by hand.
> 
> I realise that I should be sending darcs patches, not bug reports, but
> a --force to reinstall an already installed package would be great. I
> guess, ideally, cabal-install would know to rebuild everything that
> depends on x when I upgrade x.

This issue is filed as:

http://hackage.haskell.org/trac/hackage/ticket/220

> darcs patches might follow if I can get round to it (or the next time
> I update bytestring...)

Great. The first step is to take advantage of the new feature in ghc-pkg
in ghc-6.8.3 to enable us to get a complete database for all installed
packages, rather than just a list of package names and versions.

The following step would be to detect and warn about inconsistent
versions of deps.

The hardest part is integrating this constraint into the cabal-install
package search / dependency resolution algorithm, and if the constraint
turns out to be unsatisfiable, working out which packages have to be
rebuilt to get a consistent set of dependencies.

Of course in the case cited here we have to either make everything stick
with bytestring-0.9.0.1 or try and rebuild the ghc package against the
newer bytestring, but there is no .cabal package available for the ghc
package. In principle I think there could be, there just isn't at the
moment.

Duncan



More information about the Haskell-Cafe mailing list