about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--users/glittershark/xanthous/default.nix24
-rw-r--r--users/glittershark/xanthous/hie.nix16
-rwxr-xr-xusers/glittershark/xanthous/hie.sh10
-rw-r--r--users/glittershark/xanthous/pkg.nix15
-rw-r--r--users/glittershark/xanthous/shell.nix48
5 files changed, 42 insertions, 71 deletions
diff --git a/users/glittershark/xanthous/default.nix b/users/glittershark/xanthous/default.nix
index c4260fe258..0b89a50afb 100644
--- a/users/glittershark/xanthous/default.nix
+++ b/users/glittershark/xanthous/default.nix
@@ -1,21 +1,7 @@
-{ nixpkgs ? import ./nixpkgs.nix {}
-, pkgs ? nixpkgs.pkgs
-, lib ? nixpkgs.lib
-, compiler ? "ghc865"
-, failOnWarnings ? false
+{ pkgs ? (import ../../../. {}).third_party
+, lib ? pkgs.lib
 , ...
 }:
-let
-  inherit (lib) id;
-  inherit (pkgs) fetchurl;
-  all-hies = import (fetchTarball {
-    url = "https://github.com/infinisil/all-hies/archive/4b6aab017cdf96a90641dc287437685675d598da.tar.gz";
-    sha256 = "0ap12mbzk97zmxk42fk8vqacyvpxk29r2wrnjqpx4m2w9g7gfdya";
-  }) {};
-  hie = all-hies.selection { selector = p: { inherit (p) ghc865; }; };
-  xanthous =
-    (if failOnWarnings then pkgs.haskell.lib.failOnAllWarnings else id)
-      ((pkgs.haskellPackages
-      # .extend (import ./haskell-overlay.nix { inherit pkgs; })
-    ).callPackage (import ./pkg.nix { inherit pkgs; }) {}); in
-xanthous // { inherit hie; }
+pkgs.haskell.lib.failOnAllWarnings (
+  pkgs.haskellPackages.callPackage (import ./pkg.nix { inherit pkgs; }) {}
+)
diff --git a/users/glittershark/xanthous/hie.nix b/users/glittershark/xanthous/hie.nix
new file mode 100644
index 0000000000..c8b1d2b5f5
--- /dev/null
+++ b/users/glittershark/xanthous/hie.nix
@@ -0,0 +1,16 @@
+{ pkgs ? (import ../../../. {}).third_party }:
+
+let
+  all-hies = (fetchTarball {
+    url = "https://github.com/infinisil/all-hies/archive/eff5d9a5e1a84150014095494331cf63e59923af.tar.gz";
+    sha256 = "19bws9fyjhgiikig86cri05fxz1wrz60n69zrigq5wzbyn4hwv9h";
+  });
+
+  sources = import "${all-hies}/sources.nix";
+  build = import "${all-hies}/build.nix";
+
+in (build {
+  glibcName = pkgs.glibc.name;
+  inherit sources;
+  ghcVersion = "8.8.3";
+}).combined
diff --git a/users/glittershark/xanthous/hie.sh b/users/glittershark/xanthous/hie.sh
index 4ea97997c7..223a432203 100755
--- a/users/glittershark/xanthous/hie.sh
+++ b/users/glittershark/xanthous/hie.sh
@@ -1,10 +1,6 @@
 #!/usr/bin/env bash
+set -euo pipefail
 
-cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1
+cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1
 
-argv=( "$@"  )
-argv=( "${argv[@]/\'/\'\\\'\'}"  )
-argv=( "${argv[@]/#/\'}"  )
-argv=( "${argv[@]/%/\'}"  )
-
-exec nix-shell --pure --run "exec $(nix-build -o dist/nix/hie -A hie)/bin/hie ${argv[*]}"
+exec nix-shell --run "$(nix-build -o dist/bin/hie hie.nix)/bin/hie $*"
diff --git a/users/glittershark/xanthous/pkg.nix b/users/glittershark/xanthous/pkg.nix
index 91de68ea32..fc303a3eda 100644
--- a/users/glittershark/xanthous/pkg.nix
+++ b/users/glittershark/xanthous/pkg.nix
@@ -1,16 +1,7 @@
-{ pkgs ? import ./nixpkgs.nix {} }:
-let
-  inherit (builtins) filterSource elem not;
-  gitignoreSource = (import (pkgs.fetchFromGitHub {
-    owner = "hercules-ci";
-    repo = "gitignore";
-    rev = "f9e996052b5af4032fe6150bba4a6fe4f7b9d698";
-    sha256 = "0jrh5ghisaqdd0vldbywags20m2cxpkbbk5jjjmwaw0gr8nhsafv";
-    # date = 2019-09-18T15:15:15+02:00;
-  }) { inherit (pkgs) lib; }).gitignoreSource;
-in
+{ pkgs ? (import ../../../. {}).third_party }:
+
 import (pkgs.haskellPackages.haskellSrc2nix {
   name = "xanthous";
-  src = gitignoreSource ./.;
+  src = pkgs.gitignoreSource ./.;
   extraCabal2nixOptions = "--hpack";
 })
diff --git a/users/glittershark/xanthous/shell.nix b/users/glittershark/xanthous/shell.nix
index b78844c0ee..491f0779f8 100644
--- a/users/glittershark/xanthous/shell.nix
+++ b/users/glittershark/xanthous/shell.nix
@@ -1,35 +1,17 @@
-{ nixpkgs ? import ./nixpkgs.nix {}
-, pkgs ? nixpkgs.pkgs
-, compiler ? "ghc865"
-, withHoogle ? true
-}:
-let
-  pkg = import ./pkg.nix { inherit pkgs; };
+{ pkgs ? (import ../../../. {}).third_party, ... }:
 
-  packageSet = (
-    if compiler == "default"
-    then pkgs.haskellPackages
-    else pkgs.haskell.packages.${compiler}
-  );
+(pkgs.haskellPackages.extend (pkgs.haskell.lib.packageSourceOverrides {
+  xanthous = pkgs.gitignoreSource ./.;
+})).shellFor {
+  packages = p: [p.xanthous];
+  withHoogle = true;
+  buildInputs = with pkgs.haskellPackages; [
+    cabal-install
+    ghc-prof-flamegraph
+    hp2pretty
+  ];
 
-  haskellPackages = (
-    if withHoogle
-    then packageSet.override {
-      overrides = (self: super: {
-        ghc = super.ghc // { withPackages = super.ghc.withHoogle; };
-        ghcWithPackages = self.ghc.withPackages;
-      } // (import ../../../third_party/haskell_overlay { inherit pkgs; })
-        self super);
-    }
-    else packageSet
-  );
-
-  drv = pkgs.haskell.lib.doBenchmark (haskellPackages.callPackage pkg {});
-
-  inherit (pkgs.haskell.lib) addBuildTools;
-in
-(addBuildTools drv (with haskellPackages; [
-  cabal-install
-  ghc-prof-flamegraph
-  hp2pretty
-])).env
+  nativeBuildInputs = [
+    (import ./hie.nix { inherit pkgs; })
+  ];
+}