Skip to content

Commit d8c402a

Browse files
authoredMay 24, 2023
Merge pull request #67 from mightybyte/ghc96
Update to build with GHC 9.6.1
2 parents 6609337 + 0aef21d commit d8c402a

File tree

8 files changed

+97
-23
lines changed

8 files changed

+97
-23
lines changed
 

‎.github/workflows/haskell.yml

+5-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
build:
77
strategy:
88
matrix:
9-
ghc: ['8.4.4', '8.6.5', '8.8.4', '8.10.7', '9.4.4']
9+
ghc: ['8.4.4', '8.6.5', '8.8.4', '8.10.7', '9.4.5', '9.6.1']
1010
os: ['ubuntu-latest', 'macos-latest']
1111
runs-on: ${{ matrix.os }}
1212

@@ -16,6 +16,7 @@ jobs:
1616
- uses: haskell/actions/setup@v2
1717
with:
1818
ghc-version: ${{ matrix.ghc }}
19+
cabal-version: '3.10.1.0'
1920
- name: Cache
2021
uses: actions/cache@v3
2122
env:
@@ -35,5 +36,7 @@ jobs:
3536
run: cabal build --enable-tests --enable-benchmarks all
3637
- name: Run tests
3738
run: cabal test all
38-
- name: Build Docs
39+
- if: matrix.ghc != '8.4.4'
40+
# disable doc builds on older ghcs because some dependency docs aren't compatible
41+
name: Build Docs
3942
run: cabal haddock

‎ChangeLog.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Revision history for reflex-vty
22

3+
## 0.4.1.1
4+
5+
* Support ghc-9.6
6+
37
## 0.4.1.0
48

59
* Loosen version bounds and support GHC 9.4.4

‎nixpkgs/github.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
"repo": "nixpkgs",
44
"branch": "nixpkgs-unstable",
55
"private": false,
6-
"rev": "e37ef84b478fa8da0ced96522adfd956fde9047a",
7-
"sha256": "03qak39mn2142gp6zglrzrkdbig6h4r3da1psmvf3q2dwcw3zsfv"
6+
"rev": "c7eb65213bd7d95eafb8c5e2e181f04da103d054",
7+
"sha256": "1glf6j13hbwi459qrc8kkkhfw27a08vdg17sr3zwhadg4bkxz5ia"
88
}

‎reflex-vty.cabal

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: reflex-vty
2-
version: 0.4.1.0
2+
version: 0.4.1.1
33
synopsis: Reflex FRP host and widgets for VTY applications
44
description:
55
Build terminal applications using functional reactive programming (FRP) with Reflex FRP (<https://reflex-frp.org>).
@@ -18,7 +18,7 @@ extra-source-files:
1818
ChangeLog.md
1919
extra-doc-files: doc/tasks.png
2020
tested-with:
21-
GHC ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.4.4
21+
GHC ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.4.5 || ==9.6.1
2222

2323
source-repository head
2424
type: git
@@ -39,11 +39,11 @@ library
3939
, Reflex.Spider.Orphans
4040
, Control.Monad.NodeId
4141
build-depends:
42-
base >= 4.10.0 && < 4.18,
42+
base >= 4.10.0 && < 4.19,
4343
bimap >= 0.3.3 && < 0.6,
4444
containers >= 0.5.0 && < 0.7,
45-
mtl >= 2.2.2 && < 2.3,
46-
transformers >= 0.5.5 && < 0.6,
45+
mtl >= 2.2.2 && < 2.4,
46+
transformers >= 0.5.5 && < 0.7,
4747
stm >= 2.4 && < 2.6,
4848
data-default >= 0.7.1 && < 0.8,
4949
dependent-map >= 0.4 && < 0.5,
@@ -56,7 +56,7 @@ library
5656
ref-tf >= 0.4.0 && < 0.6,
5757
reflex >= 0.8 && < 1,
5858
time >= 1.8.0 && < 1.13,
59-
vty >= 5.28 && < 5.38
59+
vty >= 5.28 && < 5.39
6060
hs-source-dirs: src
6161
default-language: Haskell2010
6262
ghc-options: -Wall

‎release.nix

+73-12
Original file line numberDiff line numberDiff line change
@@ -4,42 +4,103 @@ let
44
pkgs = (reflex-platform {}).nixpkgs;
55
supportedSystems = [ "x86_64-linux" "x86_64-darwin" ];
66
inherit (pkgs) lib;
7+
haskellLib = pkgs.haskell.lib;
78
commonOverrides = self: super: {
89
vty = self.callHackageDirect {
910
pkg = "vty";
10-
ver = "5.37";
11-
sha256 = "01ppspii5x02iik9rxkf2idi6r9ngax6w3mqi6d8qj765w3cksiq";
11+
ver = "5.38";
12+
sha256 = "0kcd3ln9xmc62ka0i7habzvjjar8z63mlvl15rdhf8hqmda0b7r7";
1213
} {};
1314
};
14-
in
15-
lib.genAttrs supportedSystems (system: let
15+
ghcs = lib.genAttrs supportedSystems (system: let
1616
rp = reflex-platform { inherit system; __useNewerCompiler = true; };
1717
rpGhc = rp.ghc.override {
1818
overrides = commonOverrides;
1919
};
20-
nixGhc = (import ./nixpkgs { inherit system; }).haskell.packages.ghc943.override {
20+
nixGhc945 = (import ./nixpkgs { inherit system; }).haskell.packages.ghc945.override {
2121
overrides = self: super: commonOverrides self super // {
2222
hlint = self.callHackageDirect {
2323
pkg = "hlint";
2424
ver = "3.5";
2525
sha256 = "1np43k54918v54saqqgnd82ccd6225njwxpg2031asi70jam80x9";
2626
} {};
27+
28+
# Jailbroken until https://github.com/audreyt/string-qq/pull/3
29+
string-qq = pkgs.haskell.lib.dontCheck super.string-qq;
30+
patch = self.callHackageDirect {
31+
pkg = "patch";
32+
ver = "0.0.8.2";
33+
sha256 = "160zqqhjg48fr3a33gffd82qm3728c8hwf8sn37pbpv82fw71rzg";
34+
} {};
35+
36+
reflex = self.callHackageDirect {
37+
pkg = "reflex";
38+
ver = "0.9.0.1";
39+
sha256 = "1yrcashxxclvlvv3cs5gv75rvlsg1gb0m36kssnk2zvhbh94240y";
40+
} {};
41+
};
42+
};
43+
nixGhc961 = (import ./nixpkgs { inherit system; }).haskell.packages.ghc961.override {
44+
overrides = self: super: {
2745
patch = self.callHackageDirect {
2846
pkg = "patch";
29-
ver = "0.0.8.1";
30-
sha256 = "0q5rxnyilhbnfph48fnxbclggsbbhs0pkn0kfiadm0hmfr440cgk";
47+
ver = "0.0.8.2";
48+
sha256 = "160zqqhjg48fr3a33gffd82qm3728c8hwf8sn37pbpv82fw71rzg";
3149
} {};
50+
3251
reflex = self.callHackageDirect {
3352
pkg = "reflex";
34-
ver = "0.9.0.0";
35-
sha256 = "0ibashkz3ifwxa61zg3fwamvjwv125l7jhjd74kgjbq13zpx23ib";
53+
ver = "0.9.0.1";
54+
sha256 = "1yrcashxxclvlvv3cs5gv75rvlsg1gb0m36kssnk2zvhbh94240y";
55+
} {};
56+
these-lens = self.callHackageDirect {
57+
pkg = "these-lens";
58+
ver = "1.0.1.3";
59+
sha256 = "0n1vkr57jz5yvy4jm15v5cs42rp342ni0gisib7aqyhibpicqs5c";
60+
} {};
61+
these = self.callHackageDirect {
62+
pkg = "these";
63+
ver = "1.2";
64+
sha256 = "1iaaq1fsvg8c3l0czcicshkmbbr00hnwkdamjbkljsa1qvlilaf0";
65+
} {};
66+
lens = self.callHackageDirect {
67+
pkg = "lens";
68+
ver = "5.2.2";
69+
sha256 = "0c4a421sxfjm1cj3nvgwkr4glll23mqnsvs2iv5qh85931h2f3cy";
70+
} {};
71+
72+
assoc = self.callHackageDirect {
73+
pkg = "assoc";
74+
ver = "1.1";
75+
sha256 = "1krvcafrbj98z5hv55gq4zb1in5yd71nmz9zdiqgnywjzbrvpf75";
3676
} {};
77+
78+
strict = self.callHackageDirect {
79+
pkg = "strict";
80+
ver = "0.5";
81+
sha256 = "02iyvrr7nd7fnivz78lzdchy8zw1cghqj1qx2yzbbb9869h1mny7";
82+
} {};
83+
vty = self.callHackageDirect {
84+
pkg = "vty";
85+
ver = "5.38";
86+
sha256 = "0kcd3ln9xmc62ka0i7habzvjjar8z63mlvl15rdhf8hqmda0b7r7";
87+
} {};
88+
89+
3790
# Jailbroken until https://github.com/audreyt/string-qq/pull/3
38-
string-qq = pkgs.haskell.lib.dontCheck super.string-qq;
91+
string-qq = haskellLib.dontCheck super.string-qq;
92+
# Tests aren't compatible with transformers-0.6
93+
bimap = haskellLib.dontCheck super.bimap;
94+
exception-transformers = haskellLib.doJailbreak (haskellLib.dontCheck super.exception-transformers);
95+
3996
};
4097
};
4198
in
4299
{
100+
recurseForDerivations = true;
43101
ghc810 = rpGhc.callCabal2nix "reflex-vty" (import ./src.nix) {};
44-
ghc943 = nixGhc.callCabal2nix "reflex-vty" (import ./src.nix) {};
45-
})
102+
ghc945 = nixGhc945.callCabal2nix "reflex-vty" (import ./src.nix) {};
103+
ghc961 = nixGhc961.callCabal2nix "reflex-vty" (import ./src.nix) {};
104+
});
105+
in
106+
ghcs

‎src/Control/Monad/NodeId.hs

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ module Control.Monad.NodeId
1111
) where
1212

1313
import Control.Monad.Morph
14+
import Control.Monad.Fix
1415
import Control.Monad.Reader
1516
import Control.Monad.Ref
1617
import Data.IORef

‎src/Data/Text/Zipper.hs

+4-1
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,14 @@ module Data.Text.Zipper where
1212
import Prelude
1313

1414
import Control.Exception (assert)
15-
import Control.Monad.State (evalState, forM, get, put)
1615
import Data.Char (isSpace)
1716
import Data.Map (Map)
1817
import Data.Maybe (fromMaybe)
1918
import Data.String
19+
import Control.Monad
20+
import Control.Monad.Fix
21+
import Control.Monad.State (evalState, get, put)
22+
2023
import Data.Text (Text)
2124
import Data.Text.Internal (Text(..), text)
2225
import Data.Text.Internal.Fusion (stream)

‎src/Reflex/Vty/Widget/Layout.hs

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ module Reflex.Vty.Widget.Layout where
99
import Control.Applicative (liftA2)
1010
import Control.Monad.Morph
1111
import Control.Monad.NodeId (MonadNodeId(..), NodeId)
12+
import Control.Monad
13+
import Control.Monad.Fix
1214
import Control.Monad.Reader
1315
import Data.List (mapAccumL)
1416
import Data.Map.Ordered (OMap)

0 commit comments

Comments
 (0)
Please sign in to comment.