From 57cb854e42b5b01b61db84c17015ca0930442dcc Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Mon, 14 Jan 2019 18:04:19 -0500 Subject: [PATCH] GHCJS: Add 8.6 --- .../compilers/ghcjs-ng/8.6/dep-overrides.nix | 7 + .../compilers/ghcjs-ng/8.6/git.json | 6 + .../compilers/ghcjs-ng/8.6/stage0.nix | 176 ++++++++++++++++++ .../ghcjs-ng/configured-ghcjs-src.nix | 2 + pkgs/top-level/haskell-packages.nix | 17 +- 5 files changed, 206 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix create mode 100644 pkgs/development/compilers/ghcjs-ng/8.6/git.json create mode 100644 pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix diff --git a/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix b/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix new file mode 100644 index 000000000000..8681aceacd7f --- /dev/null +++ b/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix @@ -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); +} diff --git a/pkgs/development/compilers/ghcjs-ng/8.6/git.json b/pkgs/development/compilers/ghcjs-ng/8.6/git.json new file mode 100644 index 000000000000..37861b96e7aa --- /dev/null +++ b/pkgs/development/compilers/ghcjs-ng/8.6/git.json @@ -0,0 +1,6 @@ +{ + "url": "https://github.com/ghcjs/ghcjs", + "rev": "75c61af32d73def4409d1fe7b64659c1d28cd075", + "sha256": "18pixn6xdz6qp941yhxfnmwi463jnpskmg473lv07vvgy4hpgjhj", + "fetchSubmodules": true +} diff --git a/pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix b/pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix new file mode 100644 index 000000000000..4e5d656cb064 --- /dev/null +++ b/pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix @@ -0,0 +1,176 @@ +{ callPackage, configuredSrc }: + +{ + + ghcjs = callPackage + ({ mkDerivation, aeson, array, attoparsec, base, base16-bytestring + , base64-bytestring, binary, bytestring, Cabal, containers + , cryptohash, data-default, deepseq, directory, executable-path + , filepath, ghc-api-ghcjs, ghc-boot, ghc-paths, ghci-ghcjs + , ghcjs-th, haddock-api-ghcjs, hashable, haskell-src-exts + , haskell-src-meta, http-types, HUnit, lens, lifted-base, mtl + , network, optparse-applicative, parallel, parsec, process, random + , regex-posix, safe, shelly, split, stdenv, stringsearch, syb + , system-fileio, system-filepath, tar, template-haskell + , template-haskell-ghcjs, terminfo, test-framework + , test-framework-hunit, text, time, transformers + , transformers-compat, unix, unix-compat, unordered-containers + , vector, wai, wai-app-static, wai-extra, wai-websockets, warp + , webdriver, websockets, wl-pprint-text, yaml + }: + mkDerivation { + pname = "ghcjs"; + version = "8.6.0.1"; + src = configuredSrc + /.; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = true; + setupHaskellDepends = [ + base Cabal containers directory filepath process template-haskell + transformers + ]; + libraryHaskellDepends = [ + aeson array attoparsec base base16-bytestring base64-bytestring + binary bytestring Cabal containers cryptohash data-default deepseq + directory filepath ghc-api-ghcjs ghc-boot ghc-paths ghci-ghcjs + ghcjs-th hashable haskell-src-exts haskell-src-meta lens mtl + optparse-applicative parallel parsec process regex-posix safe split + stringsearch syb template-haskell template-haskell-ghcjs text time + transformers unordered-containers vector wl-pprint-text yaml + ]; + executableHaskellDepends = [ + aeson base binary bytestring Cabal containers directory + executable-path filepath ghc-api-ghcjs ghc-boot haddock-api-ghcjs + lens mtl optparse-applicative process shelly system-fileio + system-filepath tar terminfo text time transformers + transformers-compat unix unix-compat unordered-containers vector + yaml + ]; + testHaskellDepends = [ + aeson base bytestring data-default deepseq directory http-types + HUnit lens lifted-base network optparse-applicative process random + shelly system-fileio system-filepath test-framework + test-framework-hunit text time transformers unordered-containers + wai wai-app-static wai-extra wai-websockets warp webdriver + websockets yaml + ]; + description = "Haskell to JavaScript compiler"; + license = stdenv.lib.licenses.mit; + }) {}; + + ghc-api-ghcjs = callPackage + ({ mkDerivation, array, base, binary, bytestring, containers + , deepseq, directory, filepath, ghc-boot, ghc-boot-th, ghc-heap + , ghci-ghcjs, hpc, process, stdenv, template-haskell-ghcjs + , terminfo, time, transformers, unix + }: + mkDerivation { + pname = "ghc-api-ghcjs"; + version = "8.6.2"; + src = configuredSrc + /lib/ghc-api-ghcjs; + libraryHaskellDepends = [ + array base binary bytestring containers deepseq directory filepath + ghc-boot ghc-boot-th ghc-heap ghci-ghcjs hpc process + template-haskell-ghcjs terminfo time transformers unix + ]; + homepage = "http://www.haskell.org/ghc/"; + description = "The GHC API (customized for GHCJS)"; + license = stdenv.lib.licenses.bsd3; + }) {}; + + ghci-ghcjs = callPackage + ({ mkDerivation, array, base, binary, bytestring, containers + , deepseq, filepath, ghc-boot, ghc-boot-th, ghc-heap, stdenv + , template-haskell-ghcjs, transformers, unix + }: + mkDerivation { + pname = "ghci-ghcjs"; + version = "8.6.1"; + src = configuredSrc + /lib/ghci-ghcjs; + libraryHaskellDepends = [ + array base binary bytestring containers deepseq filepath ghc-boot + ghc-boot-th ghc-heap template-haskell-ghcjs transformers unix + ]; + description = "The library supporting GHC's interactive interpreter (customized for GHCJS)"; + license = stdenv.lib.licenses.bsd3; + }) {}; + + ghcjs-th = callPackage + ({ mkDerivation, base, binary, bytestring, containers, ghc-prim + , ghci-ghcjs, stdenv, template-haskell-ghcjs + }: + mkDerivation { + pname = "ghcjs-th"; + version = "0.1.0.0"; + src = configuredSrc + /lib/ghcjs-th; + libraryHaskellDepends = [ + base binary bytestring containers ghc-prim ghci-ghcjs + template-haskell-ghcjs + ]; + homepage = "http://github.com/ghcjs"; + license = stdenv.lib.licenses.mit; + }) {}; + + haddock-api-ghcjs = callPackage + ({ mkDerivation, array, base, bytestring, Cabal, containers, deepseq + , directory, filepath, ghc-api-ghcjs, ghc-boot, ghc-paths + , haddock-library-ghcjs, hspec, hspec-discover, QuickCheck, stdenv + , transformers, xhtml + }: + mkDerivation { + pname = "haddock-api-ghcjs"; + version = "2.20.0"; + src = configuredSrc + /lib/haddock-api-ghcjs; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + array base bytestring Cabal containers deepseq directory filepath + ghc-api-ghcjs ghc-boot ghc-paths haddock-library-ghcjs transformers + xhtml + ]; + testHaskellDepends = [ + 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 ]; + homepage = "http://www.haskell.org/haddock/"; + description = "A documentation-generation tool for Haskell libraries"; + license = stdenv.lib.licenses.bsd3; + }) {}; + + haddock-library-ghcjs = callPackage + ({ mkDerivation, base, base-compat, bytestring, containers, deepseq + , directory, filepath, haddock-library, hspec, hspec-discover + , optparse-applicative, parsec, QuickCheck, stdenv, text + , transformers, tree-diff + }: + mkDerivation { + pname = "haddock-library-ghcjs"; + version = "1.6.0"; + src = configuredSrc + /lib/haddock-library-ghcjs; + libraryHaskellDepends = [ + base bytestring containers parsec text transformers + ]; + testHaskellDepends = [ + base base-compat bytestring containers deepseq directory filepath + haddock-library hspec optparse-applicative parsec QuickCheck text + transformers tree-diff + ]; + testToolDepends = [ hspec-discover ]; + homepage = "http://www.haskell.org/haddock/"; + description = "Library exposing some functionality of Haddock"; + license = stdenv.lib.licenses.bsd3; + }) {}; + + template-haskell-ghcjs = callPackage + ({ mkDerivation, base, ghc-boot-th, pretty, stdenv }: + mkDerivation { + pname = "template-haskell-ghcjs"; + version = "2.14.0.0"; + src = configuredSrc + /lib/template-haskell-ghcjs; + libraryHaskellDepends = [ base ghc-boot-th pretty ]; + description = "Support library for Template Haskell (customized for GHCJS)"; + license = stdenv.lib.licenses.bsd3; + }) {}; + +} diff --git a/pkgs/development/compilers/ghcjs-ng/configured-ghcjs-src.nix b/pkgs/development/compilers/ghcjs-ng/configured-ghcjs-src.nix index df1394e4a24b..56b69ea267f9 100644 --- a/pkgs/development/compilers/ghcjs-ng/configured-ghcjs-src.nix +++ b/pkgs/development/compilers/ghcjs-ng/configured-ghcjs-src.nix @@ -43,6 +43,8 @@ runCommand "configured-ghcjs-src" { # TODO: How to actually fix this? # Seems to work fine and produce the right files. touch ghc/includes/ghcautoconf.h + mkdir -p ghc/compiler/vectorise + mkdir -p ghc/utils/haddock/haddock-library/vendor patchShebangs . ./utils/makePackages.sh copy diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 642eeb96219c..0eb7df45920a 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -11,6 +11,7 @@ let "ghcjs" "ghcjs82" "ghcjs84" + "ghcjs86" "integer-simple" ]; @@ -83,7 +84,7 @@ in { buildLlvmPackages = buildPackages.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; @@ -95,6 +96,12 @@ in { stage0 = ../development/compilers/ghcjs-ng/8.4/stage0.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 # build with integer-simple instead of integer-gmp. @@ -155,7 +162,7 @@ in { ghc = bh.compiler.ghcHEAD; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { }; }; - ghcjs = packages.ghcjs84; + ghcjs = packages.ghcjs86; ghcjs82 = callPackage ../development/haskell-modules rec { buildHaskellPackages = ghc.bootPkgs; ghc = bh.compiler.ghcjs82; @@ -168,6 +175,12 @@ in { compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.4.x.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 # using integer-simple instead of integer-gmp.