Upgrading packages/Updating to GHC 6.10
Revision as of 05:22, 9 October 2008
A list of things that need updating when porting packages to newer library/cabal versions.
If you maintain a Haskell package this is for you. For older versions of this document:
Updating to GHC 6.10 and Cabal 1.6
When upgrading to GHC 6.10, any of your packages that worked against the base-3 library will continue to work. GHC 6.10 provides both the old base-3 library and the new base-4.
To ensure your old code continues to work, you can have the code compile and link against base-3, and then, over time, migrate code to the base-4 series.
1 Adding base-3 constraints
How to do this depends on how you build your Haskell code. We'll start with the most simplistic build mechanisms. cabal-install, the most sophisticated tool, will sort this all out for you anyway, so things should change.
1.1 ghc --make
Force use of package base-3 when using --make,
ghc --make --package base-22.214.171.124
If you build your packages with the 'runhaskell Setup.hs configure' method, then you can force the use of base-3,
It is worth upgrading cabal-install immediately (maybe before installing GHC). This way you can use the smart dependency solver to work out what to install for you.
Then build cabal-install.
You can also override the dependencies when using the 'cabal' binary, with
2 Changes in base 4
3 Backwards compatibility
The new, suggested Cabal version range syntax,
is not backwards compatible with older versions of Cabal. Users will need to upgrade to the newer Cabal to build packages that start using this syntax.