Merge pull request #3232 from peti/haskell-updates

Update default Haskell compiler to GHC 7.8.3 (and other stuff)
This commit is contained in:
Peter Simons 2014-07-14 00:18:03 +02:00
commit f264c638df
10 changed files with 41 additions and 32 deletions

View File

@ -29,7 +29,7 @@ assert enableSharedExecutables -> versionOlder "7.4" ghc.version;
# Our GHC 6.10.x builds do not provide sharable versions of their core libraries. # Our GHC 6.10.x builds do not provide sharable versions of their core libraries.
assert enableSharedLibraries -> versionOlder "6.12" ghc.version; assert enableSharedLibraries -> versionOlder "6.12" ghc.version;
# Our GHC 6.10.x builds do not provide sharable versions of their core libraries. # Pure shared library builds don't work before GHC 7.8.x.
assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
{ {

View File

@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
stdenv.lib.maintainers.andres stdenv.lib.maintainers.andres
]; ];
inherit (ghc.meta) license platforms; inherit (ghc.meta) license platforms;
broken = true;
}; };
} }

View File

@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
stdenv.lib.maintainers.andres stdenv.lib.maintainers.andres
]; ];
inherit (ghc.meta) license platforms; inherit (ghc.meta) license platforms;
broken = true;
}; };
} }

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, ghc, perl, gmp, ncurses }: { stdenv, fetchurl, ghc, perl, gmp, ncurses }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "7.8.2"; version = "7.8.3";
name = "ghc-${version}"; name = "ghc-${version}";
src = fetchurl { src = fetchurl {
url = "http://www.haskell.org/ghc/dist/7.8.2/${name}-src.tar.xz"; url = "http://www.haskell.org/ghc/dist/7.8.3/${name}-src.tar.xz";
sha256 = "15kyz98zq22sgwkzy2bkx0yz98qkrzgdigz919vafd7fxnkf3la5"; sha256 = "0n5rhwl83yv8qm0zrbaxnyrf8x1i3b6si927518mwfxs96jrdkdh";
}; };
buildInputs = [ ghc perl gmp ncurses ]; buildInputs = [ ghc perl gmp ncurses ];

View File

@ -1,8 +1,8 @@
{ stdenv, fetchurl, m4, cxx ? true }: { stdenv, fetchurl, m4, cxx ? true, withStatic ? false }:
with { inherit (stdenv.lib) optional; }; with { inherit (stdenv.lib) optional; };
stdenv.mkDerivation rec { stdenv.mkDerivation (rec {
name = "gmp-5.1.3"; name = "gmp-5.1.3";
src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv
@ -27,10 +27,10 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
meta = { meta = with stdenv.lib; {
homepage = "http://gmplib.org/"; homepage = "http://gmplib.org/";
description = "GMP, the GNU multiple precision arithmetic library"; description = "GMP, the GNU multiple precision arithmetic library";
license = stdenv.lib.licenses.gpl3Plus; license = licenses.gpl3Plus;
longDescription = longDescription =
'' GMP is a free library for arbitrary precision arithmetic, operating '' GMP is a free library for arbitrary precision arithmetic, operating
@ -54,7 +54,10 @@ stdenv.mkDerivation rec {
asymptotically faster algorithms. asymptotically faster algorithms.
''; '';
platforms = stdenv.lib.platforms.all; platforms = platforms.all;
maintainers = [ stdenv.lib.maintainers.simons ]; maintainers = [ maintainers.simons ];
}; };
} }
// stdenv.lib.optionalAttrs withStatic { dontDisableStatic = true; }
)

View File

@ -22,5 +22,6 @@ cabal.mkDerivation (self : {
license = self.stdenv.lib.licenses.bsd3; license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms; platforms = self.ghc.meta.platforms;
maintainers = with self.stdenv.lib.maintainers; [andres simons]; maintainers = with self.stdenv.lib.maintainers; [andres simons];
broken = true; # The source code is no longer available from haskell.org.
}; };
}) })

View File

@ -257,6 +257,8 @@ let
stm = self.stm_2_1_1_2; stm = self.stm_2_1_1_2;
xhtml = self.xhtml_3000_2_0_1; xhtml = self.xhtml_3000_2_0_1;
happy = self.happy_1_18_4; happy = self.happy_1_18_4;
# not actually specified, but important to make the whole thing build
mtl = self.mtl_1_1_0_2;
}; };
}; };
@ -285,6 +287,8 @@ let
cabalInstall = self.cabalInstall_0_6_2; cabalInstall = self.cabalInstall_0_6_2;
alex = self.alex_2_3_1; alex = self.alex_2_3_1;
happy = self.happy_1_18_4; happy = self.happy_1_18_4;
# not actually specified, but important to make the whole thing build
mtl = self.mtl_1_1_0_2;
}; };
}; };

View File

@ -2584,7 +2584,7 @@ let
compcert = callPackage ../development/compilers/compcert {}; compcert = callPackage ../development/compilers/compcert {};
cryptol1 = lowPrio (callPackage ../development/compilers/cryptol/1.8.x.nix {}); cryptol1 = lowPrio (callPackage ../development/compilers/cryptol/1.8.x.nix {});
cryptol2 = haskellPackages.cryptol; cryptol2 = haskellPackages_ghc763.cryptol; # doesn't compile with the lastest 7.8.3 release
cython = pythonPackages.cython; cython = pythonPackages.cython;
cython3 = python3Packages.cython; cython3 = python3Packages.cython;
@ -2935,7 +2935,10 @@ let
# Import Haskell infrastructure. # Import Haskell infrastructure.
haskell = callPackage ./haskell-defaults.nix { inherit pkgs; }; haskell = let pkgs_ = pkgs // { gmp = gmp.override { withStatic = true; }; };
callPackage = newScope pkgs_;
newScope = extra: lib.callPackageWith (pkgs_ // pkgs_.xorg // extra);
in callPackage ./haskell-defaults.nix { pkgs = pkgs_; inherit callPackage newScope; };
# Available GHC versions. # Available GHC versions.
@ -2953,7 +2956,7 @@ let
builtins.substring 0 (builtins.stringLength "packages_") name == "packages_" builtins.substring 0 (builtins.stringLength "packages_") name == "packages_"
) haskell)); ) haskell));
haskellPackages = haskellPackages_ghc763; haskellPackages = haskellPackages_ghc783;
haskellPlatform = haskellPlatformPackages."2013_2_0_0"; haskellPlatform = haskellPlatformPackages."2013_2_0_0";
haskellPackages_ghc6104 = haskell.packages_ghc6104; haskellPackages_ghc6104 = haskell.packages_ghc6104;
@ -2961,15 +2964,10 @@ let
haskellPackages_ghc704 = haskell.packages_ghc704; haskellPackages_ghc704 = haskell.packages_ghc704;
haskellPackages_ghc722 = haskell.packages_ghc722; haskellPackages_ghc722 = haskell.packages_ghc722;
haskellPackages_ghc742 = haskell.packages_ghc742; haskellPackages_ghc742 = haskell.packages_ghc742;
# For the default version, we build profiling versions of the libraries, too. haskellPackages_ghc763 = haskell.packages_ghc763;
# The following three lines achieve that: the first two make Hydra build explicit haskellPackages_ghc783_no_profiling = recurseIntoAttrs haskell.packages_ghc783.noProfiling;
# profiling and non-profiling versions; the final respects the user-configured haskellPackages_ghc783_profiling = recurseIntoAttrs haskell.packages_ghc783.profiling;
# default setting. haskellPackages_ghc783 = recurseIntoAttrs haskell.packages_ghc783.highPrio;
haskellPackages_ghc763_no_profiling = recurseIntoAttrs haskell.packages_ghc763.noProfiling;
haskellPackages_ghc763_profiling = recurseIntoAttrs haskell.packages_ghc763.profiling;
haskellPackages_ghc763 = recurseIntoAttrs haskell.packages_ghc763.highPrio;
# Reasonably current HEAD snapshot.
haskellPackages_ghc782 = haskell.packages_ghc782;
haskellPackages_ghcHEAD = haskell.packages_ghcHEAD; haskellPackages_ghcHEAD = haskell.packages_ghcHEAD;
haskellPlatformPackages = recurseIntoAttrs (import ../development/libraries/haskell/haskell-platform { inherit pkgs; }); haskellPlatformPackages = recurseIntoAttrs (import ../development/libraries/haskell/haskell-platform { inherit pkgs; });
@ -8279,10 +8277,11 @@ let
d4x = callPackage ../applications/misc/d4x { }; d4x = callPackage ../applications/misc/d4x { };
darcs = haskellPackages.darcs.override { darcs = haskellPackages_ghc763.darcs.override {
# A variant of the Darcs derivation that containts only the executable and # A variant of the Darcs derivation that containts only the executable and
# thus has no dependencies on other Haskell packages. # thus has no dependencies on other Haskell packages. We have to use the older
cabal = haskellPackages.cabal.override { # GHC 7.6.3 package set because darcs won't compile with 7.8.x.
cabal = haskellPackages_ghc763.cabal.override {
extension = self : super : { extension = self : super : {
isLibrary = false; isLibrary = false;
configureFlags = "-f-library " + super.configureFlags or ""; configureFlags = "-f-library " + super.configureFlags or "";

View File

@ -20,13 +20,13 @@
transformersCompat = super.transformersCompat_0_3_3; transformersCompat = super.transformersCompat_0_3_3;
}; };
ghc782Prefs = self : super : ghcHEADPrefs self super // { ghc783Prefs = self : super : ghcHEADPrefs self super // {
cabalInstall_1_20_0_3 = super.cabalInstall_1_20_0_3.override { Cabal = self.Cabal_1_20_0_1; }; cabalInstall_1_20_0_3 = super.cabalInstall_1_20_0_3.override { Cabal = self.Cabal_1_20_0_1; };
codex = super.codex.override { hackageDb = super.hackageDb.override { Cabal = self.Cabal_1_20_0_1; }; }; codex = super.codex.override { hackageDb = super.hackageDb.override { Cabal = self.Cabal_1_20_0_1; }; };
mtl = self.mtl_2_1_2; mtl = self.mtl_2_1_2;
}; };
ghc763Prefs = self : super : ghc782Prefs self super // { ghc763Prefs = self : super : ghc783Prefs self super // {
ariadne = super.ariadne.override { ariadne = super.ariadne.override {
haskellNames = self.haskellNames.override { haskellNames = self.haskellNames.override {
haskellPackages = self.haskellPackages.override { Cabal = self.Cabal_1_18_1_3; }; haskellPackages = self.haskellPackages.override { Cabal = self.Cabal_1_18_1_3; };
@ -214,10 +214,10 @@
}; };
}; };
packages_ghc782 = packages_ghc783 =
packages { ghcPath = ../development/compilers/ghc/7.8.2.nix; packages { ghcPath = ../development/compilers/ghc/7.8.3.nix;
ghcBinary = ghc742Binary; ghcBinary = ghc742Binary;
prefFun = ghc782Prefs; prefFun = ghc783Prefs;
}; };
packages_ghc763 = packages_ghc763 =

View File

@ -1358,7 +1358,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
additionalPackages = [ self.lambdabot ]; additionalPackages = [ self.lambdabot ];
}; };
}; };
lambdabotUtils = callPackage ../development/libraries/haskell/lambdabot-utils {}; lambdabotUtils = callPackage ../development/libraries/haskell/lambdabot-utils {};
lambdacubeEngine = callPackage ../development/libraries/haskell/lambdacube-engine {}; lambdacubeEngine = callPackage ../development/libraries/haskell/lambdacube-engine {};
@ -2364,7 +2364,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
transformers_0_2_2_0 = callPackage ../development/libraries/haskell/transformers/0.2.2.0.nix {}; transformers_0_2_2_0 = callPackage ../development/libraries/haskell/transformers/0.2.2.0.nix {};
transformers_0_3_0_0 = callPackage ../development/libraries/haskell/transformers/0.3.0.0.nix {}; transformers_0_3_0_0 = callPackage ../development/libraries/haskell/transformers/0.3.0.0.nix {};
transformers_0_4_1_0 = callPackage ../development/libraries/haskell/transformers/0.4.1.0.nix {}; transformers_0_4_1_0 = callPackage ../development/libraries/haskell/transformers/0.4.1.0.nix {};
transformers = null; # core package since ghc >= 7.8.2 transformers = null; # core package since ghc >= 7.8.x
transformersBase = callPackage ../development/libraries/haskell/transformers-base {}; transformersBase = callPackage ../development/libraries/haskell/transformers-base {};