Skip to content

Commit f550299

Browse files
authored
Support GHC 9.12 (#51)
1 parent a1c08fc commit f550299

File tree

5 files changed

+36
-20
lines changed

5 files changed

+36
-20
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 24 additions & 14 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.20240708
11+
# version: 0.19.20250115
1212
#
13-
# REGENDATA ("0.19.20240708",["github","cabal.project"])
13+
# REGENDATA ("0.19.20250115",["github","cabal.project"])
1414
#
1515
name: Haskell-CI
1616
on:
@@ -28,6 +28,11 @@ jobs:
2828
strategy:
2929
matrix:
3030
include:
31+
- compiler: ghc-9.12.1
32+
compilerKind: ghc
33+
compilerVersion: 9.12.1
34+
setup-method: ghcup
35+
allow-failure: false
3136
- compiler: ghc-9.10.1
3237
compilerKind: ghc
3338
compilerVersion: 9.10.1
@@ -85,15 +90,29 @@ jobs:
8590
allow-failure: false
8691
fail-fast: false
8792
steps:
88-
- name: apt
93+
- name: apt-get install
8994
run: |
9095
apt-get update
9196
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
97+
- name: Install GHCup
98+
run: |
9299
mkdir -p "$HOME/.ghcup/bin"
93100
curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
94101
chmod a+x "$HOME/.ghcup/bin/ghcup"
95-
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
102+
- name: Install cabal-install
103+
run: |
96104
"$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
105+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
106+
- name: Install GHC (GHCup)
107+
if: matrix.setup-method == 'ghcup'
108+
run: |
109+
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
110+
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
111+
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
112+
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
113+
echo "HC=$HC" >> "$GITHUB_ENV"
114+
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
115+
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
97116
env:
98117
HCKIND: ${{ matrix.compilerKind }}
99118
HCNAME: ${{ matrix.compiler }}
@@ -104,21 +123,12 @@ jobs:
104123
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
105124
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
106125
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
107-
HCDIR=/opt/$HCKIND/$HCVER
108-
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
109-
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
110-
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
111-
echo "HC=$HC" >> "$GITHUB_ENV"
112-
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
113-
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
114-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
115126
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
116127
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
117128
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
118129
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
119130
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
120131
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
121-
echo "GHCJSARITH=0" >> "$GITHUB_ENV"
122132
env:
123133
HCKIND: ${{ matrix.compilerKind }}
124134
HCNAME: ${{ matrix.compiler }}
@@ -234,8 +244,8 @@ jobs:
234244
rm -f cabal.project.local
235245
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
236246
- name: save cache
237-
uses: actions/cache/save@v4
238247
if: always()
248+
uses: actions/cache/save@v4
239249
with:
240250
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
241251
path: ~/.cabal/store

haskell-src-meta/examples/HsHere.hs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ module HsHere
2020

2121
import qualified Control.Monad.Fail as Fail
2222
import Data.Generics (Data)
23-
import Data.Typeable (Typeable)
2423
import Language.Haskell.Meta (parseExp, parsePat)
2524
import Language.Haskell.Meta.Utils (cleanNames)
2625
import Language.Haskell.TH.Lib hiding (parensP)
@@ -42,7 +41,7 @@ data Here
4241
= CodeH Exp
4342
| TextH String
4443
| ManyH [Here]
45-
deriving (Eq,Show,Data,Typeable)
44+
deriving (Eq,Show,Data)
4645

4746
-- | Example:
4847
--

haskell-src-meta/examples/SKI.hs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ module SKI
2020

2121
import qualified Control.Monad.Fail as Fail
2222
import Data.Generics (Data)
23-
import Data.Typeable (Typeable)
2423
import Language.Haskell.Meta (parseExp, parsePat)
2524
import Language.Haskell.Meta.Utils (cleanNames, ppDoc, unsafeRunQ)
2625
import Language.Haskell.TH.Lib hiding (parensP)
@@ -40,7 +39,7 @@ quoteDecNotImplemented = fail . ("dec quoter not implemented: " ++ )
4039

4140

4241
data SKI = S | K | I | E Exp | SKI :$ SKI
43-
deriving (Eq,Data,Typeable)
42+
deriving (Eq,Data)
4443

4544
run :: String -> [SKI]
4645
run = fmap eval . fst . parse

haskell-src-meta/haskell-src-meta.cabal

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ author: Matt Morrow
99
copyright: (c) Matt Morrow
1010
maintainer: [email protected]
1111
bug-reports: https://github.com/haskell-party/haskell-src-meta/issues
12-
tested-with: GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.2, GHC == 9.4.1, GHC == 9.6.1, GHC == 9.8.1, GHC == 9.10.1
12+
tested-with: GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.2, GHC == 9.4.1, GHC == 9.6.1, GHC == 9.8.1, GHC == 9.10.1, GHC == 9.12.1
1313
synopsis: Parse source to template-haskell abstract syntax.
1414
description: The translation from haskell-src-exts abstract syntax
1515
to template-haskell abstract syntax isn't 100% complete yet.
@@ -22,7 +22,7 @@ library
2222
haskell-src-exts >= 1.21 && < 1.24,
2323
pretty >= 1.0 && < 1.2,
2424
syb >= 0.1 && < 0.8,
25-
template-haskell >= 2.12 && < 2.23,
25+
template-haskell >= 2.12 && < 2.24,
2626
th-orphans >= 0.12 && < 0.14
2727

2828
hs-source-dirs: src

haskell-src-meta/src/Language/Haskell/Meta/Extensions.hs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,14 @@ fromExtension e = case e of
374374
TH.ListTuplePuns -> Nothing
375375
#endif
376376

377+
-- 2.23.0 ---------------------------------------
378+
379+
#if MIN_VERSION_template_haskell(2,23,0)
380+
TH.MultilineStrings -> Nothing
381+
TH.NamedDefaults -> Nothing
382+
TH.OrPatterns -> Nothing
383+
#endif
384+
377385
-- NB: when adding a case here, you may also need to update `toExtension`
378386

379387

0 commit comments

Comments
 (0)