Skip to content

Commit 538ae98

Browse files
authored
Merge pull request #122 from haskellari/ghc-9.6
Add GHC-9.6 job
2 parents 6b22c2e + f5dae3d commit 538ae98

File tree

5 files changed

+76
-43
lines changed

5 files changed

+76
-43
lines changed

.github/workflows/haskell-ci.yml

+28-11
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
#
99
# For more information, see https://github.com/haskell-CI/haskell-ci
1010
#
11-
# version: 0.15.20221225
11+
# version: 0.15.20230313
1212
#
13-
# REGENDATA ("0.15.20221225",["github","--config=cabal.haskell-ci","lattices.cabal"])
13+
# REGENDATA ("0.15.20230313",["github","--config=cabal.haskell-ci","lattices.cabal"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -32,6 +32,11 @@ jobs:
3232
strategy:
3333
matrix:
3434
include:
35+
- compiler: ghc-9.6.1
36+
compilerKind: ghc
37+
compilerVersion: 9.6.1
38+
setup-method: ghcup
39+
allow-failure: false
3540
- compiler: ghc-9.4.4
3641
compilerKind: ghc
3742
compilerVersion: 9.4.4
@@ -103,15 +108,15 @@ jobs:
103108
curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
104109
chmod a+x "$HOME/.ghcup/bin/ghcup"
105110
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
106-
"$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
111+
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
107112
else
108113
apt-add-repository -y 'ppa:hvr/ghc'
109114
apt-get update
110115
apt-get install -y "$HCNAME"
111116
mkdir -p "$HOME/.ghcup/bin"
112117
curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
113118
chmod a+x "$HOME/.ghcup/bin/ghcup"
114-
"$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
119+
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
115120
fi
116121
env:
117122
HCKIND: ${{ matrix.compilerKind }}
@@ -129,13 +134,13 @@ jobs:
129134
echo "HC=$HC" >> "$GITHUB_ENV"
130135
echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
131136
echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
132-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
137+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
133138
else
134139
HC=$HCDIR/bin/$HCKIND
135140
echo "HC=$HC" >> "$GITHUB_ENV"
136141
echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
137142
echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
138-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
143+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
139144
fi
140145
141146
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
@@ -185,7 +190,7 @@ jobs:
185190
run: |
186191
$CABAL v2-update -v
187192
- name: cache (tools)
188-
uses: actions/cache@v2
193+
uses: actions/cache/restore@v3
189194
with:
190195
key: ${{ runner.os }}-${{ matrix.compiler }}-tools-4095ff06
191196
path: ~/.haskell-ci-tools
@@ -211,8 +216,14 @@ jobs:
211216
run: |
212217
if [ $((HCNUMVER >= 80000 && HCNUMVER < 90000)) -ne 0 ] ; then $CABAL --store-dir=$HOME/.haskell-ci-tools/store v2-install $ARG_COMPILER --ignore-project -j2 doctest --constraint='doctest ^>=0.20' ; fi
213218
if [ $((HCNUMVER >= 80000 && HCNUMVER < 90000)) -ne 0 ] ; then doctest --version ; fi
219+
- name: save cache (tools)
220+
uses: actions/cache/save@v3
221+
if: always()
222+
with:
223+
key: ${{ runner.os }}-${{ matrix.compiler }}-tools-4095ff06
224+
path: ~/.haskell-ci-tools
214225
- name: checkout
215-
uses: actions/checkout@v2
226+
uses: actions/checkout@v3
216227
with:
217228
path: source
218229
- name: initial cabal.project for sdist
@@ -247,8 +258,8 @@ jobs:
247258
run: |
248259
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
249260
cabal-plan
250-
- name: cache
251-
uses: actions/cache@v2
261+
- name: restore cache
262+
uses: actions/cache/restore@v3
252263
with:
253264
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
254265
path: ~/.cabal/store
@@ -280,7 +291,7 @@ jobs:
280291
${CABAL} -vnormal check
281292
- name: haddock
282293
run: |
283-
$CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
294+
$CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
284295
- name: unconstrained build
285296
run: |
286297
rm -f cabal.project.local
@@ -292,3 +303,9 @@ jobs:
292303
run: |
293304
if [ $((HCNUMVER >= 80800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='transformers ^>=0.6' --dependencies-only -j2 all ; fi
294305
if [ $((HCNUMVER >= 80800)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='transformers ^>=0.6' all ; fi
306+
- name: save cache
307+
uses: actions/cache/save@v3
308+
if: always()
309+
with:
310+
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
311+
path: ~/.cabal/store

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# 2.2 (2022-03-15)
2+
3+
- Drop `semigroupoids` dependency in favour of `foldable1-classes-compat`.
4+
Be careful with which `Foldable1` class you end up using.
5+
16
# 2.1 (2022-12-27)
27

38
- Fix `comprable` for `PartialOrd (a,b)` instance

lattices.cabal

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cabal-version: 1.18
22
name: lattices
3-
version: 2.1
3+
version: 2.2
44
category: Math
55
license: BSD3
66
license-file: LICENSE
@@ -34,6 +34,7 @@ tested-with:
3434
|| ==9.0.2
3535
|| ==9.2.5
3636
|| ==9.4.4
37+
|| ==9.6.1
3738

3839
synopsis:
3940
Fine-grained library for constructing and manipulating lattices
@@ -82,25 +83,27 @@ library
8283
Algebra.PartialOrd.Instances
8384

8485
build-depends:
85-
base >=4.6 && <4.18
86-
, base-compat >=0.10.5 && <0.13
86+
base >=4.6 && <4.19
87+
, base-compat >=0.13 && <0.14
8788
, containers >=0.5.0.0 && <0.7
8889
, deepseq >=1.3.0.0 && <1.5
8990
, hashable >=1.2.7.0 && <1.5
9091
, integer-logarithms >=1.0.3 && <1.1
9192
, QuickCheck >=2.12.6.1 && <2.15
92-
, semigroupoids >=5.3.2 && <5.4
9393
, tagged >=0.8.6 && <0.9
9494
, transformers >=0.3.0.0 && <0.7
9595
, universe-base >=1.1 && <1.2
9696
, universe-reverse-instances >=1.1 && <1.2
9797
, unordered-containers >=0.2.8.0 && <0.3
9898

99+
if !impl(ghc >=9.6)
100+
build-depends: foldable1-classes-compat >=0.1 && <0.2
101+
99102
if !impl(ghc >=9.2)
100103
if impl(ghc >=9.0)
101104
build-depends: ghc-prim
102105
else
103-
build-depends: OneTuple >=0.3 && <0.4
106+
build-depends: OneTuple >=0.4 && <0.5
104107

105108
if !impl(ghc >=8.0)
106109
build-depends: semigroups >=0.18.5 && <0.21

src/Algebra/Heyting.hs

+11-7
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,16 @@ import Data.Universe.Class (Finite (..))
2727
import qualified Data.HashSet as HS
2828
import qualified Data.Set as Set
2929

30-
#if MIN_VERSION_base(4,16,0)
31-
import Data.Tuple (Solo (..))
30+
#if MIN_VERSION_base(4,18,0)
31+
import Data.Tuple (Solo (MkSolo))
32+
#elif MIN_VERSION_base(4,16,0)
33+
import Data.Tuple (Solo (Solo))
34+
#define MkSolo Solo
3235
#elif MIN_VERSION_base(4,15,0)
33-
import GHC.Tuple (Solo (..))
36+
import GHC.Tuple (Solo (Solo))
37+
#define MkSolo Solo
3438
#else
35-
import Data.Tuple.Solo (Solo (..))
39+
import Data.Tuple.Solo (Solo (MkSolo))
3640
#endif
3741

3842
-- | A Heyting algebra is a bounded lattice equipped with a
@@ -135,9 +139,9 @@ instance Heyting a => Heyting (Const a b) where
135139

136140
-- | @since 2.0.3
137141
instance Heyting a => Heyting (Solo a) where
138-
Solo a ==> Solo b = Solo (a ==> b)
139-
neg (Solo a) = Solo (neg a)
140-
Solo a <=> Solo b = Solo (a <=> b)
142+
MkSolo a ==> MkSolo b = MkSolo (a ==> b)
143+
neg (MkSolo a) = MkSolo (neg a)
144+
MkSolo a <=> MkSolo b = MkSolo (a <=> b)
141145

142146
-------------------------------------------------------------------------------
143147
-- Sets

src/Algebra/Lattice.hs

+24-20
Original file line numberDiff line numberDiff line change
@@ -45,18 +45,18 @@ import Prelude.Compat
4545

4646
import qualified Algebra.PartialOrd as PO
4747

48-
import Control.Applicative (Const (..))
49-
import Control.Monad.Zip (MonadZip (..))
50-
import Data.Data (Data, Typeable)
51-
import Data.Functor.Identity (Identity (..))
52-
import Data.Hashable (Hashable (..))
53-
import Data.Proxy (Proxy (..))
54-
import Data.Semigroup (All (..), Any (..), Endo (..), Semigroup (..))
55-
import Data.Semigroup.Foldable (Foldable1 (..))
56-
import Data.Tagged (Tagged (..))
57-
import Data.Universe.Class (Finite (..), Universe (..))
58-
import Data.Void (Void)
59-
import GHC.Generics (Generic)
48+
import Control.Applicative (Const (..))
49+
import Control.Monad.Zip (MonadZip (..))
50+
import Data.Data (Data, Typeable)
51+
import Data.Foldable1 (Foldable1 (..))
52+
import Data.Functor.Identity (Identity (..))
53+
import Data.Hashable (Hashable (..))
54+
import Data.Proxy (Proxy (..))
55+
import Data.Semigroup (All (..), Any (..), Endo (..), Semigroup (..))
56+
import Data.Tagged (Tagged (..))
57+
import Data.Universe.Class (Finite (..), Universe (..))
58+
import Data.Void (Void)
59+
import GHC.Generics (Generic)
6060

6161
import qualified Data.HashMap.Lazy as HM
6262
import qualified Data.HashSet as HS
@@ -66,12 +66,16 @@ import qualified Data.Map as Map
6666
import qualified Data.Set as Set
6767
import qualified Test.QuickCheck as QC
6868

69-
#if MIN_VERSION_base(4,16,0)
70-
import Data.Tuple (Solo (..))
69+
#if MIN_VERSION_base(4,18,0)
70+
import Data.Tuple (Solo (MkSolo))
71+
#elif MIN_VERSION_base(4,16,0)
72+
import Data.Tuple (Solo (Solo))
73+
#define MkSolo Solo
7174
#elif MIN_VERSION_base(4,15,0)
72-
import GHC.Tuple (Solo (..))
75+
import GHC.Tuple (Solo (Solo))
76+
#define MkSolo Solo
7377
#else
74-
import Data.Tuple.Solo (Solo (..))
78+
import Data.Tuple.Solo (Solo (MkSolo))
7579
#endif
7680

7781
infixr 6 /\ -- This comment needed because of CPP
@@ -529,16 +533,16 @@ instance BoundedMeetSemiLattice QC.Property where top = QC.property True
529533

530534
-- | @since 2.0.3
531535
instance Lattice a => Lattice (Solo a) where
532-
Solo a \/ Solo b = Solo (a \/ b)
533-
Solo a /\ Solo b = Solo (a /\ b)
536+
MkSolo a \/ MkSolo b = MkSolo (a \/ b)
537+
MkSolo a /\ MkSolo b = MkSolo (a /\ b)
534538

535539
-- | @since 2.0.3
536540
instance BoundedMeetSemiLattice a => BoundedMeetSemiLattice (Solo a) where
537-
top = Solo top
541+
top = MkSolo top
538542

539543
-- | @since 2.0.3
540544
instance BoundedJoinSemiLattice a => BoundedJoinSemiLattice (Solo a) where
541-
bottom = Solo bottom
545+
bottom = MkSolo bottom
542546

543547
-------------------------------------------------------------------------------
544548
-- Theorems

0 commit comments

Comments
 (0)