summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix29
-rw-r--r--pkgs/top-level/release-haskell.nix3
2 files changed, 14 insertions, 18 deletions
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 820602415ff..33326af949a 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -1078,26 +1078,17 @@ self: super: {
 
   purescript =
     lib.pipe
-      (super.purescript.override {
-        # The latest version of language-javascript is 0.7.1.0,
-        # but it seems to have a bug with async support:
+      (super.purescript.overrideScope (self: super: {
+        # Purescript targets Stackage LTS 18, so we need to downgrade a few things
+        aeson = self.aeson_1_5_6_0;
+        bower-json = self.bower-json_1_0_0_1;
+        # As of 2021-11-08, the latest release of `language-javascript` is 0.7.1.0,
+        # but it has a problem with parsing the `async` keyword.  It doesn't allow
+        # `async` to be used as an object key:
         # https://github.com/erikd/language-javascript/issues/131
         language-javascript = self.language-javascript_0_7_0_0;
-      })
-      [ # This PR upgrades purescript from building with LTS-17 to building
-        # with LTS-18.  Aside from bumping dependency bounds, there is one
-        # minor change that needs to be made in app/Main.hs.
-        #
-        # This patch can likely be removed when purescript-0.14.6 is released.
-        (appendPatch
-          (fetchpatch {
-            url = "https://patch-diff.githubusercontent.com/raw/purescript/purescript/pull/4199.patch";
-            sha256 = "sha256-OeG30EfCHs7gttLME909WfKxkEZr7Ch3leYiw4lElGg=";
-            includes = [
-              "app/Main.hs"
-            ];
-          })
-        )
+      }))
+      [
         # PureScript uses nodejs to run tests, so the tests have been disabled
         # for now.  If someone is interested in figuring out how to get this
         # working, it seems like it might be possible.
@@ -1108,6 +1099,8 @@ self: super: {
         doJailbreak
         # Generate shell completions
         (generateOptparseApplicativeCompletion "purs")
+        # Doesn't support GHC >= 9.0 (something related to instance resolution and TH)
+        (if lib.versionAtLeast self.ghc.version "9.0" then markBroken else lib.id)
       ];
 
   # purenix-1.0 has a strict version bound requiring purescript-0.14.4, but it
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
index 8de8d2fb3f4..83b154a191a 100644
--- a/pkgs/top-level/release-haskell.nix
+++ b/pkgs/top-level/release-haskell.nix
@@ -381,6 +381,9 @@ let
         compilerNames.ghc902
         compilerNames.ghc923
       ];
+      purescript = [
+        compilerNames.ghc8107
+      ];
     })
     {
       mergeable = pkgs.releaseTools.aggregate {