From 64df9b6b899fc734577f9b832f17ba3286db1634 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Sat, 12 May 2018 17:11:41 -0400 Subject: [PATCH] GHCJS 8.4 --- .../compilers/ghcjs-ng/8.4/dep-overrides.nix | 7 + .../compilers/ghcjs-ng/8.4/git.json | 6 + .../compilers/ghcjs-ng/8.4/stage0.nix | 175 ++++++++++++++++++ .../configuration-ghc-8.4.x.nix | 5 +- pkgs/top-level/haskell-packages.nix | 13 ++ 5 files changed, 205 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/compilers/ghcjs-ng/8.4/dep-overrides.nix create mode 100644 pkgs/development/compilers/ghcjs-ng/8.4/git.json create mode 100644 pkgs/development/compilers/ghcjs-ng/8.4/stage0.nix diff --git a/pkgs/development/compilers/ghcjs-ng/8.4/dep-overrides.nix b/pkgs/development/compilers/ghcjs-ng/8.4/dep-overrides.nix new file mode 100644 index 000000000000..2d0ed55c6cd1 --- /dev/null +++ b/pkgs/development/compilers/ghcjs-ng/8.4/dep-overrides.nix @@ -0,0 +1,7 @@ +{ haskellLib }: + +let inherit (haskellLib) dontCheck doJailbreak; +in self: super: { + haddock-library-ghcjs = dontCheck super.haddock-library-ghcjs; + haddock-api-ghcjs = doJailbreak super.haddock-api-ghcjs; +} diff --git a/pkgs/development/compilers/ghcjs-ng/8.4/git.json b/pkgs/development/compilers/ghcjs-ng/8.4/git.json new file mode 100644 index 000000000000..2d4a7a42667b --- /dev/null +++ b/pkgs/development/compilers/ghcjs-ng/8.4/git.json @@ -0,0 +1,6 @@ +{ + "url": "https://github.com/ghcjs/ghcjs", + "rev": "c494a598d1e5b6d70ddcb97177dc4b6cc71f5bd0", + "sha256": "1gpn1y3m2gk2x4anfh11p4cp49blabj761wicawvkw0w9bfhcfhn", + "fetchSubmodules": true +} diff --git a/pkgs/development/compilers/ghcjs-ng/8.4/stage0.nix b/pkgs/development/compilers/ghcjs-ng/8.4/stage0.nix new file mode 100644 index 000000000000..051b0a19b5b5 --- /dev/null +++ b/pkgs/development/compilers/ghcjs-ng/8.4/stage0.nix @@ -0,0 +1,175 @@ +{ 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.4.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, ghci-ghcjs + , hpc, process, stdenv, template-haskell-ghcjs, terminfo, time + , transformers, unix + }: + mkDerivation { + pname = "ghc-api-ghcjs"; + version = "8.4.0"; + src = configuredSrc + /lib/ghc-api-ghcjs; + libraryHaskellDepends = [ + array base binary bytestring containers deepseq directory filepath + ghc-boot ghc-boot-th 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, stdenv + , template-haskell-ghcjs, transformers, unix + }: + mkDerivation { + pname = "ghci-ghcjs"; + version = "8.4.0"; + src = configuredSrc + /lib/ghci-ghcjs; + libraryHaskellDepends = [ + array base binary bytestring containers deepseq filepath ghc-boot + ghc-boot-th 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, QuickCheck, stdenv, transformers, tree-diff + }: + mkDerivation { + pname = "haddock-library-ghcjs"; + version = "1.6.0"; + src = configuredSrc + /lib/haddock-library-ghcjs; + libraryHaskellDepends = [ + base bytestring containers deepseq transformers + ]; + testHaskellDepends = [ + base base-compat bytestring containers deepseq directory filepath + haddock-library hspec optparse-applicative QuickCheck 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.13.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/haskell-modules/configuration-ghc-8.4.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix index 70624d1ed6a8..12fd59748307 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix @@ -105,6 +105,9 @@ self: super: { ## hspec-discover ==2.4.8 hspec-discover = super.hspec-discover_2_5_0; + # https://github.com/jcristovao/enclosed-exceptions/issues/12 + enclosed-exceptions = dontCheck super.enclosed-exceptions; + ## On Hackage: ## Upstreamed, awaiting a Hackage release @@ -450,7 +453,7 @@ self: super: { matrix = self.matrix_0_3_6_1; pandoc = self.pandoc_2_2; pandoc-types = self.pandoc-types_1_17_4_2; - wl-pprint-text = self.wl-pprint-text_1_1_1_1; + wl-pprint-text = self.wl-pprint-text_1_2_0_0; base-compat = self.base-compat_0_10_1; # https://github.com/xmonad/xmonad/issues/155 diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 837f8eb794d0..c00bce430c3c 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -95,6 +95,13 @@ in rec { stage0 = ../development/compilers/ghcjs-ng/8.2/stage0.nix; ghcjsDepOverrides = callPackage ../development/compilers/ghcjs-ng/8.2/dep-overrides.nix {}; }; + ghcjs84 = callPackage ../development/compilers/ghcjs-ng rec { + bootPkgs = packages.ghc842; + inherit (bootPkgs) alex happy; + ghcjsSrcJson = ../development/compilers/ghcjs-ng/8.4/git.json; + stage0 = ../development/compilers/ghcjs-ng/8.4/stage0.nix; + ghcjsDepOverrides = callPackage ../development/compilers/ghcjs-ng/8.4/dep-overrides.nix {}; + }; # The integer-simple attribute set contains all the GHC compilers # build with integer-simple instead of integer-gmp. @@ -169,6 +176,12 @@ in rec { 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 { + buildHaskellPackages = ghc.bootPkgs; + ghc = bh.compiler.ghcjs84; + compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.4.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.