Skip to content

Commit df95689

Browse files
authored
Merge pull request #124 from phadej/ghc-9.14
Support GHC-9.14
2 parents 38555bc + 1b7f954 commit df95689

15 files changed

Lines changed: 134 additions & 77 deletions

File tree

.github/workflows/haskell-ci.yml

Lines changed: 66 additions & 20 deletions
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.19.20250330
11+
# version: 0.19.20260331
1212
#
13-
# REGENDATA ("0.19.20250330",["github","--config=cabal.haskell-ci","cabal.project"])
13+
# REGENDATA ("0.19.20260331",["github","--config=cabal.haskell-ci","cabal.project"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -20,6 +20,11 @@ on:
2020
pull_request:
2121
branches:
2222
- master
23+
merge_group:
24+
branches:
25+
- master
26+
workflow_dispatch:
27+
{}
2328
jobs:
2429
linux:
2530
name: Haskell-CI - Linux - ${{ matrix.compiler }}
@@ -32,14 +37,19 @@ jobs:
3237
strategy:
3338
matrix:
3439
include:
40+
- compiler: ghc-9.14.1
41+
compilerKind: ghc
42+
compilerVersion: 9.14.1
43+
setup-method: ghcup
44+
allow-failure: false
3545
- compiler: ghc-9.12.2
3646
compilerKind: ghc
3747
compilerVersion: 9.12.2
3848
setup-method: ghcup
3949
allow-failure: false
40-
- compiler: ghc-9.10.1
50+
- compiler: ghc-9.10.3
4151
compilerKind: ghc
42-
compilerVersion: 9.10.1
52+
compilerVersion: 9.10.3
4353
setup-method: ghcup
4454
allow-failure: false
4555
- compiler: ghc-9.8.4
@@ -95,8 +105,8 @@ jobs:
95105
chmod a+x "$HOME/.ghcup/bin/ghcup"
96106
- name: Install cabal-install
97107
run: |
98-
"$HOME/.ghcup/bin/ghcup" install cabal 3.14.1.1-p1 || (cat "$HOME"/.ghcup/logs/*.* && false)
99-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.1.1-p1 -vnormal+nowrap" >> "$GITHUB_ENV"
108+
"$HOME/.ghcup/bin/ghcup" install cabal 3.16.0.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
109+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.16.0.0 -vnormal+nowrap" >> "$GITHUB_ENV"
100110
- name: Install GHC (GHCup)
101111
if: matrix.setup-method == 'ghcup'
102112
run: |
@@ -174,14 +184,14 @@ jobs:
174184
- name: install cabal-docspec
175185
run: |
176186
mkdir -p $HOME/.cabal/bin
177-
curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20240703/cabal-docspec-0.0.0.20240703-x86_64-linux.xz > cabal-docspec.xz
178-
echo '48bf3b7fd2f7f0caa6162afee57a755be8523e7f467b694900eb420f5f9a7b76 cabal-docspec.xz' | sha256sum -c -
187+
curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20250606/cabal-docspec-0.0.0.20250606-x86_64-linux.xz > cabal-docspec.xz
188+
echo 'cc20bb5c19501b42bde77556bc419c7c0a5c8d1eb65663024d8a4e4c868bef25 cabal-docspec.xz' | sha256sum -c -
179189
xz -d < cabal-docspec.xz > $HOME/.cabal/bin/cabal-docspec
180190
rm -f cabal-docspec.xz
181191
chmod a+x $HOME/.cabal/bin/cabal-docspec
182192
cabal-docspec --version
183193
- name: checkout
184-
uses: actions/checkout@v4
194+
uses: actions/checkout@v5
185195
with:
186196
path: source
187197
- name: initial cabal.project for sdist
@@ -238,23 +248,59 @@ jobs:
238248
echo "packages: ${PKGDIR_vec_optics}" >> cabal.project
239249
echo "packages: ${PKGDIR_tests}" >> cabal.project
240250
echo "package bin" >> cabal.project
241-
echo " ghc-options: -Werror=missing-methods" >> cabal.project
251+
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
242252
echo "package fin" >> cabal.project
243-
echo " ghc-options: -Werror=missing-methods" >> cabal.project
253+
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
244254
echo "package ral" >> cabal.project
245-
echo " ghc-options: -Werror=missing-methods" >> cabal.project
255+
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
246256
echo "package vec" >> cabal.project
247-
echo " ghc-options: -Werror=missing-methods" >> cabal.project
257+
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
248258
echo "package ral-lens" >> cabal.project
249-
echo " ghc-options: -Werror=missing-methods" >> cabal.project
259+
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
250260
echo "package vec-lens" >> cabal.project
251-
echo " ghc-options: -Werror=missing-methods" >> cabal.project
261+
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
252262
echo "package ral-optics" >> cabal.project
253-
echo " ghc-options: -Werror=missing-methods" >> cabal.project
263+
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
254264
echo "package vec-optics" >> cabal.project
255-
echo " ghc-options: -Werror=missing-methods" >> cabal.project
265+
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
256266
echo "package tests" >> cabal.project
257-
echo " ghc-options: -Werror=missing-methods" >> cabal.project
267+
echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
268+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package bin" >> cabal.project ; fi
269+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
270+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package fin" >> cabal.project ; fi
271+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
272+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package ral" >> cabal.project ; fi
273+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
274+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package vec" >> cabal.project ; fi
275+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
276+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package ral-lens" >> cabal.project ; fi
277+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
278+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package vec-lens" >> cabal.project ; fi
279+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
280+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package ral-optics" >> cabal.project ; fi
281+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
282+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package vec-optics" >> cabal.project ; fi
283+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
284+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package tests" >> cabal.project ; fi
285+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
286+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package bin" >> cabal.project ; fi
287+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
288+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package fin" >> cabal.project ; fi
289+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
290+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package ral" >> cabal.project ; fi
291+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
292+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package vec" >> cabal.project ; fi
293+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
294+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package ral-lens" >> cabal.project ; fi
295+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
296+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package vec-lens" >> cabal.project ; fi
297+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
298+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package ral-optics" >> cabal.project ; fi
299+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
300+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package vec-optics" >> cabal.project ; fi
301+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
302+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package tests" >> cabal.project ; fi
303+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
258304
cat >> cabal.project <<EOF
259305
EOF
260306
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(bin|fin|ral|ral-lens|ral-optics|tests|vec|vec-lens|vec-optics)$/; }' >> cabal.project.local
@@ -285,8 +331,8 @@ jobs:
285331
$CABAL v2-test $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --test-show-details=direct
286332
- name: docspec
287333
run: |
288-
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH all ; fi
289-
if [ $((HCNUMVER < 90600)) -ne 0 ] ; then cabal-docspec $ARG_COMPILER ; fi
334+
if [ $((HCNUMVER >= 90600)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH all ; fi
335+
if [ $((HCNUMVER >= 90600)) -ne 0 ] ; then cabal-docspec $ARG_COMPILER ; fi
290336
- name: cabal check
291337
run: |
292338
cd ${PKGDIR_bin} || false

bin/bin.cabal

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
cabal-version: 2.2
22
name: bin
3-
version: 0.1.4
4-
x-revision: 2
3+
version: 0.1.4.1
54
synopsis: Bin: binary natural numbers.
65
category: Data, Dependent Types, Singletons, Math
76
description:
@@ -43,8 +42,9 @@ tested-with:
4342
|| ==9.4.8
4443
|| ==9.6.6
4544
|| ==9.8.4
46-
|| ==9.10.1
45+
|| ==9.10.3
4746
|| ==9.12.2
47+
|| ==9.14.1
4848

4949
source-repository head
5050
type: git
@@ -68,7 +68,7 @@ library
6868

6969
-- GHC boot libs
7070
build-depends:
71-
, base >=4.12.0.0 && <4.22
71+
, base >=4.12.0.0 && <4.23
7272
, deepseq >=1.4.4.0 && <1.6
7373

7474
-- siblings
@@ -77,10 +77,9 @@ library
7777
-- other dependencies
7878
build-depends:
7979
, boring ^>=0.2.2
80-
, dec ^>=0.0.6
8180
, hashable ^>=1.4.4.0 || ^>=1.5.0.0
82-
, QuickCheck ^>=2.14.2 || ^>=2.15
83-
, some ^>=1.0.6
81+
, QuickCheck ^>=2.14.2 || ^>=2.15 || ^>=2.18.0.0
82+
, some ^>=1.0.6 || ^>=1.1
8483

8584
if impl(ghc >=9.0)
8685
-- these flags may abort compilation with GHC-8.10

bin/src/Data/Type/Bin.hs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ type family ToGHC (b :: Bin) :: GHC.Nat where
220220
--
221221
-- >>> :kind! FromGHC 7
222222
-- FromGHC 7 :: Bin
223-
-- = 'BP ('B1 ('B1 'BE))
223+
-- = BP (B1 (B1 BE))
224224
--
225225
type family FromGHC (n :: GHC.Nat) :: Bin where
226226
FromGHC n = FromGHC' (GhcDivMod2 n)
@@ -251,7 +251,7 @@ type family GhcDivMod2' (p :: (GHC.Nat, Bool)) :: (GHC.Nat, Bool) where
251251
--
252252
-- >>> :kind! ToNat Bin5
253253
-- ToNat Bin5 :: Nat
254-
-- = 'S ('S ('S ('S ('S 'Z))))
254+
-- = S (S (S (S (S Z))))
255255
--
256256
type family ToNat (b :: Bin) :: Nat where
257257
ToNat 'BZ = 'Z
@@ -261,7 +261,7 @@ type family ToNat (b :: Bin) :: Nat where
261261
--
262262
-- >>> :kind! FromNat N.Nat5
263263
-- FromNat N.Nat5 :: Bin
264-
-- = 'BP ('B1 ('B0 'BE))
264+
-- = BP (B1 (B0 BE))
265265
--
266266
type family FromNat (n :: Nat) :: Bin where
267267
FromNat n = FromNat' (N.DivMod2 n)
@@ -280,11 +280,11 @@ type family FromNat' (p :: (Nat, Bool)) :: Bin where
280280
--
281281
-- >>> :kind! Mult2 Bin0 == Bin0
282282
-- Mult2 Bin0 == Bin0 :: Bool
283-
-- = 'True
283+
-- = True
284284
--
285285
-- >>> :kind! Mult2 Bin3 == Bin6
286286
-- Mult2 Bin3 == Bin6 :: Bool
287-
-- = 'True
287+
-- = True
288288
--
289289
type family Mult2 (b :: Bin) :: Bin where
290290
Mult2 'BZ = 'BZ
@@ -294,11 +294,11 @@ type family Mult2 (b :: Bin) :: Bin where
294294
--
295295
-- >>> :kind! Mult2Plus1 Bin0
296296
-- Mult2Plus1 Bin0 :: BinP
297-
-- = 'BE
297+
-- = BE
298298
--
299299
-- >>> :kind! Mult2Plus1 Bin4 == BinP9
300300
-- Mult2Plus1 Bin4 == BinP9 :: Bool
301-
-- = 'True
301+
-- = True
302302
--
303303
type family Mult2Plus1 (b :: Bin) :: BinP where
304304
Mult2Plus1 'BZ = 'BE
@@ -312,7 +312,7 @@ type family Mult2Plus1 (b :: Bin) :: BinP where
312312
--
313313
-- >>> :kind! Succ Bin5
314314
-- Succ Bin5 :: Bin
315-
-- = 'BP ('B0 ('B1 'BE))
315+
-- = BP (B0 (B1 BE))
316316
--
317317
-- @
318318
-- `Succ` :: 'Bin' -> 'Bin'
@@ -343,19 +343,19 @@ withSucc' _ k = BP.withSucc (Proxy :: Proxy b) k
343343
--
344344
-- >>> :kind! Pred BP.BinP1
345345
-- Pred BP.BinP1 :: Bin
346-
-- = 'BZ
346+
-- = BZ
347347
--
348348
-- >>> :kind! Pred BP.BinP5 == Bin4
349349
-- Pred BP.BinP5 == Bin4 :: Bool
350-
-- = 'True
350+
-- = True
351351
--
352352
-- >>> :kind! Pred BP.BinP8 == Bin7
353353
-- Pred BP.BinP8 == Bin7 :: Bool
354-
-- = 'True
354+
-- = True
355355
--
356356
-- >>> :kind! Pred BP.BinP6 == Bin5
357357
-- Pred BP.BinP6 == Bin5 :: Bool
358-
-- = 'True
358+
-- = True
359359
--
360360
type family Pred (b :: BinP) :: Bin where
361361
Pred 'BE = 'BZ
@@ -375,11 +375,11 @@ type family Pred' (b :: BinP) :: BinP where
375375
--
376376
-- >>> :kind! Plus Bin3 Bin3 == Bin6
377377
-- Plus Bin3 Bin3 == Bin6 :: Bool
378-
-- = 'True
378+
-- = True
379379
--
380380
-- >>> :kind! Mult2 Bin3 == Bin6
381381
-- Mult2 Bin3 == Bin6 :: Bool
382-
-- = 'True
382+
-- = True
383383
--
384384
type family Plus (a :: Bin) (b :: Bin) :: Bin where
385385
Plus 'BZ b = b

cabal.haskell-ci

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
branches: master
22

33
-- GHC-9.6 doesn't print ticks
4-
docspec: <9.6
4+
docspec: >=9.6
55
haddock: True
66
haddock-components: libs
77

fin/fin.cabal

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cabal-version: 2.2
22
name: fin
33
version: 0.3.2
4-
x-revision: 1
4+
x-revision: 2
55
synopsis: Nat and Fin: peano naturals and finite numbers
66
category: Data, Dependent Types, Singletons, Math
77
description:
@@ -65,8 +65,9 @@ tested-with:
6565
|| ==9.4.8
6666
|| ==9.6.6
6767
|| ==9.8.4
68-
|| ==9.10.1
68+
|| ==9.10.3
6969
|| ==9.12.2
70+
|| ==9.14.1
7071

7172
source-repository head
7273
type: git
@@ -89,16 +90,16 @@ library
8990

9091
-- GHC boot libs
9192
build-depends:
92-
, base >=4.12.0.0 && <4.22
93+
, base >=4.12.0.0 && <4.23
9394
, deepseq >=1.4.4.0 && <1.6
9495

9596
-- other dependencies
9697
build-depends:
9798
, boring ^>=0.2.2
9899
, dec ^>=0.0.6
99100
, hashable ^>=1.4.4.0 || ^>=1.5.0.0
100-
, QuickCheck ^>=2.14.2 || ^>=2.15
101-
, some ^>=1.0.6
101+
, QuickCheck ^>=2.14.2 || ^>=2.15 || ^>=2.18.0.0
102+
, some ^>=1.0.6 || ^>=1.1
102103
, universe-base ^>=1.1.4
103104

104105
if impl(ghc >=9.0)

fin/src/Data/Type/Nat.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ type family ToGHC (n :: Nat) :: GHC.Nat where
411411
--
412412
-- >>> :kind! FromGHC 7
413413
-- FromGHC 7 :: Nat
414-
-- = 'S ('S ('S ('S ('S ('S ('S 'Z))))))
414+
-- = S (S (S (S (S (S (S Z))))))
415415
--
416416
type family FromGHC (n :: GHC.Nat) :: Nat where
417417
FromGHC 0 = 'Z
@@ -450,11 +450,11 @@ type family Mult2 (n :: Nat) :: Nat where
450450
--
451451
-- >>> :kind! DivMod2 Nat7 == '(Nat3, True)
452452
-- DivMod2 Nat7 == '(Nat3, True) :: Bool
453-
-- = 'True
453+
-- = True
454454
--
455455
-- >>> :kind! DivMod2 Nat4 == '(Nat2, False)
456456
-- DivMod2 Nat4 == '(Nat2, False) :: Bool
457-
-- = 'True
457+
-- = True
458458
--
459459
type family DivMod2 (n :: Nat) :: (Nat, Bool) where
460460
DivMod2 'Z = '( 'Z, 'False)

0 commit comments

Comments
 (0)