Upgrading packages

From HaskellWiki
Revision as of 14:57, 19 March 2018 by Henk-Jan van Tuyl (talk | contribs) (Added link to "2.0 migration guide"; changed link "/Updating to GHC 7.6" to "/Updating to GHC 7"; swapped links)
Jump to: navigation, search

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:

Most new tips for fixing build failures are tracked at https://github.com/haskell-infra/hackage-trustees/blob/master/cookbook.md

This page only tracks updates through 7.0 and earlier.

Updating to GHC 7.0

When upgrading to GHC 7.0, any of your packages that worked against the base-3 library will need to be updated to the base-4.

Compatibility with older GHC

Use cabal's conditional thingy, checking on impl(ghc >= x.yz). E.g:

   ghc-options:         -Wall -fexcess-precision -funbox-strict-fields
   if impl(ghc >= 6.12)
       ghc-options:     -fno-warn-unused-do-bind