summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDivam <dfordivam@gmail.com>2021-08-25 19:55:30 +0900
committerJohn Ericson <John.Ericson@Obsidian.Systems>2021-09-23 14:28:42 +0000
commitf7fda477a58169f16d7de133ab079cfe44493581 (patch)
tree3a5739a5b10dddc0db5df4402ec919db695dd09d
parenthaskellPackages.happy_1_19_12: init at 1.19.12 (diff)
downloadnixpkgs-f7fda477a58169f16d7de133ab079cfe44493581.tar.gz
ghcjs: init at 8.10.7
The src points to the obsidiansystems repo as it has the ghcjs ported from 8.10.5 to 8.10.7, and a bunch of other fixes (#812, #811, #809)
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/common-overrides.nix6
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix60
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/default.nix114
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/generate_host_version.hs54
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/ghcjs-base.nix29
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/git.json6
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/patches/vector-ghcjs-storable-set.patch14
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/stage0.nix77
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs-8.10.nix113
-rw-r--r--pkgs/top-level/haskell-packages.nix14
10 files changed, 487 insertions, 0 deletions
diff --git a/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix b/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix
new file mode 100644
index 000000000000..17347100f4b8
--- /dev/null
+++ b/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix
@@ -0,0 +1,6 @@
+{ haskellLib }:
+
+let inherit (haskellLib) addBuildTools appendConfigureFlag dontHaddock doJailbreak;
+in self: super: {
+ ghcjs = doJailbreak super.ghcjs;
+}
diff --git a/pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix b/pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix
new file mode 100644
index 000000000000..9fa6fae1a593
--- /dev/null
+++ b/pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix
@@ -0,0 +1,60 @@
+{ perl
+, autoconf
+, automake
+, python3
+, gcc
+, cabal-install
+, runCommand
+, lib
+, stdenv
+
+, ghc
+, happy
+, alex
+
+, ghcjsSrc
+, version
+}:
+
+runCommand "configured-ghcjs-src" {
+ nativeBuildInputs = [
+ perl
+ autoconf
+ automake
+ python3
+ ghc
+ happy
+ alex
+ cabal-install
+ ] ++ lib.optionals stdenv.isDarwin [
+ gcc # https://github.com/ghcjs/ghcjs/issues/663
+ ];
+ inherit ghcjsSrc;
+} ''
+ export HOME=$(pwd)
+ mkdir $HOME/.cabal
+ touch $HOME/.cabal/config
+ cp -r "$ghcjsSrc" "$out"
+ chmod -R +w "$out"
+ cd "$out"
+
+ # TODO: Find a better way to avoid impure version numbers
+ sed -i 's/RELEASE=NO/RELEASE=YES/' ghc/configure.ac
+
+ # These files are needed by ghc-boot package, and these are generated by the
+ # make/hadrian build system when compiling ghc. Since we dont have access to
+ # the generated code of the ghc while it got built, here is a little hack to
+ # generate these again.
+ runhaskell ${./generate_host_version.hs}
+ mkdir -p utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Platform
+ mv Host.hs utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Platform/Host.hs
+ mv Version.hs utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Version.hs
+
+ # The ghcjs has the following hardcoded paths of lib dir in its code. Patching
+ # these to match the path expected by the nixpkgs's generic-builder, etc.
+ sed -i 's/libSubDir = "lib"/libSubDir = "lib\/ghcjs-${version}"/' src-bin/Boot.hs
+ sed -i 's@let libDir = takeDirectory haddockPath </> ".." </> "lib"@let libDir = takeDirectory haddockPath </> ".." </> "lib/ghcjs-${version}"@' src-bin/HaddockDriver.hs
+
+ patchShebangs .
+ ./utils/makePackages.sh copy
+''
diff --git a/pkgs/development/compilers/ghcjs/8.10/default.nix b/pkgs/development/compilers/ghcjs/8.10/default.nix
new file mode 100644
index 000000000000..f1ef34eed51e
--- /dev/null
+++ b/pkgs/development/compilers/ghcjs/8.10/default.nix
@@ -0,0 +1,114 @@
+{ stdenv
+, pkgsHostHost
+, callPackage
+, fetchgit
+, ghcjsSrcJson ? null
+, ghcjsSrc ? fetchgit (builtins.fromJSON (builtins.readFile ghcjsSrcJson))
+, bootPkgs
+, stage0
+, haskellLib
+, cabal-install
+, nodejs
+, makeWrapper
+, xorg
+, gmp
+, pkg-config
+, gcc
+, lib
+, ghcjsDepOverrides ? (_:_:{})
+, haskell
+, linkFarm
+, buildPackages
+}:
+
+let
+ passthru = {
+ configuredSrc = callPackage ./configured-ghcjs-src.nix {
+ inherit ghcjsSrc;
+ inherit (bootPkgs) ghc alex;
+ inherit (bootGhcjs) version;
+ happy = bootPkgs.happy_1_19_12;
+ };
+ bootPkgs = bootPkgs.extend (lib.foldr lib.composeExtensions (_:_:{}) [
+ (self: _: import stage0 {
+ inherit (passthru) configuredSrc;
+ inherit (self) callPackage;
+ })
+
+ (callPackage ./common-overrides.nix {
+ inherit haskellLib;
+ })
+ ghcjsDepOverrides
+ ]);
+
+ targetPrefix = "";
+ inherit bootGhcjs;
+ inherit (bootGhcjs) version;
+ isGhcjs = true;
+
+ enableShared = true;
+
+ socket-io = pkgsHostHost.nodePackages."socket.io";
+
+ haskellCompilerName = "ghcjs-${bootGhcjs.version}";
+ };
+
+ bootGhcjs = haskellLib.justStaticExecutables passthru.bootPkgs.ghcjs;
+
+ # This provides the stuff we need from the emsdk
+ emsdk = linkFarm "emsdk" [
+ { name = "upstream/bin"; path = buildPackages.clang + "/bin";}
+ { name = "upstream/emscripten"; path = buildPackages.emscripten + "/bin"; }
+ ];
+
+in stdenv.mkDerivation {
+ name = bootGhcjs.name;
+ src = passthru.configuredSrc;
+ nativeBuildInputs = [
+ bootGhcjs
+ passthru.bootPkgs.ghc
+ cabal-install
+ nodejs
+ makeWrapper
+ xorg.lndir
+ gmp
+ pkg-config
+ ] ++ lib.optionals stdenv.isDarwin [
+ gcc # https://github.com/ghcjs/ghcjs/issues/663
+ ];
+ dontConfigure = true;
+ dontInstall = true;
+ buildPhase = ''
+ export HOME=$TMP
+ mkdir $HOME/.cabal
+ touch $HOME/.cabal/config
+ cd lib/boot
+
+ mkdir -p $out/bin
+ mkdir -p $out/lib/${bootGhcjs.name}
+ lndir ${bootGhcjs}/bin $out/bin
+ chmod -R +w $out/bin
+ rm $out/bin/ghcjs-boot
+ cp ${bootGhcjs}/bin/ghcjs-boot $out/bin
+ rm $out/bin/haddock
+ cp ${bootGhcjs}/bin/haddock $out/bin
+ cp ${bootGhcjs}/bin/private-ghcjs-hsc2hs $out/bin/ghcjs-hsc2hs
+
+ wrapProgram $out/bin/ghcjs-boot --set ghcjs_libexecdir $out/bin
+
+ wrapProgram $out/bin/ghcjs --add-flags "-B$out/lib/${bootGhcjs.name}"
+ wrapProgram $out/bin/haddock --add-flags "-B$out/lib/${bootGhcjs.name}"
+ wrapProgram $out/bin/ghcjs-pkg --add-flags "--global-package-db=$out/lib/${bootGhcjs.name}/package.conf.d"
+ wrapProgram $out/bin/ghcjs-hsc2hs --add-flags "-I$out/lib/${bootGhcjs.name}/include --template=$out/lib/${bootGhcjs.name}/include/template-hsc.h"
+
+ env PATH=$out/bin:$PATH $out/bin/ghcjs-boot --with-emsdk=${emsdk} --no-haddock
+ '';
+
+ enableParallelBuilding = true;
+
+ inherit passthru;
+
+ # The emscripten is broken on darwin
+ meta.platforms = lib.platforms.linux;
+ meta.maintainers = with lib.maintainers; [ obsidian-systems-maintenance ];
+ }
diff --git a/pkgs/development/compilers/ghcjs/8.10/generate_host_version.hs b/pkgs/development/compilers/ghcjs/8.10/generate_host_version.hs
new file mode 100644
index 000000000000..8bf2583d238c
--- /dev/null
+++ b/pkgs/development/compilers/ghcjs/8.10/generate_host_version.hs
@@ -0,0 +1,54 @@
+-- Generate the Host.hs and Version.hs as done by hadrian/src/Rules/Generate.hs
+
+import GHC.Platform.Host
+import GHC.Version
+
+main = do
+ writeFile "Version.hs" versionHs
+ writeFile "Host.hs" platformHostHs
+
+-- | Generate @Version.hs@ files.
+versionHs :: String
+versionHs = unlines
+ [ "module GHC.Version where"
+ , ""
+ , "import Prelude -- See Note [Why do we import Prelude here?]"
+ , ""
+ , "cProjectGitCommitId :: String"
+ , "cProjectGitCommitId = " ++ show cProjectGitCommitId
+ , ""
+ , "cProjectVersion :: String"
+ , "cProjectVersion = " ++ show cProjectVersion
+ , ""
+ , "cProjectVersionInt :: String"
+ , "cProjectVersionInt = " ++ show cProjectVersionInt
+ , ""
+ , "cProjectPatchLevel :: String"
+ , "cProjectPatchLevel = " ++ show cProjectPatchLevel
+ , ""
+ , "cProjectPatchLevel1 :: String"
+ , "cProjectPatchLevel1 = " ++ show cProjectPatchLevel1
+ , ""
+ , "cProjectPatchLevel2 :: String"
+ , "cProjectPatchLevel2 = " ++ show cProjectPatchLevel2
+ ]
+
+-- | Generate @Platform/Host.hs@ files.
+platformHostHs :: String
+platformHostHs = unlines
+ [ "module GHC.Platform.Host where"
+ , ""
+ , "import GHC.Platform"
+ , ""
+ , "cHostPlatformArch :: Arch"
+ , "cHostPlatformArch = " ++ show cHostPlatformArch
+ , ""
+ , "cHostPlatformOS :: OS"
+ , "cHostPlatformOS = " ++ show cHostPlatformOS
+ , ""
+ , "cHostPlatformMini :: PlatformMini"
+ , "cHostPlatformMini = PlatformMini"
+ , " { platformMini_arch = cHostPlatformArch"
+ , " , platformMini_os = cHostPlatformOS"
+ , " }"
+ ]
diff --git a/pkgs/development/compilers/ghcjs/8.10/ghcjs-base.nix b/pkgs/development/compilers/ghcjs/8.10/ghcjs-base.nix
new file mode 100644
index 000000000000..0cc26dc1a7f8
--- /dev/null
+++ b/pkgs/development/compilers/ghcjs/8.10/ghcjs-base.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, aeson, array, attoparsec, base, binary, bytestring
+, containers, deepseq, directory, dlist, fetchgit, ghc-prim
+, ghcjs-prim, hashable, HUnit, integer-gmp, primitive, QuickCheck
+, quickcheck-unicode, random, scientific, stdenv, test-framework
+, test-framework-hunit, test-framework-quickcheck2, text, time
+, transformers, unordered-containers, vector
+}:
+mkDerivation {
+ pname = "ghcjs-base";
+ version = "0.2.0.3";
+ src = fetchgit {
+ url = "git://github.com/ghcjs/ghcjs-base";
+ sha256 = "15fdkjv0l7hpbbsn5238xxgzfdg61g666nzbv2sgxkwryn5rycv0";
+ rev = "85e31beab9beffc3ea91b954b61a5d04e708b8f2";
+ };
+ libraryHaskellDepends = [
+ aeson attoparsec base binary bytestring containers deepseq dlist
+ ghc-prim ghcjs-prim hashable integer-gmp primitive scientific text
+ time transformers unordered-containers vector
+ ];
+ testHaskellDepends = [
+ array base bytestring deepseq directory ghc-prim ghcjs-prim HUnit
+ primitive QuickCheck quickcheck-unicode random test-framework
+ test-framework-hunit test-framework-quickcheck2 text
+ ];
+ homepage = "https://github.com/ghcjs/ghcjs-base";
+ description = "base library for GHCJS";
+ license = stdenv.lib.licenses.mit;
+}
diff --git a/pkgs/development/compilers/ghcjs/8.10/git.json b/pkgs/development/compilers/ghcjs/8.10/git.json
new file mode 100644
index 000000000000..18804d84acb1
--- /dev/null
+++ b/pkgs/development/compilers/ghcjs/8.10/git.json
@@ -0,0 +1,6 @@
+{
+ "url": "https://github.com/obsidiansystems/ghcjs",
+ "rev": "9fc935f2c3ba6c33ec62eb83afc9f52a893eb68c",
+ "sha256": "sha256:063dmir39c4i1z8ypnmq86g1x2vhqndmdpzc4hyzsy5jjqcbx6i3",
+ "fetchSubmodules": true
+}
diff --git a/pkgs/development/compilers/ghcjs/8.10/patches/vector-ghcjs-storable-set.patch b/pkgs/development/compilers/ghcjs/8.10/patches/vector-ghcjs-storable-set.patch
new file mode 100644
index 000000000000..4b11e61ced85
--- /dev/null
+++ b/pkgs/development/compilers/ghcjs/8.10/patches/vector-ghcjs-storable-set.patch
@@ -0,0 +1,14 @@
+diff --git a/Data/Vector/Storable/Mutable.hs b/Data/Vector/Storable/Mutable.hs
+index 8b538bc..2b74fce 100644
+--- a/Data/Vector/Storable/Mutable.hs
++++ b/Data/Vector/Storable/Mutable.hs
+@@ -197,7 +197,9 @@ storableSet (MVector n fp) x
+ 1 -> storableSetAsPrim n fp x (undefined :: Word8)
+ 2 -> storableSetAsPrim n fp x (undefined :: Word16)
+ 4 -> storableSetAsPrim n fp x (undefined :: Word32)
++#if !defined(ghcjs_HOST_OS)
+ 8 -> storableSetAsPrim n fp x (undefined :: Word64)
++#endif
+ _ -> withForeignPtr fp $ \p -> do
+ poke p x
+
diff --git a/pkgs/development/compilers/ghcjs/8.10/stage0.nix b/pkgs/development/compilers/ghcjs/8.10/stage0.nix
new file mode 100644
index 000000000000..1cb476ab0cb6
--- /dev/null
+++ b/pkgs/development/compilers/ghcjs/8.10/stage0.nix
@@ -0,0 +1,77 @@
+{ callPackage, configuredSrc }:
+
+{
+
+ ghcjs = callPackage
+ ({ mkDerivation, aeson, alex, array, attoparsec, base, base16-bytestring
+ , base64-bytestring, binary, bytestring, Cabal, containers
+ , cryptohash, data-default, deepseq, directory, executable-path
+ , filepath, ghc-boot, ghc-boot-th, ghc-compact, ghc-heap, ghc-paths
+ , ghci, happy, hashable, hpc, http-types, HUnit, lens, lib
+ , lifted-base, mtl, network, optparse-applicative, parallel, parsec
+ , process, random, safe, shelly, split, stringsearch, syb, tar
+ , template-haskell, terminfo, test-framework, test-framework-hunit
+ , text, time, transformers, unix, unix-compat, unordered-containers
+ , vector, wai, wai-app-static, wai-extra, wai-websockets, warp
+ , webdriver, websockets, wl-pprint-text, xhtml, yaml
+ }:
+ mkDerivation {
+ pname = "ghcjs";
+ version = "8.10.7";
+ src = configuredSrc + /.;
+ isLibrary = true;
+ isExecutable = true;
+ libraryHaskellDepends = [
+ aeson array attoparsec base base16-bytestring base64-bytestring
+ binary bytestring Cabal containers cryptohash data-default deepseq
+ directory filepath ghc-boot ghc-boot-th ghc-compact ghc-heap
+ ghc-paths ghci hashable hpc lens mtl optparse-applicative parallel
+ parsec process safe split stringsearch syb template-haskell
+ terminfo text time transformers unix unordered-containers vector
+ wl-pprint-text yaml
+ ];
+ libraryToolDepends = [ alex happy ];
+ executableHaskellDepends = [
+ aeson array base binary bytestring Cabal containers deepseq
+ directory executable-path filepath ghc-boot lens mtl
+ optparse-applicative parsec process tar terminfo text time
+ transformers unix unix-compat unordered-containers vector xhtml
+ yaml
+ ];
+ testHaskellDepends = [
+ aeson base bytestring data-default deepseq directory filepath
+ http-types HUnit lens lifted-base network optparse-applicative
+ process random shelly 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 = lib.licenses.mit;
+ }) {};
+
+ ghcjs-th = callPackage
+ ({ mkDerivation, base, binary, bytestring, containers, ghc-prim
+ , ghci, lib, template-haskell
+ }:
+ mkDerivation {
+ pname = "ghcjs-th";
+ version = "0.1.0.0";
+ src = configuredSrc + /lib/ghcjs-th;
+ libraryHaskellDepends = [
+ base binary bytestring containers ghc-prim ghci template-haskell
+ ];
+ homepage = "http://github.com/ghcjs";
+ license = lib.licenses.mit;
+ }) {};
+
+ ghcjs-prim = callPackage
+ ({ mkDerivation, base, ghc-prim, lib }:
+ mkDerivation {
+ pname = "ghcjs-prim";
+ version = "0.1.1.0";
+ src = ./.;
+ libraryHaskellDepends = [ base ghc-prim ];
+ homepage = "http://github.com/ghcjs";
+ license = lib.licenses.mit;
+ }) {};
+}
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs-8.10.nix b/pkgs/development/haskell-modules/configuration-ghcjs-8.10.nix
new file mode 100644
index 000000000000..468e9a5ff419
--- /dev/null
+++ b/pkgs/development/haskell-modules/configuration-ghcjs-8.10.nix
@@ -0,0 +1,113 @@
+# GHCJS package fixes
+#
+# Please insert new packages *alphabetically*
+# in the OTHER PACKAGES section.
+{ pkgs, haskellLib }:
+
+let
+ removeLibraryHaskellDepends = pnames: depends:
+ builtins.filter (e: !(builtins.elem (e.pname or "") pnames)) depends;
+in
+
+with haskellLib;
+
+self: super:
+
+## GENERAL SETUP BASE PACKAGES
+{
+ inherit (self.ghc.bootPkgs)
+ jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
+
+ ghcjs-base = dontCheck (self.callPackage ../compilers/ghcjs/8.10/ghcjs-base.nix {
+ fetchgit = pkgs.buildPackages.fetchgit;
+ });
+
+ # GHCJS does not ship with the same core packages as GHC.
+ # https://github.com/ghcjs/ghcjs/issues/676
+ stm = doJailbreak self.stm_2_5_0_0;
+ exceptions = dontCheck self.exceptions_0_10_4;
+
+## OTHER PACKAGES
+
+ # Runtime exception in tests, missing C API h$realloc
+ base-compat-batteries = dontCheck super.base-compat-batteries;
+
+ # nodejs crashes during test
+ ChasingBottoms = dontCheck super.ChasingBottoms;
+
+ # need doctest
+ comonad = dontCheck super.comonad;
+ distributive = dontCheck super.distributive;
+
+ # doctest doesn't work on ghcjs, but sometimes dontCheck doesn't seem to get rid of the dependency
+ doctest = pkgs.lib.warn "ignoring dependency on doctest" null;
+
+ ghcjs-dom = overrideCabal super.ghcjs-dom (drv: {
+ libraryHaskellDepends = with self; [
+ ghcjs-base ghcjs-dom-jsffi text transformers
+ ];
+ configureFlags = [ "-fjsffi" "-f-webkit" ];
+ });
+
+ ghcjs-dom-jsffi = overrideCabal super.ghcjs-dom-jsffi (drv: {
+ libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base self.text ];
+ broken = false;
+ });
+
+ # https://github.com/Deewiant/glob/issues/39
+ Glob = dontCheck super.Glob;
+
+ # Test fails to compile during the hsc2hs stage
+ hashable = dontCheck super.hashable;
+
+ # uses doctest
+ http-types = dontCheck super.http-types;
+
+ jsaddle = overrideCabal super.jsaddle (drv: {
+ libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base ];
+ });
+
+ # Tests hang, possibly some issue with tasty and race(async) usage in the nonTerminating tests
+ logict = dontCheck super.logict;
+
+ patch = dontCheck super.patch;
+
+ # TODO: tests hang
+ pcre-light = dontCheck super.pcre-light;
+
+ # Terminal test not supported on ghcjs
+ QuickCheck = dontCheck super.QuickCheck;
+
+ reflex = overrideCabal super.reflex (drv: {
+ libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base ];
+ });
+
+ reflex-dom = overrideCabal super.reflex-dom (drv: {
+ libraryHaskellDepends = removeLibraryHaskellDepends ["jsaddle-webkit2gtk"] (drv.libraryHaskellDepends or []);
+ });
+
+ # https://github.com/dreixel/syb/issues/21
+ syb = dontCheck super.syb;
+
+ # nodejs crashes during test
+ scientific = dontCheck super.scientific;
+
+ # Tests use TH which gives error
+ tasty-quickcheck = dontCheck super.tasty-quickcheck;
+
+ temporary = dontCheck super.temporary;
+
+ # 2 tests fail, related to time precision
+ time-compat = dontCheck super.time-compat;
+
+ # TODO: The tests have a TH error, which has been fixed in ghc
+ # https://gitlab.haskell.org/ghc/ghc/-/issues/15481 but somehow the issue is
+ # still present here https://github.com/glguy/th-abstraction/issues/53
+ th-abstraction = dontCheck super.th-abstraction;
+
+ # https://github.com/haskell/vector/issues/410
+ vector = appendPatch super.vector (../compilers/ghcjs/patches/vector-ghcjs-storable-set.patch) ;
+
+ # Need hedgehog for tests, which fails to compile due to dep on concurrent-output
+ zenc = dontCheck super.zenc;
+}
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 0c529c61cc39..aa02f57db73a 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -9,6 +9,7 @@ let
"ghc8102BinaryMinimal"
"ghcjs"
"ghcjs86"
+ "ghcjs810"
"integer-simple"
"native-bignum"
"ghcHEAD"
@@ -145,6 +146,7 @@ in {
llvmPackages = pkgs.llvmPackages_10;
libffi = pkgs.libffi;
};
+
ghcjs = compiler.ghcjs86;
ghcjs86 = callPackage ../development/compilers/ghcjs/8.6 {
bootPkgs = packages.ghc865;
@@ -152,6 +154,11 @@ in {
stage0 = ../development/compilers/ghcjs/8.6/stage0.nix;
ghcjsDepOverrides = callPackage ../development/compilers/ghcjs/8.6/dep-overrides.nix {};
};
+ ghcjs810 = callPackage ../development/compilers/ghcjs/8.10 {
+ bootPkgs = packages.ghc8107;
+ ghcjsSrcJson = ../development/compilers/ghcjs/8.10/git.json;
+ stage0 = ../development/compilers/ghcjs/8.10/stage0.nix;
+ };
# The integer-simple attribute set contains all the GHC compilers
# build with integer-simple instead of integer-gmp.
@@ -254,6 +261,7 @@ in {
ghc = bh.compiler.ghcHEAD;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { };
};
+
ghcjs = packages.ghcjs86;
ghcjs86 = callPackage ../development/haskell-modules rec {
buildHaskellPackages = ghc.bootPkgs;
@@ -261,6 +269,12 @@ in {
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs-8.6.nix { };
};
+ ghcjs810 = callPackage ../development/haskell-modules rec {
+ buildHaskellPackages = ghc.bootPkgs;
+ ghc = bh.compiler.ghcjs810;
+ compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
+ packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs-8.10.nix { };
+ };
# The integer-simple attribute set contains package sets for all the GHC compilers
# using integer-simple instead of integer-gmp.