Personal tools

Upgrading packages

From HaskellWiki

(Difference between revisions)
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