diff options
Diffstat (limited to 'pkgs/top-level/haskell-defaults.nix')
-rw-r--r-- | pkgs/top-level/haskell-defaults.nix | 404 |
1 files changed, 97 insertions, 307 deletions
diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index b5a74e255ce..f40ce2bf6df 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -10,212 +10,79 @@ { makeOverridable, lowPrio, hiPrio, stdenv, pkgs, newScope, config, callPackage } : rec { - # Preferences functions. - # - # Change these if you want to change the default versions of packages being used - # for a particular GHC version. - - ghcHEADPrefs = - self : super : super.haskellPlatformArgs_future self // { - haskellPlatform = null; - extensibleExceptions = self.extensibleExceptions_0_1_1_4; - binary_0_7_1_0 = null; - }; - - ghc763Prefs = - self : super : super.haskellPlatformArgs_2013_2_0_0 self // { - haskellPlatform = self.haskellPlatform_2013_2_0_0; - extensibleExceptions = self.extensibleExceptions_0_1_1_4; - }; - - ghc742Prefs = - self : super : super.haskellPlatformArgs_2012_4_0_0 self // { - haskellPlatform = self.haskellPlatform_2012_4_0_0; - cabalInstall_1_16_0_2 = super.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; }; - cabal2nix = super.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; }; - haskeline = self.haskeline_0_7_1_1; - terminfo = self.terminfo_0_3_2_6; - }; - - ghc741Prefs = - self : super : super.haskellPlatformArgs_2012_2_0_0 self // { - haskellPlatform = self.haskellPlatform_2012_2_0_0; - cabalInstall_1_16_0_2 = super.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; }; - cabal2nix = super.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; }; - haskeline = self.haskeline_0_7_1_1; - terminfo = self.terminfo_0_3_2_6; - }; - - ghc722Prefs = - self : super : super.haskellPlatformArgs_2012_2_0_0 self // { - haskellPlatform = self.haskellPlatform_2012_2_0_0; - deepseq = self.deepseq_1_3_0_2; - cabalInstall_0_14_0 = super.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; }; - cabalInstall_1_16_0_2 = super.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; }; - cabalInstall_1_20_0_1 = super.cabalInstall_1_20_0_1.override { HTTP = self.HTTP_4000_2_14; }; - cabalInstall = super.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; }; - cabal2nix = super.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; }; - binary = self.binary_0_6_0_0; - prettyShow = self.prettyShow_1_2; - quickcheckIo = super.quickcheckIo.override { - HUnit = self.HUnit_1_2_5_2; - QuickCheck = self.QuickCheck2; - }; - hspecExpectations = super.hspecExpectations.override { - HUnit = self.HUnit_1_2_5_2; - }; - haskeline = self.haskeline_0_7_1_1; - terminfo = self.terminfo_0_3_2_6; - }; - - ghc721Prefs = ghc722Prefs; - - ghc704Prefs = - self : super : super.haskellPlatformArgs_2011_4_0_0 self // { - haskellPlatform = self.haskellPlatform_2011_4_0_0; - cabalInstall_0_14_0 = super.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; }; - cabalInstall_1_16_0_2 = super.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; }; - monadPar = self.monadPar_0_1_0_3; - jailbreakCabal = super.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; }; - cabal2nix = super.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; }; - prettyShow = self.prettyShow_1_2; - binary = self.binary_0_6_0_0; - Cabal_1_18_1_3 = super.Cabal_1_18_1_3.override { deepseq = self.deepseq_1_3_0_2; }; - quickcheckIo = super.quickcheckIo.override { - HUnit = self.HUnit_1_2_5_2; - QuickCheck = self.QuickCheck2; - }; - hspecExpectations = super.hspecExpectations.override { - HUnit = self.HUnit_1_2_5_2; - }; - haskeline = self.haskeline_0_7_1_1; - terminfo = self.terminfo_0_3_2_6; - }; - - ghc703Prefs = - self : super : super.haskellPlatformArgs_2011_2_0_1 self // { - haskellPlatform = self.haskellPlatform_2011_2_0_1; - cabalInstall_0_14_0 = super.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; }; - cabalInstall_1_16_0_2 = super.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; zlib = self.zlib_0_5_3_3; }; - monadPar = self.monadPar_0_1_0_3; - jailbreakCabal = super.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; }; - cabal2nix = super.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; }; - prettyShow = self.prettyShow_1_2; - binary = self.binary_0_6_0_0; - Cabal_1_18_1_3 = super.Cabal_1_18_1_3.override { deepseq = self.deepseq_1_3_0_2; }; - quickcheckIo = super.quickcheckIo.override { - HUnit = self.HUnit_1_2_5_2; - QuickCheck = self.QuickCheck2; - }; - hspecExpectations = super.hspecExpectations.override { - HUnit = self.HUnit_1_2_5_2; - }; - haskeline = self.haskeline_0_7_1_1; - terminfo = self.terminfo_0_3_2_6; - }; - - ghc702Prefs = ghc701Prefs; + # haskell-packages.nix provides the latest possible version of every package, + # and this file overrides those version choices per compiler when appropriate. + # Older compilers inherit the overrides from newer ones. - ghc701Prefs = - self : super : super.haskellPlatformArgs_2011_2_0_0 self // { - haskellPlatform = self.haskellPlatform_2011_2_0_0; - cabalInstall_0_14_0 = super.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; }; - cabalInstall_1_16_0_2 = super.cabalInstall_1_16_0_2.override { Cabal = self.Cabal_1_16_0_3; zlib = self.zlib_0_5_3_3; }; - monadPar = self.monadPar_0_1_0_3; - jailbreakCabal = super.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; }; - cabal2nix = super.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; }; - prettyShow = self.prettyShow_1_2; - binary = self.binary_0_6_0_0; - Cabal_1_18_1_3 = super.Cabal_1_18_1_3.override { deepseq = self.deepseq_1_3_0_2; }; - quickcheckIo = super.quickcheckIo.override { - HUnit = self.HUnit_1_2_5_2; - QuickCheck = self.QuickCheck2; - }; - hspecExpectations = super.hspecExpectations.override { - HUnit = self.HUnit_1_2_5_2; - }; - haskeline = self.haskeline_0_7_1_1; - terminfo = self.terminfo_0_3_2_6; - }; - - ghc6123Prefs = ghc6122Prefs; - - ghc6122Prefs = - self : super : super.haskellPlatformArgs_2010_2_0_0 self // { - haskellPlatform = super.haskellPlatform_2010_2_0_0; - mtl1 = self.mtl_1_1_0_2; - monadPar = self.monadPar_0_1_0_3; - deepseq = self.deepseq_1_1_0_2; - # deviating from Haskell platform here, to make some packages (notably statistics) compile - jailbreakCabal = super.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; }; - cabal2nix = super.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; }; - binary = self.binary_0_6_0_0; - cabalInstall_1_16_0_2 = super.cabalInstall_1_16_0_2.override { - Cabal = self.Cabal_1_16_0_3; - zlib = self.zlib_0_5_3_3; - mtl = self.mtl_2_1_2; - HTTP = self.HTTP_4000_1_1.override { mtl = self.mtl_2_1_2; }; - }; - quickcheckIo = super.quickcheckIo.override { - HUnit = self.HUnit_1_2_5_2; - QuickCheck = self.QuickCheck2; - }; - hspecExpectations = super.hspecExpectations.override { - HUnit = self.HUnit_1_2_5_2; - }; - haskeline = self.haskeline_0_7_1_1; - terminfo = self.terminfo_0_3_2_6; - }; + ghcHEADPrefs = self : super : super // { + }; - ghc6121Prefs = - self : super : super.haskellPlatformArgs_2010_1_0_0 self // { - haskellPlatform = self.haskellPlatform_2010_1_0_0; - mtl1 = self.mtl_1_1_0_2; - extensibleExceptions = self.extensibleExceptions_0_1_1_0; - deepseq = self.deepseq_1_1_0_2; - monadPar = self.monadPar_0_1_0_3; - # deviating from Haskell platform here, to make some packages (notably statistics) compile - jailbreakCabal = super.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; }; - cabal2nix = super.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; }; - binary = self.binary_0_6_0_0; - cabalInstall_1_16_0_2 = super.cabalInstall_1_16_0_2.override { - Cabal = self.Cabal_1_16_0_3; - zlib = self.zlib_0_5_3_3; - mtl = self.mtl_2_1_2; - HTTP = self.HTTP_4000_1_1.override { mtl = self.mtl_2_1_2; }; - }; - quickcheckIo = super.quickcheckIo.override { - HUnit = self.HUnit_1_2_5_2; - QuickCheck = self.QuickCheck2; - }; - hspecExpectations = super.hspecExpectations.override { - HUnit = self.HUnit_1_2_5_2; - }; - haskeline = self.haskeline_0_7_1_1; - terminfo = self.terminfo_0_3_2_6; - }; + ghc782Prefs = self : super : ghcHEADPrefs self super // { + }; - ghc6104Prefs = - self : super : super.haskellPlatformArgs_2009_2_0_2 self // { - haskellPlatform = self.haskellPlatform_2009_2_0_2; - mtl = self.mtl1; - mtl1 = self.mtl_1_1_0_2; - extensibleExceptions = self.extensibleExceptions_0_1_1_0; - text = self.text_0_11_0_6; - deepseq = self.deepseq_1_1_0_2; - monadPar = self.monadPar_0_1_0_3; - # deviating from Haskell platform here, to make some packages (notably statistics) compile - jailbreakCabal = super.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; }; - binary = self.binary_0_6_0_0; - cabalInstall_1_16_0_2 = super.cabalInstall_1_16_0_2.override { - Cabal = self.Cabal_1_16_0_3; - zlib = self.zlib_0_5_3_3; - mtl = self.mtl_2_1_2; - HTTP = self.HTTP_4000_1_1.override { mtl = self.mtl_2_1_2; }; + ghc763Prefs = self : super : ghc782Prefs self super // { + criterion = super.criterion.override { + statistics = self.statistics.override { + vectorBinaryInstances = self.vectorBinaryInstances.override { binary = self.binary_0_7_0_1; }; }; - haskeline = self.haskeline_0_7_1_1; - terminfo = self.terminfo_0_3_2_6; }; + haddock = self.haddock_2_13_2; + transformers = self.transformers_0_3_0_0; + }; + + ghc742Prefs = self : super : ghc763Prefs self super // { + aeson = super.aeson.override { blazeBuilder = self.blazeBuilder; }; + hackageDb = super.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; + haddock = self.haddock_2_11_0; + haskeline = super.haskeline.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; }; + }; + + ghc722Prefs = self : super : ghc742Prefs self super // { + deepseq = self.deepseq_1_3_0_2; + extensibleExceptions = null; # core package in ghc <= 7.4.x + haddock = self.haddock_2_9_4; + syb = self.syb_0_4_0; + }; + + ghc704Prefs = self : super : ghc722Prefs self super // { + binary = self.binary_0_7_0_1; # core package in ghc >= 7.2.2 + haddock = self.haddock_2_9_2.override { alex = self.alex_2_3_5; }; + HsSyck = self.HsSyck_0_51; + jailbreakCabal = super.jailbreakCabal.override { Cabal = self.Cabal_1_16_0_3; }; + random = null; # core package in ghc <= 7.0.x + }; + + ghc6123Prefs = self : super : ghc704Prefs self super // { + alex = self.alex_3_1_3; + cabalInstall = self.cabalInstall_1_16_0_2; + cgi = self.cgi_3001_1_7_5; + deepseq = self.deepseq_1_2_0_1; + haddock = self.haddock_2_7_2; + parallel = self.parallel_3_2_0_3; + primitive = self.primitive_0_5_0_1; + stm = self.stm_2_4_2; + syb = null; # core package in ghc < 7 + }; + + ghc6104Prefs = self : super : ghc6123Prefs self super // { + alex = self.alex_2_3_5.override { cabal = self.cabal.override { Cabal = self.Cabal; }; }; + Cabal = self.Cabal_1_16_0_3; + GLUT = self.GLUT_2_2_2_1; + haddock = self.haddock_2_4_2; + happy = super.happy.override { cabal = self.cabal.override { Cabal = self.Cabal; }; }; + hashable = self.hashable_1_1_2_5; + HTTP = super.HTTP.override { cabal = self.cabal.override { Cabal = self.Cabal; }; }; + HUnit = super.HUnit.override { cabal = self.cabal.override { Cabal = self.Cabal; }; }; + network = super.network.override { cabal = self.cabal.override { Cabal = self.Cabal; }; }; + OpenGLRaw = self.OpenGLRaw_1_3_0_0; + OpenGL = self.OpenGL_2_6_0_1; + QuickCheck = super.QuickCheck.override { cabal = self.cabal.override { Cabal = self.Cabal; }; }; + stm = self.stm_2_4_2.override { cabal = self.cabal.override { Cabal = self.Cabal; }; }; + tar = super.tar.override { cabal = self.cabal.override { Cabal = self.Cabal; }; }; + text = self.text_0_11_2_3.override { cabal = self.cabal.override { Cabal = self.Cabal; }; }; + time = self.time_1_1_2_4.override { cabal = self.cabal.override { Cabal = self.Cabal; }; }; + zlib = super.zlib.override { cabal = self.cabal.override { Cabal = self.Cabal; }; }; + }; # Abstraction for Haskell packages collections packagesFun = makeOverridable @@ -260,16 +127,6 @@ # # GHC binaries are around for bootstrapping purposes - # If we'd want to reactivate the 6.6 and 6.8 series of ghc, we'd - # need to reenable an old binary such as this. - /* - ghc642Binary = lowPrio (import ../development/compilers/ghc/6.4.2-binary.nix { - inherit fetchurl stdenv ncurses gmp; - readline = if stdenv.system == "i686-linux" then readline4 else readline5; - perl = perl58; - }); - */ - ghc6101Binary = lowPrio (callPackage ../development/compilers/ghc/6.10.1-binary.nix { gmp = pkgs.gmp4; }); @@ -298,68 +155,32 @@ # Here, we associate compiler versions with bootstrap compiler versions and # preference functions. - packages_ghc6104 = - packages { ghcPath = ../development/compilers/ghc/6.10.4.nix; - prefFun = ghc6104Prefs; - }; - - packages_ghc6121 = - packages { ghcPath = ../development/compilers/ghc/6.12.1.nix; - prefFun = ghc6121Prefs; - }; - - packages_ghc6122 = - packages { ghcPath = ../development/compilers/ghc/6.12.2.nix; - prefFun = ghc6122Prefs; - }; - - packages_ghc6123 = - packages { ghcPath = ../development/compilers/ghc/6.12.3.nix; - prefFun = ghc6123Prefs; - }; - - # Will never make it into a platform release, severe bugs; leave at lowPrio. - packages_ghc701 = - packages { ghcPath = ../development/compilers/ghc/7.0.1.nix; - prefFun = ghc701Prefs; - }; - - packages_ghc702 = - packages { ghcPath = ../development/compilers/ghc/7.0.2.nix; - prefFun = ghc702Prefs; + packages_ghcHEAD = + packages { ghcPath = ../development/compilers/ghc/head.nix; + ghcBinary = pkgs.haskellPackages.ghcPlain; + prefFun = ghcHEADPrefs; + extraArgs = { + happy = pkgs.haskellPackages.happy_1_19_2; + alex = pkgs.haskellPackages.alex_3_1_3; + }; }; - packages_ghc703 = - packages { ghcPath = ../development/compilers/ghc/7.0.3.nix; - prefFun = ghc703Prefs; + packages_ghc782 = + packages { ghcPath = ../development/compilers/ghc/7.8.2.nix; + ghcBinary = ghc742Binary; + prefFun = ghc782Prefs; }; - # The following items are a bit convoluted, but they serve the - # following purpose: - # - for the default version of GHC, both profiling and - # non-profiling versions should be built by Hydra -- - # therefore, the _no_profiling and _profiling calls; - # - however, if a user just upgrades a profile, then the - # cabal/libraryProfiling setting should be respected; i.e., - # the versions not matching the profiling config setting - # should have low priority -- therefore, the use of - # defaultVersionPrioFun; - # - it should be possible to select library versions that - # respect the config setting using the standard - # packages_ghc704 path -- therefore, the additional - # call in packages_ghc704, without recurseIntoAttrs, - # so that Hydra doesn't build these. - - packages_ghc704 = - packages { ghcPath = ../development/compilers/ghc/7.0.4.nix; - ghcBinary = ghc6101BinaryDarwin; - prefFun = ghc704Prefs; + packages_ghc763 = + packages { ghcPath = ../development/compilers/ghc/7.6.3.nix; + ghcBinary = ghc704Binary; + prefFun = ghc763Prefs; }; - packages_ghc721 = - packages { ghcPath = ../development/compilers/ghc/7.2.1.nix; + packages_ghc742 = + packages { ghcPath = ../development/compilers/ghc/7.4.2.nix; ghcBinary = ghc6121BinaryDarwin; - prefFun = ghc721Prefs; + prefFun = ghc742Prefs; }; packages_ghc722 = @@ -368,51 +189,20 @@ prefFun = ghc722Prefs; }; - packages_ghc741 = - packages { ghcPath = ../development/compilers/ghc/7.4.1.nix; - ghcBinary = ghc6121BinaryDarwin; - prefFun = ghc741Prefs; - }; - - packages_ghc742 = - packages { ghcPath = ../development/compilers/ghc/7.4.2.nix; - ghcBinary = ghc6121BinaryDarwin; - prefFun = ghc742Prefs; - }; - - packages_ghc761 = - packages { ghcPath = ../development/compilers/ghc/7.6.1.nix; - ghcBinary = ghc704Binary; - prefFun = ghc763Prefs; - }; - - packages_ghc762 = - packages { ghcPath = ../development/compilers/ghc/7.6.2.nix; - ghcBinary = ghc704Binary; - prefFun = ghc763Prefs; - }; - - packages_ghc763 = - packages { ghcPath = ../development/compilers/ghc/7.6.3.nix; - ghcBinary = ghc704Binary; - prefFun = ghc763Prefs; + packages_ghc704 = + packages { ghcPath = ../development/compilers/ghc/7.0.4.nix; + ghcBinary = ghc6101BinaryDarwin; + prefFun = ghc704Prefs; }; - packages_ghc782 = - packages { ghcPath = ../development/compilers/ghc/7.8.2.nix; - ghcBinary = ghc742Binary; - prefFun = ghcHEADPrefs; + packages_ghc6123 = + packages { ghcPath = ../development/compilers/ghc/6.12.3.nix; + prefFun = ghc6123Prefs; }; - # Reasonably current HEAD snapshot. Should *always* be lowPrio. - packages_ghcHEAD = - packages { ghcPath = ../development/compilers/ghc/head.nix; - ghcBinary = pkgs.haskellPackages.ghcPlain; - prefFun = ghcHEADPrefs; - extraArgs = { - happy = pkgs.haskellPackages.happy_1_19_2; - alex = pkgs.haskellPackages.alex_3_1_3; - }; + packages_ghc6104 = + packages { ghcPath = ../development/compilers/ghc/6.10.4.nix; + prefFun = ghc6104Prefs; }; } |