From 15f8c5b0dd9ac3e45a0d4a7e8db5d1d0e454854e Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Sun, 6 Oct 2019 19:07:50 +0100 Subject: [PATCH] Build with ghc881 --- .circleci/config.yml | 16 +++++++++++++++- nix/cabal-doctest-1.0.7.nix | 10 ++++++++++ nix/haskell-src-exts-1.21.1.nix | 19 +++++++++++++++++++ nix/hedgehog-1.0.1.nix | 26 ++++++++++++++++++++++++++ nix/nixpkgs.nix | 9 ++++++++- 5 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 nix/cabal-doctest-1.0.7.nix create mode 100644 nix/haskell-src-exts-1.21.1.nix create mode 100644 nix/hedgehog-1.0.1.nix diff --git a/.circleci/config.yml b/.circleci/config.yml index ba2224d..7832fa7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,7 +11,7 @@ commands: - run: name: "nix" command: | - nix-channel --add https://nixos.org/channels/nixpkgs-unstable + nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs nix-channel --update - run: name: "install" @@ -35,6 +35,19 @@ commands: name: "cachix push" command: cachix push free-algebras << parameters.o >> jobs: + GHC881: + <<: *defaults + steps: + - setup + - run: + name: "GHC 881" + command: | + nix-build -A free-category --argstr compiler ghc881 -o result-fc + nix-build -A examples --argstr compiler ghc881 -o result-ex + - cachix-push: + o: "./result-fc" + - cachix-push: + o: "./result-ex" GHC865: <<: *defaults steps: @@ -92,6 +105,7 @@ jobs: workflows: build: jobs: + - GHC881 - GHC865 - GHC844 - GHC822 diff --git a/nix/cabal-doctest-1.0.7.nix b/nix/cabal-doctest-1.0.7.nix new file mode 100644 index 0000000..db30cec --- /dev/null +++ b/nix/cabal-doctest-1.0.7.nix @@ -0,0 +1,10 @@ +{ mkDerivation, base, Cabal, directory, filepath, stdenv }: +mkDerivation { + pname = "cabal-doctest"; + version = "1.0.7"; + sha256 = "1080ed5f7eca48621853178d701dbee209698eb357957e00a56da6d635a7adec"; + libraryHaskellDepends = [ base Cabal directory filepath ]; + homepage = "https://github.com/phadej/cabal-doctest"; + description = "A Setup.hs helper for doctests running"; + license = stdenv.lib.licenses.bsd3; +} diff --git a/nix/haskell-src-exts-1.21.1.nix b/nix/haskell-src-exts-1.21.1.nix new file mode 100644 index 0000000..b057fe8 --- /dev/null +++ b/nix/haskell-src-exts-1.21.1.nix @@ -0,0 +1,19 @@ +{ mkDerivation, array, base, containers, directory, filepath +, ghc-prim, happy, mtl, pretty, pretty-show, smallcheck, stdenv +, tasty, tasty-golden, tasty-smallcheck +}: +mkDerivation { + pname = "haskell-src-exts"; + version = "1.21.1"; + sha256 = "2ec911614325f1e5eef7e5bef15c08b8265931d69da3ce566af109d486453e60"; + libraryHaskellDepends = [ array base ghc-prim pretty ]; + libraryToolDepends = [ happy ]; + testHaskellDepends = [ + base containers directory filepath mtl pretty-show smallcheck tasty + tasty-golden tasty-smallcheck + ]; + doCheck = false; + homepage = "https://github.com/haskell-suite/haskell-src-exts"; + description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer"; + license = stdenv.lib.licenses.bsd3; +} diff --git a/nix/hedgehog-1.0.1.nix b/nix/hedgehog-1.0.1.nix new file mode 100644 index 0000000..974b3bb --- /dev/null +++ b/nix/hedgehog-1.0.1.nix @@ -0,0 +1,26 @@ +{ mkDerivation, ansi-terminal, async, base, bytestring +, concurrent-output, containers, directory, exceptions, fail +, lifted-async, mmorph, monad-control, mtl, pretty-show, primitive +, random, resourcet, semigroups, stdenv, stm, template-haskell +, text, time, transformers, transformers-base, wl-pprint-annotated +}: +mkDerivation { + pname = "hedgehog"; + version = "1.0.1"; + sha256 = "202ea01fe1f30890307bd8c1ceaa0d24f988472e8371237271636abbf08487e1"; + revision = "1"; + editedCabalFile = "0dq3ry7py2wsiwxar11zbvm3xmifm92nx4bh61lqxzmpwyyiwnxn"; + libraryHaskellDepends = [ + ansi-terminal async base bytestring concurrent-output containers + directory exceptions fail lifted-async mmorph monad-control mtl + pretty-show primitive random resourcet semigroups stm + template-haskell text time transformers transformers-base + wl-pprint-annotated + ]; + testHaskellDepends = [ + base containers mmorph mtl pretty-show semigroups text transformers + ]; + homepage = "https://hedgehog.qa"; + description = "Release with confidence"; + license = stdenv.lib.licenses.bsd3; +} diff --git a/nix/nixpkgs.nix b/nix/nixpkgs.nix index 619c38d..3f418f1 100644 --- a/nix/nixpkgs.nix +++ b/nix/nixpkgs.nix @@ -5,7 +5,7 @@ let || compiler == "ghc822" || compiler == "ghc844" then "722fcbbb80b2142583e9266efe77992f8e32ac4c" - else "81760f32353fa7f309a49fda17d90f43ac1e9a42"; + else "57b66eb3f2a0e824c48759f2729370b1b9fd7660"; url = "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz"; url802 = "https://github.com/NixOS/nixpkgs/archive/${rev802}.tar.gz"; config = @@ -18,6 +18,13 @@ let in { haskell = super.haskell // { packages = super.haskell.packages // { + ghc881 = super.haskell.packages.ghc881.override { + overrides = self: super: { + cabal-doctest = super.callPackage ./cabal-doctest-1.0.7.nix {}; + haskell-src-exts = super.callPackage ./haskell-src-exts-1.21.1.nix {}; + hedgehog = super.callPackage ./hedgehog-1.0.1.nix {}; + }; + }; ghc844 = super.haskell.packages.ghc844.override { inherit overrides; }; ghc822 = super.haskell.packages.ghc822.override { inherit overrides; }; ghc802 = super.haskell.packages.ghc802.override {