mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-03-17 17:42:45 +00:00
Restructured Haskell packages a bit.
* There's a new file called haskell-defaults.nix. * The new file contains: - Default package version settings for each compiler version. - All the stuff that previously still was in all-packages.nix. * A relatively small part is left in all-packages.nix. svn path=/nixpkgs/trunk/; revision=34088
This commit is contained in:
parent
13a10c3e54
commit
c601a302c7
|
@ -2172,188 +2172,47 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
# GHC
|
||||
# Haskell and GHC
|
||||
|
||||
# GHC binaries are around for bootstrapping purposes
|
||||
# Import Haskell infrastructure.
|
||||
|
||||
# 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;
|
||||
});
|
||||
*/
|
||||
haskell = callPackage ./haskell-defaults.nix { inherit pkgs; };
|
||||
|
||||
ghc6101Binary = lowPrio (callPackage ../development/compilers/ghc/6.10.1-binary.nix {
|
||||
gmp = gmp4;
|
||||
});
|
||||
|
||||
ghc6102Binary = lowPrio (callPackage ../development/compilers/ghc/6.10.2-binary.nix {
|
||||
gmp = gmp4;
|
||||
});
|
||||
|
||||
ghc6121Binary = lowPrio (callPackage ../development/compilers/ghc/6.12.1-binary.nix {
|
||||
gmp = gmp4;
|
||||
});
|
||||
|
||||
ghc704Binary = lowPrio (callPackage ../development/compilers/ghc/7.0.4-binary.nix {
|
||||
gmp = gmp4;
|
||||
});
|
||||
# Available GHC versions.
|
||||
|
||||
# For several compiler versions, we export a large set of Haskell-related
|
||||
# packages.
|
||||
|
||||
# This should point to the current default version.
|
||||
haskellPackages = haskellPackages_ghc704;
|
||||
|
||||
# NOTE (recurseIntoAttrs): After discussion, we originally decided to
|
||||
# enable it for all GHC versions. However, this is getting too much,
|
||||
# particularly in connection with Hydra builds for all these packages.
|
||||
# So we enable it for selected versions only.
|
||||
|
||||
# Helper functions to abstract away from repetitive instantiations.
|
||||
haskellPackagesFun = makeOverridable
|
||||
({ ghcPath
|
||||
, ghcBinary ? ghc6101Binary
|
||||
, prefFun
|
||||
, extraPrefs ? (x : {})
|
||||
, profExplicit ? false, profDefault ? false
|
||||
, modifyPrio ? lowPrio
|
||||
} :
|
||||
import ./haskell-packages.nix {
|
||||
inherit pkgs newScope modifyPrio;
|
||||
prefFun = self : super : prefFun self super // extraPrefs super;
|
||||
enableLibraryProfiling =
|
||||
if profExplicit then profDefault
|
||||
else getConfig [ "cabal" "libraryProfiling" ] profDefault;
|
||||
ghc = callPackage ghcPath { ghc = ghcBinary; };
|
||||
});
|
||||
|
||||
# Currently active GHC versions.
|
||||
haskellPackages_ghc6104 =
|
||||
recurseIntoAttrs
|
||||
(haskellPackagesFun { ghcPath = ../development/compilers/ghc/6.10.4.nix;
|
||||
prefFun = x : x.ghc6104Prefs;
|
||||
});
|
||||
|
||||
haskellPackages_ghc6121 =
|
||||
haskellPackagesFun { ghcPath = ../development/compilers/ghc/6.12.1.nix;
|
||||
prefFun = x : x.ghc6121Prefs;
|
||||
};
|
||||
|
||||
haskellPackages_ghc6122 =
|
||||
haskellPackagesFun { ghcPath = ../development/compilers/ghc/6.12.2.nix;
|
||||
prefFun = x : x.ghc6122Prefs;
|
||||
};
|
||||
|
||||
haskellPackages_ghc6123 =
|
||||
recurseIntoAttrs
|
||||
(haskellPackagesFun { ghcPath = ../development/compilers/ghc/6.12.3.nix;
|
||||
prefFun = x : x.ghc6123Prefs;
|
||||
});
|
||||
|
||||
# Will never make it into a platform release, severe bugs; leave at lowPrio.
|
||||
haskellPackages_ghc701 =
|
||||
haskellPackagesFun { ghcPath = ../development/compilers/ghc/7.0.1.nix;
|
||||
prefFun = x : x.ghc701Prefs;
|
||||
};
|
||||
|
||||
haskellPackages_ghc702 =
|
||||
haskellPackagesFun { ghcPath = ../development/compilers/ghc/7.0.2.nix;
|
||||
prefFun = x : x.ghc702Prefs;
|
||||
};
|
||||
|
||||
haskellPackages_ghc703 =
|
||||
haskellPackagesFun { ghcPath = ../development/compilers/ghc/7.0.3.nix;
|
||||
prefFun = x : x.ghc703Prefs;
|
||||
};
|
||||
|
||||
# Current default version: 7.0.4.
|
||||
#
|
||||
# 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
|
||||
# haskellDefaultVersionPrioFun;
|
||||
# - it should be possible to select library versions that
|
||||
# respect the config setting using the standard
|
||||
# haskellPackages_ghc704 path -- therefore, the additional
|
||||
# call in haskellPackages_ghc704, without recurseIntoAttrs,
|
||||
# so that Hydra doesn't build these.
|
||||
haskellDefaultVersionPrioFun =
|
||||
profDefault :
|
||||
if getConfig [ "cabal" "libraryProfiling" ] false == profDefault
|
||||
then (x : x)
|
||||
else lowPrio;
|
||||
|
||||
haskellPackages_ghc704_no_profiling =
|
||||
recurseIntoAttrs
|
||||
(haskellPackagesFun { ghcPath = ../development/compilers/ghc/7.0.4.nix;
|
||||
ghcBinary = if stdenv.isDarwin then ghc704Binary else ghc6101Binary;
|
||||
prefFun = x : x.ghc704Prefs;
|
||||
profExplicit = true;
|
||||
modifyPrio = haskellDefaultVersionPrioFun false;
|
||||
});
|
||||
|
||||
haskellPackages_ghc704_profiling =
|
||||
recurseIntoAttrs
|
||||
(haskellPackagesFun { ghcPath = ../development/compilers/ghc/7.0.4.nix;
|
||||
ghcBinary = if stdenv.isDarwin then ghc704Binary else ghc6101Binary;
|
||||
prefFun = x : x.ghc704Prefs;
|
||||
profExplicit = true;
|
||||
profDefault = true;
|
||||
modifyPrio = haskellDefaultVersionPrioFun true;
|
||||
});
|
||||
|
||||
haskellPackages_ghc704 =
|
||||
haskellPackagesFun { ghcPath = ../development/compilers/ghc/7.0.4.nix;
|
||||
ghcBinary = if stdenv.isDarwin then ghc704Binary else ghc6101Binary;
|
||||
prefFun = x : x.ghc704Prefs;
|
||||
modifyPrio = x : x;
|
||||
};
|
||||
|
||||
haskellPackages_ghc721 =
|
||||
haskellPackagesFun { ghcPath = ../development/compilers/ghc/7.2.1.nix;
|
||||
ghcBinary = if stdenv.isDarwin then ghc704Binary else ghc6121Binary;
|
||||
prefFun = x : x.ghc721Prefs;
|
||||
};
|
||||
|
||||
haskellPackages_ghc722 =
|
||||
haskellPackagesFun { ghcPath = ../development/compilers/ghc/7.2.2.nix;
|
||||
ghcBinary = if stdenv.isDarwin then ghc704Binary else ghc6121Binary;
|
||||
prefFun = x : x.ghc722Prefs;
|
||||
};
|
||||
|
||||
haskellPackages_ghc741 =
|
||||
recurseIntoAttrs
|
||||
(haskellPackagesFun { ghcPath = ../development/compilers/ghc/7.4.1.nix;
|
||||
ghcBinary = if stdenv.isDarwin then ghc704Binary else ghc6121Binary;
|
||||
prefFun = x : x.ghc741Prefs;
|
||||
});
|
||||
haskellPackages = haskellPackages_ghc704;
|
||||
|
||||
haskellPackages_ghc6104 = recurseIntoAttrs (haskell.packages_ghc6104);
|
||||
haskellPackages_ghc6121 = haskell.packages_ghc6121;
|
||||
haskellPackages_ghc6122 = haskell.packages_ghc6122;
|
||||
haskellPackages_ghc6123 = recurseIntoAttrs (haskell.packages_ghc6123);
|
||||
haskellPackages_ghc701 = haskell.packages_ghc701;
|
||||
haskellPackages_ghc702 = haskell.packages_ghc702;
|
||||
haskellPackages_ghc703 = haskell.packages_ghc703;
|
||||
# For the default version, we build profiling versions of the libraries, too.
|
||||
# The following three lines achieve that: the first two make Hydra build explicit
|
||||
# profiling and non-profiling versions; the final respects the user-configured
|
||||
# default setting.
|
||||
haskellPackages_ghc704_no_profiling = recurseIntoAttrs (haskell.packages_ghc704.noProfiling);
|
||||
haskellPackages_ghc704_profiling = recurseIntoAttrs (haskell.packages_ghc704.profiling);
|
||||
haskellPackages_ghc704 = haskell.packages_ghc704.highPrio;
|
||||
haskellPackages_ghc721 = haskell.packages_ghc721;
|
||||
haskellPackages_ghc722 = haskell.packages_ghc722;
|
||||
haskellPackages_ghc741 = recurseIntoAttrs (haskell.packages_ghc741);
|
||||
haskellPackages_ghc741_pedantic = haskell.packages_ghc741_pedantic;
|
||||
# Stable branch snapshot.
|
||||
haskellPackages_ghc742 =
|
||||
recurseIntoAttrs
|
||||
(haskellPackagesFun { ghcPath = ../development/compilers/ghc/7.4.2.nix;
|
||||
ghcBinary = if stdenv.isDarwin then ghc704Binary else ghc6121Binary;
|
||||
prefFun = x : x.ghcHEADPrefs;
|
||||
});
|
||||
|
||||
# Reasonably current HEAD snapshot. Should *always* be lowPrio.
|
||||
haskellPackages_ghcHEAD =
|
||||
recurseIntoAttrs
|
||||
(haskellPackagesFun { ghcPath = ../development/compilers/ghc/head.nix;
|
||||
ghcBinary = # (haskellPackages_ghc704.ghcWithPackages (self : [ self.alex self.happy ]))
|
||||
ghc704Binary;
|
||||
prefFun = x : x.ghcHEADPrefs;
|
||||
});
|
||||
haskellPackages_ghc742 = recurseIntoAttrs (haskell.packages_ghc742);
|
||||
# Reasonably current HEAD snapshot.
|
||||
haskellPackages_ghcHEAD = haskell.packages_ghcHEAD;
|
||||
|
||||
haxeDist = import ../development/compilers/haxe {
|
||||
inherit fetchurl sourceFromHead stdenv lib ocaml zlib makeWrapper neko;
|
||||
|
|
269
pkgs/top-level/haskell-defaults.nix
Normal file
269
pkgs/top-level/haskell-defaults.nix
Normal file
|
@ -0,0 +1,269 @@
|
|||
# Haskell / GHC infrastructure in Nixpkgs
|
||||
#
|
||||
# In this file, we
|
||||
#
|
||||
# * define sets of default package versions for each GHC compiler version,
|
||||
# * associate GHC versions with bootstrap compiler versions and package defaults.
|
||||
#
|
||||
# The actual Haskell packages are composed in haskell-packages.nix. There is
|
||||
# more documentation in there.
|
||||
|
||||
{ makeOverridable, lowPrio, stdenv, pkgs, newScope, getConfig, callPackage } : rec {
|
||||
|
||||
# Preferences functions.
|
||||
#
|
||||
# Change these if you want to change the default versions of packages being used
|
||||
# for a particular GHC version.
|
||||
|
||||
ghcHEADPrefs = ghc741Prefs;
|
||||
|
||||
ghc741Prefs_pedantic =
|
||||
self : self.haskellPlatformArgs_future self // {
|
||||
mtl1 = self.mtl_1_1_1_1; # 7.2 ok, 7.3 ok
|
||||
binary = null; # now a core package
|
||||
};
|
||||
|
||||
ghc741Prefs =
|
||||
self : ghc741Prefs_pedantic self // {
|
||||
# These are necessary at the moment to prevent many packages from breaking.
|
||||
mtl = self.mtl_2_0_1_0;
|
||||
transformers = self.transformers_0_2_2_0;
|
||||
};
|
||||
|
||||
ghc722Prefs = ghc741Prefs;
|
||||
|
||||
ghc721Prefs = ghc741Prefs;
|
||||
|
||||
ghc704Prefs =
|
||||
self : self.haskellPlatformArgs_2011_4_0_0 self // {
|
||||
haskellPlatform = self.haskellPlatform_2011_4_0_0;
|
||||
mtl1 = self.mtl_1_1_1_1;
|
||||
repaExamples = null; # don't pick this version of 'repa-examples' during nix-env -u
|
||||
cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; };
|
||||
monadPar = self.monadPar_0_1_0_3;
|
||||
};
|
||||
|
||||
ghc703Prefs =
|
||||
self : self.haskellPlatformArgs_2011_2_0_1 self // {
|
||||
haskellPlatform = self.haskellPlatform_2011_2_0_1;
|
||||
mtl1 = self.mtl_1_1_1_1;
|
||||
repaExamples = null; # don't pick this version of 'repa-examples' during nix-env -u
|
||||
cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
|
||||
monadPar = self.monadPar_0_1_0_3;
|
||||
};
|
||||
|
||||
ghc702Prefs = ghc701Prefs;
|
||||
|
||||
ghc701Prefs =
|
||||
self : self.haskellPlatformArgs_2011_2_0_0 self // {
|
||||
haskellPlatform = self.haskellPlatform_2011_2_0_0;
|
||||
mtl1 = self.mtl_1_1_1_1;
|
||||
repaExamples = null; # don't pick this version of 'repa-examples' during nix-env -u
|
||||
cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
|
||||
monadPar = self.monadPar_0_1_0_3;
|
||||
};
|
||||
|
||||
ghc6123Prefs = ghc6122Prefs;
|
||||
|
||||
ghc6122Prefs =
|
||||
self : self.haskellPlatformArgs_2010_2_0_0 self // {
|
||||
haskellPlatform = self.haskellPlatform_2010_2_0_0;
|
||||
repaExamples = null; # don't pick this version of 'repa-examples' during nix-env -u
|
||||
cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
|
||||
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
|
||||
};
|
||||
|
||||
ghc6121Prefs =
|
||||
self : self.haskellPlatformArgs_2010_1_0_0 self // {
|
||||
haskellPlatform = self.haskellPlatform_2010_1_0_0;
|
||||
extensibleExceptions = self.extensibleExceptions_0_1_1_0;
|
||||
repaExamples = null; # don't pick this version of 'repa-examples' during nix-env -u
|
||||
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
|
||||
};
|
||||
|
||||
ghc6104Prefs =
|
||||
self : self.haskellPlatformArgs_2009_2_0_2 self // {
|
||||
haskellPlatform = self.haskellPlatform_2009_2_0_2;
|
||||
extensibleExceptions = self.extensibleExceptions_0_1_1_0;
|
||||
text = self.text_0_11_0_6;
|
||||
repaExamples = null; # don't pick this version of 'repa-examples' during nix-env -u
|
||||
cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
|
||||
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
|
||||
};
|
||||
|
||||
# Abstraction for Haskell packages collections
|
||||
packagesFun = makeOverridable
|
||||
({ ghcPath
|
||||
, ghcBinary ? ghc6101Binary
|
||||
, prefFun
|
||||
, extraPrefs ? (x : {})
|
||||
, profExplicit ? false, profDefault ? false
|
||||
, modifyPrio ? lowPrio
|
||||
} :
|
||||
import ./haskell-packages.nix {
|
||||
inherit pkgs newScope modifyPrio;
|
||||
prefFun = self : super : self // prefFun super // extraPrefs super;
|
||||
# prefFun = self : super : self;
|
||||
enableLibraryProfiling =
|
||||
if profExplicit then profDefault
|
||||
else getConfig [ "cabal" "libraryProfiling" ] profDefault;
|
||||
ghc = callPackage ghcPath { ghc = ghcBinary; };
|
||||
});
|
||||
|
||||
defaultVersionPrioFun =
|
||||
profDefault :
|
||||
if getConfig [ "cabal" "libraryProfiling" ] false == profDefault
|
||||
then (x : x)
|
||||
else lowPrio;
|
||||
|
||||
packages = args : let r = packagesFun args;
|
||||
in r // { lowPrio = r.override { modifyPrio = lowPrio; };
|
||||
highPrio = r.override { modifyPrio = x : x; };
|
||||
noProfiling = r.override { profDefault = false;
|
||||
profExplicit = true;
|
||||
modifyPrio = defaultVersionPrioFun false; };
|
||||
profiling = r.override { profDefault = true;
|
||||
profExplicit = true;
|
||||
modifyPrio = defaultVersionPrioFun true; };
|
||||
};
|
||||
|
||||
# Binary versions of GHC
|
||||
#
|
||||
# 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;
|
||||
});
|
||||
|
||||
ghc6102Binary = lowPrio (callPackage ../development/compilers/ghc/6.10.2-binary.nix {
|
||||
gmp = pkgs.gmp4;
|
||||
});
|
||||
|
||||
ghc6121Binary = lowPrio (callPackage ../development/compilers/ghc/6.12.1-binary.nix {
|
||||
gmp = pkgs.gmp4;
|
||||
});
|
||||
|
||||
ghc704Binary = lowPrio (callPackage ../development/compilers/ghc/7.0.4-binary.nix {
|
||||
gmp = pkgs.gmp4;
|
||||
});
|
||||
|
||||
ghc6101BinaryDarwin = if stdenv.isDarwin then ghc704Binary else ghc6101Binary;
|
||||
ghc6121BinaryDarwin = if stdenv.isDarwin then ghc704Binary else ghc6121Binary;
|
||||
|
||||
# Compiler configurations
|
||||
#
|
||||
# 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_ghc703 =
|
||||
packages { ghcPath = ../development/compilers/ghc/7.0.3.nix;
|
||||
prefFun = ghc703Prefs;
|
||||
};
|
||||
|
||||
# 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_ghc721 =
|
||||
packages { ghcPath = ../development/compilers/ghc/7.2.1.nix;
|
||||
ghcBinary = ghc6121BinaryDarwin;
|
||||
prefFun = ghc721Prefs;
|
||||
};
|
||||
|
||||
packages_ghc722 =
|
||||
packages { ghcPath = ../development/compilers/ghc/7.2.2.nix;
|
||||
ghcBinary = ghc6121BinaryDarwin;
|
||||
prefFun = ghc722Prefs;
|
||||
};
|
||||
|
||||
packages_ghc741 =
|
||||
packages { ghcPath = ../development/compilers/ghc/7.4.1.nix;
|
||||
ghcBinary = ghc6121BinaryDarwin;
|
||||
prefFun = ghc741Prefs;
|
||||
};
|
||||
|
||||
# More strictly adhering to the probable future Haskell Platform.
|
||||
packages_ghc741_pedantic =
|
||||
packages_ghc741.override { prefFun = ghc741Prefs_pedantic; };
|
||||
|
||||
# Stable branch snapshot.
|
||||
packages_ghc742 =
|
||||
packages { ghcPath = ../development/compilers/ghc/7.4.2.nix;
|
||||
ghcBinary = ghc6121BinaryDarwin;
|
||||
prefFun = ghcHEADPrefs;
|
||||
};
|
||||
|
||||
# Reasonably current HEAD snapshot. Should *always* be lowPrio.
|
||||
packages_ghcHEAD =
|
||||
packages { ghcPath = ../development/compilers/ghc/head.nix;
|
||||
ghcBinary = # (packages_ghc704.ghcWithPackages (self : [ self.alex self.happy ]))
|
||||
ghc704Binary;
|
||||
prefFun = ghcHEADPrefs;
|
||||
};
|
||||
|
||||
}
|
|
@ -7,7 +7,7 @@
|
|||
# compiler. They are usually distributed via Hackage, the central Haskell
|
||||
# package repository. Since at least the libraries are incompatible between
|
||||
# different compiler versions, the whole file is parameterized by the GHC
|
||||
# that is being used. GHC itself is defined in all-packages.nix
|
||||
# that is being used. GHC itself is composed in haskell-defaults.nix.
|
||||
#
|
||||
# Note that next to the packages defined here, there is another way to build
|
||||
# arbitrary packages from HackageDB in Nix, using the hack-nix tool that is
|
||||
|
@ -74,25 +74,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
|
|||
|
||||
final = self;
|
||||
|
||||
# Preferences
|
||||
#
|
||||
# Different versions of GHC need different versions of certain core packages.
|
||||
# We start with a suitable platform version per GHC version.
|
||||
|
||||
emptyPrefs = super : super // { };
|
||||
ghc6104Prefs = super : super // super.haskellPlatformDefaults_2009_2_0_2 super;
|
||||
ghc6121Prefs = super : super // super.haskellPlatformDefaults_2010_1_0_0 super;
|
||||
ghc6122Prefs = super : super // super.haskellPlatformDefaults_2010_2_0_0 super; # link
|
||||
ghc6123Prefs = super : super // super.haskellPlatformDefaults_2010_2_0_0 super;
|
||||
ghc701Prefs = super : super // super.haskellPlatformDefaults_2011_2_0_0 super; # link
|
||||
ghc702Prefs = super : super // super.haskellPlatformDefaults_2011_2_0_0 super;
|
||||
ghc703Prefs = super : super // super.haskellPlatformDefaults_2011_2_0_1 super;
|
||||
ghc704Prefs = super : super // super.haskellPlatformDefaults_2011_4_0_0 super; # link
|
||||
ghc721Prefs = super : super // super.haskellPlatformDefaults_future super;
|
||||
ghc722Prefs = super : super // super.haskellPlatformDefaults_future super; #link
|
||||
ghc741Prefs = super : super // super.haskellPlatformDefaults_HEAD super;
|
||||
ghcHEADPrefs = super : super // super.haskellPlatformDefaults_HEAD super;
|
||||
|
||||
# GHC and its wrapper
|
||||
#
|
||||
# We use a wrapped version of GHC for nearly everything. The wrapped version
|
||||
|
@ -129,6 +110,11 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
|
|||
#
|
||||
# We try to support several platform versions. For these, we set all
|
||||
# versions explicitly.
|
||||
#
|
||||
# DO NOT CHANGE THE VERSIONS LISTED HERE from the actual Haskell
|
||||
# Platform defaults. If you must update the defaults for a particular
|
||||
# GHC version, change the "preferences function" for that GHC version
|
||||
# in haskell-defaults.nix.
|
||||
|
||||
# NOTE: 2011.4.0.0 is the current default.
|
||||
|
||||
|
@ -157,8 +143,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
|
|||
zlib = self.zlib_0_5_3_3; # 7.4.1 ok
|
||||
HTTP = self.HTTP_4000_2_3; # 7.4.1 ok
|
||||
text = self.text_0_11_2_0; # 7.4.1 ok
|
||||
transformers = self.transformers_0_2_2_0; # 7.4.1 ok
|
||||
mtl = self.mtl_2_0_1_0; # 7.4.1 ok
|
||||
transformers = self.transformers_0_3_0_0; # 7.4.1 ok
|
||||
mtl = self.mtl_2_1_1; # 7.4.1 ok
|
||||
random = self.random_1_0_1_1; # 7.4.1 ok
|
||||
cabalInstall = self.cabalInstall_0_14_0; # 7.4.1 ok
|
||||
alex = self.alex_3_0_1; # 7.4.1 ok
|
||||
|
@ -166,17 +152,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
|
|||
haddock = self.haddock_2_10_0; # 7.4.1 ok
|
||||
};
|
||||
|
||||
haskellPlatformDefaults_future =
|
||||
self : self.haskellPlatformArgs_future self // {
|
||||
mtl1 = self.mtl_1_1_1_1; # 7.2 ok, 7.3 ok
|
||||
binary = null; # now a core package
|
||||
};
|
||||
|
||||
haskellPlatformDefaults_HEAD =
|
||||
self : self.haskellPlatformDefaults_future self // {
|
||||
binary = null; # now a core package
|
||||
};
|
||||
|
||||
haskellPlatformArgs_2011_4_0_0 = self : {
|
||||
inherit (self) cabal ghc;
|
||||
cgi = self.cgi_3001_1_7_4;
|
||||
|
@ -208,15 +183,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
|
|||
haddock = self.haddock_2_9_2;
|
||||
};
|
||||
|
||||
haskellPlatformDefaults_2011_4_0_0 =
|
||||
self : self.haskellPlatformArgs_2011_4_0_0 self // {
|
||||
haskellPlatform = self.haskellPlatform_2011_4_0_0;
|
||||
mtl1 = self.mtl_1_1_1_1;
|
||||
repaExamples = null; # don't pick this version of 'repa-examples' during nix-env -u
|
||||
cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; };
|
||||
monadPar = self.monadPar_0_1_0_3;
|
||||
};
|
||||
|
||||
haskellPlatform_2011_4_0_0 =
|
||||
callPackage ../development/libraries/haskell/haskell-platform/2011.4.0.0.nix
|
||||
(self.haskellPlatformArgs_2011_4_0_0 self);
|
||||
|
@ -252,15 +218,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
|
|||
haddock = self.haddock_2_9_2;
|
||||
};
|
||||
|
||||
haskellPlatformDefaults_2011_2_0_1 =
|
||||
self : self.haskellPlatformArgs_2011_2_0_1 self // {
|
||||
haskellPlatform = self.haskellPlatform_2011_2_0_1;
|
||||
mtl1 = self.mtl_1_1_1_1;
|
||||
repaExamples = null; # don't pick this version of 'repa-examples' during nix-env -u
|
||||
cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
|
||||
monadPar = self.monadPar_0_1_0_3;
|
||||
};
|
||||
|
||||
haskellPlatform_2011_2_0_1 =
|
||||
callPackage ../development/libraries/haskell/haskell-platform/2011.2.0.1.nix
|
||||
(self.haskellPlatformArgs_2011_2_0_1 self);
|
||||
|
@ -296,15 +253,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
|
|||
haddock = self.haddock_2_9_2;
|
||||
};
|
||||
|
||||
haskellPlatformDefaults_2011_2_0_0 =
|
||||
self : self.haskellPlatformArgs_2011_2_0_0 self // {
|
||||
haskellPlatform = self.haskellPlatform_2011_2_0_0;
|
||||
mtl1 = self.mtl_1_1_1_1;
|
||||
repaExamples = null; # don't pick this version of 'repa-examples' during nix-env -u
|
||||
cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
|
||||
monadPar = self.monadPar_0_1_0_3;
|
||||
};
|
||||
|
||||
haskellPlatform_2011_2_0_0 =
|
||||
callPackage ../development/libraries/haskell/haskell-platform/2011.2.0.0.nix
|
||||
(self.haskellPlatformArgs_2011_2_0_0 self);
|
||||
|
@ -337,16 +285,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
|
|||
haddock = self.haddock_2_7_2;
|
||||
};
|
||||
|
||||
haskellPlatformDefaults_2010_2_0_0 =
|
||||
self : self.haskellPlatformArgs_2010_2_0_0 self // {
|
||||
haskellPlatform = self.haskellPlatform_2010_2_0_0;
|
||||
repaExamples = null; # don't pick this version of 'repa-examples' during nix-env -u
|
||||
cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
|
||||
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
|
||||
};
|
||||
|
||||
haskellPlatform_2010_2_0_0 =
|
||||
callPackage ../development/libraries/haskell/haskell-platform/2010.2.0.0.nix
|
||||
(self.haskellPlatformArgs_2010_2_0_0 self);
|
||||
|
@ -377,16 +315,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
|
|||
happy = self.happy_1_18_4;
|
||||
};
|
||||
|
||||
haskellPlatformDefaults_2010_1_0_0 =
|
||||
self : self.haskellPlatformArgs_2010_1_0_0 self // {
|
||||
haskellPlatform = self.haskellPlatform_2010_1_0_0;
|
||||
extensibleExceptions = self.extensibleExceptions_0_1_1_0;
|
||||
repaExamples = null; # don't pick this version of 'repa-examples' during nix-env -u
|
||||
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
|
||||
};
|
||||
|
||||
haskellPlatform_2010_1_0_0 =
|
||||
callPackage ../development/libraries/haskell/haskell-platform/2010.1.0.0.nix
|
||||
(self.haskellPlatformArgs_2010_1_0_0 self);
|
||||
|
@ -418,18 +346,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
|
|||
happy = self.happy_1_18_4;
|
||||
};
|
||||
|
||||
haskellPlatformDefaults_2009_2_0_2 =
|
||||
self : self.haskellPlatformArgs_2009_2_0_2 self // {
|
||||
haskellPlatform = self.haskellPlatform_2009_2_0_2;
|
||||
extensibleExceptions = self.extensibleExceptions_0_1_1_0;
|
||||
text = self.text_0_11_0_6;
|
||||
repaExamples = null; # don't pick this version of 'repa-examples' during nix-env -u
|
||||
cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
|
||||
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
|
||||
};
|
||||
|
||||
haskellPlatform_2009_2_0_2 =
|
||||
callPackage ../development/libraries/haskell/haskell-platform/2009.2.0.2.nix
|
||||
(self.haskellPlatformArgs_2009_2_0_2 self);
|
||||
|
|
Loading…
Reference in a new issue