# Difference between revisions of "Upgrading packages/Updating to GHC 6.10"

DonStewart (talk | contribs) (→Updating to GHC 6.10 and Cabal 1.6) |
DonStewart (talk | contribs) |
||

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

+ | |||

+ | 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. | ||

+ | |||

+ | == 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 === | ||

+ | |||

+ | If you build your packages with the 'runhaskell Setup.hs configure' | ||

+ | method, then you can force the use of base-3, | ||

+ | |||

+ | --constraint="base<4" | ||

=== cabal-install=== | === cabal-install=== | ||

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

− | + | --constraint="base<4" | |

− | |||

− | + | == 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

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

If you build your packages with the 'runhaskell Setup.hs configure' 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"

## Changes in base 4

- Exceptions