Difference between revisions of "Upgrading packages"

From HaskellWiki
Jump to: navigation, search
(Removed text about GHC 7.0)
(Rewrite of most of the page)
Line 1: Line 1:
A list of things that need updating when porting packages to newer library/cabal versions.
 
  +
Information about adapting packages to new a version of GHC or Cabal can be found on the following pages:
   
If you maintain a Haskell package this is for you.
 
  +
* [https://ghc.haskell.org/trac/ghc/wiki/Migration Migration Guide]; this page provides information to help migrating between major GHC releases.
For older versions of this document:
 
 
* [https://github.com/haskell/cabal/wiki/2.0-migration-guide 2.0 migration guide]; updating for Cabal 2.0
 
* [https://github.com/haskell/cabal/wiki/2.0-migration-guide 2.0 migration guide] (upgrading for Cabal 2.0)
 
 
* [[/Updating to GHC 7]]
 
* [[/Updating to GHC 7]]
 
* [[/Updating to GHC 6.10]]
 
* [[/Updating to GHC 6.10]]
 
* [[/Updating to GHC 6.8]]
 
* [[/Updating to GHC 6.8]]
  +
  +
Detailed information about changes in the latest GHC release can be found in the [https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/index.html GHC User’s Guide]
   
 
Most new tips for fixing build failures are tracked at https://github.com/haskell-infra/hackage-trustees/blob/master/cookbook.md
 
Most new tips for fixing build failures are tracked at https://github.com/haskell-infra/hackage-trustees/blob/master/cookbook.md
   
'''Compatibility with older GHC'''
+
== Compatibility with older GHC ==
   
Use cabal's conditional thingy, checking on impl(ghc >= x.yz). E.g:
+
To maintain compatibility with older versions of GHC, use a conditional block in the .cabal file, checking on implementation (ghc >= x.y.z). For example:
   
ghc-options: -Wall -fexcess-precision -funbox-strict-fields
 
 
if impl(ghc >= 6.12)
 
if impl(ghc >= 6.12)
 
ghc-options: -fno-warn-unused-do-bind
 
ghc-options: -fno-warn-unused-do-bind

Revision as of 16:24, 19 March 2018

Information about adapting packages to new a version of GHC or Cabal can be found on the following pages:

Detailed information about changes in the latest GHC release can be found in the GHC User’s Guide

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

Compatibility with older GHC

To maintain compatibility with older versions of GHC, use a conditional block in the .cabal file, checking on implementation (ghc >= x.y.z). For example:

   if impl(ghc >= 6.12)
       ghc-options:     -fno-warn-unused-do-bind