Merge pull request #53978 from ElvishJerricco/ghcjs-8.4-8.6-fixes

GHCJS: Fix 8.4 and add 8.6
This commit is contained in:
Peter Simons 2019-02-01 13:37:02 +01:00 committed by GitHub
commit 5649eb713e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 63 additions and 54 deletions

View File

@ -1,6 +0,0 @@
{
"url": "https://github.com/ghcjs/ghcjs",
"rev": "0cff73c3ee13b464adba90f308b77751c75b9f26",
"sha256": "1shg34zi6ryaihar62qdkkalv8dsrsqbv58jzkhk9in38sdfkjxv",
"fetchSubmodules": true
}

View File

@ -2,6 +2,8 @@
let inherit (haskellLib) dontCheck doJailbreak; let inherit (haskellLib) dontCheck doJailbreak;
in self: super: { in self: super: {
haddock-library-ghcjs = dontCheck super.haddock-library-ghcjs; haddock-library-ghcjs = doJailbreak (dontCheck super.haddock-library-ghcjs);
haddock-api-ghcjs = doJailbreak super.haddock-api-ghcjs; haddock-api-ghcjs = doJailbreak super.haddock-api-ghcjs;
template-haskell-ghcjs = doJailbreak super.template-haskell-ghcjs;
} }

View File

@ -0,0 +1,7 @@
{ haskellLib }:
let inherit (haskellLib) dontCheck doJailbreak dontHaddock;
in self: super: {
haddock-library-ghcjs = doJailbreak super.haddock-library-ghcjs;
haddock-api-ghcjs = doJailbreak (dontHaddock super.haddock-api-ghcjs);
}

View File

@ -0,0 +1,6 @@
{
"url": "https://github.com/ghcjs/ghcjs",
"rev": "75c61af32d73def4409d1fe7b64659c1d28cd075",
"sha256": "18pixn6xdz6qp941yhxfnmwi463jnpskmg473lv07vvgy4hpgjhj",
"fetchSubmodules": true
}

View File

@ -20,7 +20,7 @@
}: }:
mkDerivation { mkDerivation {
pname = "ghcjs"; pname = "ghcjs";
version = "8.2.0.1"; version = "8.6.0.1";
src = configuredSrc + /.; src = configuredSrc + /.;
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
@ -60,17 +60,17 @@
ghc-api-ghcjs = callPackage ghc-api-ghcjs = callPackage
({ mkDerivation, array, base, binary, bytestring, containers ({ mkDerivation, array, base, binary, bytestring, containers
, deepseq, directory, filepath, ghc-boot, ghc-boot-th, ghci-ghcjs , deepseq, directory, filepath, ghc-boot, ghc-boot-th, ghc-heap
, hoopl, hpc, process, stdenv, template-haskell-ghcjs, terminfo , ghci-ghcjs, hpc, process, stdenv, template-haskell-ghcjs
, time, transformers, unix , terminfo, time, transformers, unix
}: }:
mkDerivation { mkDerivation {
pname = "ghc-api-ghcjs"; pname = "ghc-api-ghcjs";
version = "8.2.2"; version = "8.6.2";
src = configuredSrc + /lib/ghc-api-ghcjs; src = configuredSrc + /lib/ghc-api-ghcjs;
libraryHaskellDepends = [ libraryHaskellDepends = [
array base binary bytestring containers deepseq directory filepath array base binary bytestring containers deepseq directory filepath
ghc-boot ghc-boot-th ghci-ghcjs hoopl hpc process ghc-boot ghc-boot-th ghc-heap ghci-ghcjs hpc process
template-haskell-ghcjs terminfo time transformers unix template-haskell-ghcjs terminfo time transformers unix
]; ];
homepage = "http://www.haskell.org/ghc/"; homepage = "http://www.haskell.org/ghc/";
@ -80,16 +80,16 @@
ghci-ghcjs = callPackage ghci-ghcjs = callPackage
({ mkDerivation, array, base, binary, bytestring, containers ({ mkDerivation, array, base, binary, bytestring, containers
, deepseq, filepath, ghc-boot, ghc-boot-th, stdenv , deepseq, filepath, ghc-boot, ghc-boot-th, ghc-heap, stdenv
, template-haskell-ghcjs, transformers, unix , template-haskell-ghcjs, transformers, unix
}: }:
mkDerivation { mkDerivation {
pname = "ghci-ghcjs"; pname = "ghci-ghcjs";
version = "8.2.2"; version = "8.6.1";
src = configuredSrc + /lib/ghci-ghcjs; src = configuredSrc + /lib/ghci-ghcjs;
libraryHaskellDepends = [ libraryHaskellDepends = [
array base binary bytestring containers deepseq filepath ghc-boot array base binary bytestring containers deepseq filepath ghc-boot
ghc-boot-th template-haskell-ghcjs transformers unix ghc-boot-th ghc-heap template-haskell-ghcjs transformers unix
]; ];
description = "The library supporting GHC's interactive interpreter (customized for GHCJS)"; description = "The library supporting GHC's interactive interpreter (customized for GHCJS)";
license = stdenv.lib.licenses.bsd3; license = stdenv.lib.licenses.bsd3;
@ -119,7 +119,7 @@
}: }:
mkDerivation { mkDerivation {
pname = "haddock-api-ghcjs"; pname = "haddock-api-ghcjs";
version = "2.18.1"; version = "2.20.0";
src = configuredSrc + /lib/haddock-api-ghcjs; src = configuredSrc + /lib/haddock-api-ghcjs;
enableSeparateDataOutput = true; enableSeparateDataOutput = true;
libraryHaskellDepends = [ libraryHaskellDepends = [
@ -128,25 +128,33 @@
xhtml xhtml
]; ];
testHaskellDepends = [ testHaskellDepends = [
base containers ghc-api-ghcjs hspec QuickCheck array base bytestring Cabal containers deepseq directory filepath
ghc-api-ghcjs ghc-boot ghc-paths haddock-library-ghcjs hspec
QuickCheck transformers xhtml
]; ];
testToolDepends = [ hspec-discover ]; testToolDepends = [ hspec-discover ];
homepage = "http://www.haskell.org/haddock/"; homepage = "http://www.haskell.org/haddock/";
description = "A documentation-generation tool for Haskell libraries (customized for GHCJS)"; description = "A documentation-generation tool for Haskell libraries";
license = stdenv.lib.licenses.bsd3; license = stdenv.lib.licenses.bsd3;
}) {}; }) {};
haddock-library-ghcjs = callPackage haddock-library-ghcjs = callPackage
({ mkDerivation, base, base-compat, bytestring, deepseq, hspec ({ mkDerivation, base, base-compat, bytestring, containers, deepseq
, hspec-discover, QuickCheck, stdenv, transformers , directory, filepath, haddock-library, hspec, hspec-discover
, optparse-applicative, parsec, QuickCheck, stdenv, text
, transformers, tree-diff
}: }:
mkDerivation { mkDerivation {
pname = "haddock-library-ghcjs"; pname = "haddock-library-ghcjs";
version = "1.4.4"; version = "1.6.0";
src = configuredSrc + /lib/haddock-library-ghcjs; src = configuredSrc + /lib/haddock-library-ghcjs;
libraryHaskellDepends = [ base bytestring deepseq transformers ]; libraryHaskellDepends = [
base bytestring containers parsec text transformers
];
testHaskellDepends = [ testHaskellDepends = [
base base-compat bytestring deepseq hspec QuickCheck transformers base base-compat bytestring containers deepseq directory filepath
haddock-library hspec optparse-applicative parsec QuickCheck text
transformers tree-diff
]; ];
testToolDepends = [ hspec-discover ]; testToolDepends = [ hspec-discover ];
homepage = "http://www.haskell.org/haddock/"; homepage = "http://www.haskell.org/haddock/";
@ -158,7 +166,7 @@
({ mkDerivation, base, ghc-boot-th, pretty, stdenv }: ({ mkDerivation, base, ghc-boot-th, pretty, stdenv }:
mkDerivation { mkDerivation {
pname = "template-haskell-ghcjs"; pname = "template-haskell-ghcjs";
version = "2.12.0.0"; version = "2.14.0.0";
src = configuredSrc + /lib/template-haskell-ghcjs; src = configuredSrc + /lib/template-haskell-ghcjs;
libraryHaskellDepends = [ base ghc-boot-th pretty ]; libraryHaskellDepends = [ base ghc-boot-th pretty ];
description = "Support library for Template Haskell (customized for GHCJS)"; description = "Support library for Template Haskell (customized for GHCJS)";

View File

@ -43,6 +43,8 @@ runCommand "configured-ghcjs-src" {
# TODO: How to actually fix this? # TODO: How to actually fix this?
# Seems to work fine and produce the right files. # Seems to work fine and produce the right files.
touch ghc/includes/ghcautoconf.h touch ghc/includes/ghcautoconf.h
mkdir -p ghc/compiler/vectorise
mkdir -p ghc/utils/haddock/haddock-library/vendor
patchShebangs . patchShebangs .
./utils/makePackages.sh copy ./utils/makePackages.sh copy

View File

@ -104,7 +104,5 @@ in stdenv.mkDerivation {
inherit passthru; inherit passthru;
meta.platforms = passthru.bootPkgs.ghc.meta.platforms; meta.platforms = passthru.bootPkgs.ghc.meta.platforms;
meta.hydraPlatforms = []; meta.maintainers = [lib.maintainers.elvishjerricco];
meta.broken = true; # does not compile: https://hydra.nixos.org/build/88052615
} }

View File

@ -76,4 +76,7 @@ self: super: {
haddock-library = dontHaddock (dontCheck self.haddock-library_1_5_0_1); haddock-library = dontHaddock (dontCheck self.haddock-library_1_5_0_1);
})); }));
# cabal2nix doesn't list this because of a conditional on the GHC version.
aeson = addBuildDepend super.aeson self.contravariant;
} }

View File

@ -9,8 +9,8 @@ let
"ghc863Binary" "ghc863Binary"
"ghc844" "ghc844"
"ghcjs" "ghcjs"
"ghcjs82"
"ghcjs84" "ghcjs84"
"ghcjs86"
"integer-simple" "integer-simple"
]; ];
@ -83,18 +83,19 @@ in {
buildLlvmPackages = buildPackages.llvmPackages_6; buildLlvmPackages = buildPackages.llvmPackages_6;
llvmPackages = pkgs.llvmPackages_6; llvmPackages = pkgs.llvmPackages_6;
}; };
ghcjs = compiler.ghcjs84; ghcjs = compiler.ghcjs86;
ghcjs82 = callPackage ../development/compilers/ghcjs-ng {
bootPkgs = packages.ghc822;
ghcjsSrcJson = ../development/compilers/ghcjs-ng/8.2/git.json;
stage0 = ../development/compilers/ghcjs-ng/8.2/stage0.nix;
};
ghcjs84 = callPackage ../development/compilers/ghcjs-ng { ghcjs84 = callPackage ../development/compilers/ghcjs-ng {
bootPkgs = packages.ghc844; bootPkgs = packages.ghc844;
ghcjsSrcJson = ../development/compilers/ghcjs-ng/8.4/git.json; ghcjsSrcJson = ../development/compilers/ghcjs-ng/8.4/git.json;
stage0 = ../development/compilers/ghcjs-ng/8.4/stage0.nix; stage0 = ../development/compilers/ghcjs-ng/8.4/stage0.nix;
ghcjsDepOverrides = callPackage ../development/compilers/ghcjs-ng/8.4/dep-overrides.nix {}; ghcjsDepOverrides = callPackage ../development/compilers/ghcjs-ng/8.4/dep-overrides.nix {};
}; };
ghcjs86 = callPackage ../development/compilers/ghcjs-ng {
bootPkgs = packages.ghc863;
ghcjsSrcJson = ../development/compilers/ghcjs-ng/8.6/git.json;
stage0 = ../development/compilers/ghcjs-ng/8.6/stage0.nix;
ghcjsDepOverrides = callPackage ../development/compilers/ghcjs-ng/8.6/dep-overrides.nix {};
};
# The integer-simple attribute set contains all the GHC compilers # The integer-simple attribute set contains all the GHC compilers
# build with integer-simple instead of integer-gmp. # build with integer-simple instead of integer-gmp.
@ -155,31 +156,19 @@ in {
ghc = bh.compiler.ghcHEAD; ghc = bh.compiler.ghcHEAD;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { }; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { };
}; };
ghcjs = packages.ghcjs84; ghcjs = packages.ghcjs86;
ghcjs710 = callPackage ../development/haskell-modules rec {
buildHaskellPackages = ghc.bootPkgs;
ghc = bh.compiler.ghcjs710;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.10.x.nix { };
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
};
ghcjs80 = callPackage ../development/haskell-modules rec {
buildHaskellPackages = ghc.bootPkgs;
ghc = bh.compiler.ghcjs80;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.0.x.nix { };
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
};
ghcjs82 = callPackage ../development/haskell-modules rec {
buildHaskellPackages = ghc.bootPkgs;
ghc = bh.compiler.ghcjs82;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.2.x.nix { };
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
};
ghcjs84 = callPackage ../development/haskell-modules rec { ghcjs84 = callPackage ../development/haskell-modules rec {
buildHaskellPackages = ghc.bootPkgs; buildHaskellPackages = ghc.bootPkgs;
ghc = bh.compiler.ghcjs84; ghc = bh.compiler.ghcjs84;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.4.x.nix { }; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.4.x.nix { };
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { }; packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
}; };
ghcjs86 = callPackage ../development/haskell-modules rec {
buildHaskellPackages = ghc.bootPkgs;
ghc = bh.compiler.ghcjs86;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
};
# The integer-simple attribute set contains package sets for all the GHC compilers # The integer-simple attribute set contains package sets for all the GHC compilers
# using integer-simple instead of integer-gmp. # using integer-simple instead of integer-gmp.