Personal tools

Upgrading packages/Updating to GHC 6.10

From HaskellWiki

< Upgrading packages(Difference between revisions)
Jump to: navigation, search
(Updating to GHC 6.10 and Cabal 1.6)
Line 2: Line 2:
   
 
If you maintain a Haskell package this is for you.
 
If you maintain a Haskell package this is for you.
 
 
For older versions of this document:
 
For older versions of this document:
   
 
* [[/Updating to GHC 6.8]]
 
* [[/Updating to GHC 6.8]]
   
== Updating to GHC 6.10 and Cabal 1.6 ==
+
'''Updating to GHC 6.10 and Cabal 1.6'''
   
Main changes:
+
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.
   
* base-3 '''and''' base-4 will be installed, meaning you can always
+
To ensure your old code continues to work, you can have the code compile
force packages to build against the old base.
+
and link against base-3, and then, over time, migrate code to the base-4
  +
series.
   
=== cabal-install===
+
== 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.
  +
  +
=== ghc --make ===
  +
  +
Force use of package base-3 when using --make,
  +
  +
ghc --make --package base-3.0.3.0
   
 
===runhaskell ===
 
===runhaskell ===
   
Packages that require base-3 (e.g. for old implementations of the
+
If you build your packages with the 'runhaskell Setup.hs configure'
exceptoin type, can be built using runhaskell Setup.hs with:
+
method, then you can force the use of base-3,
  +
  +
--constraint="base<4"
  +
  +
=== cabal-install===
  +
  +
No change required. Should it be necessary to override, use
  +
  +
--constraint="base<4"
   
--constraint="base==3.*"
+
== Changes in base 4 ==
   
  +
* Exceptions
   
 
[[Category:Libraries]]
 
[[Category:Libraries]]

Revision as of 04:06, 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.

Contents

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-3.0.3.0

1.2 runhaskell

If you build your packages with the 'runhaskell Setup.hs configure' method, then you can force the use of base-3,

   --constraint="base<4"

1.3 cabal-install

No change required. Should it be necessary to override, use

   --constraint="base<4"

2 Changes in base 4

  • Exceptions