Skip to content

Commit

Permalink
Merge pull request #3 from phadej/ghc-9.8
Browse files Browse the repository at this point in the history
Use GHC-9.8
  • Loading branch information
phadej committed Apr 9, 2024
2 parents 66ef795 + 5887068 commit 2d15d59
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 41 deletions.
28 changes: 15 additions & 13 deletions .github/workflows/haskell-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
#
# For more information, see https://github.com/haskell-CI/haskell-ci
#
# version: 0.15.20230128
# version: 0.19.20240402
#
# REGENDATA ("0.15.20230128",["github","cabal.project"])
# REGENDATA ("0.19.20240402",["github","cabal.project"])
#
name: Haskell-CI
on:
Expand All @@ -32,9 +32,9 @@ jobs:
strategy:
matrix:
include:
- compiler: ghc-9.2.5
- compiler: ghc-9.8.2
compilerKind: ghc
compilerVersion: 9.2.5
compilerVersion: 9.8.2
setup-method: ghcup
allow-failure: false
fail-fast: false
Expand All @@ -44,11 +44,11 @@ jobs:
apt-get update
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
mkdir -p "$HOME/.ghcup/bin"
curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
chmod a+x "$HOME/.ghcup/bin/ghcup"
"$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml;
"$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml;
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
"$HOME/.ghcup/bin/ghcup" install cabal 3.9.0.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
env:
HCKIND: ${{ matrix.compilerKind }}
HCNAME: ${{ matrix.compiler }}
Expand All @@ -60,11 +60,13 @@ jobs:
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
HCDIR=/opt/$HCKIND/$HCVER
HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
echo "HC=$HC" >> "$GITHUB_ENV"
echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
echo "CABAL=$HOME/.ghcup/bin/cabal-3.9.0.0 -vnormal+nowrap" >> "$GITHUB_ENV"
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
Expand Down Expand Up @@ -114,8 +116,8 @@ jobs:
- name: install cabal-plan
run: |
mkdir -p $HOME/.cabal/bin
curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
echo 'de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc cabal-plan.xz' | sha256sum -c -
curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.7.3.0/cabal-plan-0.7.3.0-x86_64-linux.xz > cabal-plan.xz
echo 'f62ccb2971567a5f638f2005ad3173dba14693a45154c1508645c52289714cb2 cabal-plan.xz' | sha256sum -c -
xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
rm -f cabal-plan.xz
chmod a+x $HOME/.cabal/bin/cabal-plan
Expand Down
2 changes: 1 addition & 1 deletion cabal.project
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
with-compiler: ghc-9.2.5
with-compiler: ghc-9.8.2
packages: .

constraints: ghc-lib-parser-ex -no-ghc-lib -auto
22 changes: 11 additions & 11 deletions hooglite.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 2.4
name: hooglite
version: 0.20230131
version: 0.20240409
license: BSD-3-Clause
license-file: LICENSE
category: Development
Expand All @@ -12,7 +12,7 @@ description:
author: Oleg Grenrus <oleg.grenrus@iki.fi>
maintainer: Oleg Grenrus <oleg.grenrus@iki.fi>
build-type: Simple
tested-with: GHC ==9.2.5
tested-with: GHC ==9.8.2
extra-source-files: test-data/*.txt

source-repository head
Expand All @@ -26,22 +26,22 @@ library

-- GHC-boot libraries
build-depends:
, base ^>=4.16.3.0
, bytestring ^>=0.11.3.1
, base ^>=4.19.0.0
, bytestring ^>=0.12.0.1
, containers ^>=0.6.5.1
, pretty ^>=1.1.3.6

-- Cabal is special
build-depends: Cabal ^>=3.8.1.0
build-depends: Cabal ^>=3.10.3.0

-- rest of the dependencies
build-depends:
, bifunctors ^>=5.5.11
, bifunctors ^>=5.6.2
, edit-distance ^>=0.2.2.1
, fin ^>=0.2.1
, ghc-lib-parser ^>=9.4.4.20221225
, ghc-lib-parser-ex ^>=9.4.0.0
, mtl ^>=2.2.2
, fin ^>=0.3
, ghc-lib-parser ^>=9.8.2.20240223
, ghc-lib-parser-ex ^>=9.8.0.2
, mtl ^>=2.3.1
, text-short ^>=0.1.5
, unification-fd ^>=0.11.1

Expand Down Expand Up @@ -100,6 +100,6 @@ test-suite hooglite-tests
, mtl

build-depends:
, tasty ^>=1.4.2.1
, tasty ^>=1.5
, tasty-golden ^>=2.3.4
, tasty-hunit ^>=0.10.0.3
15 changes: 8 additions & 7 deletions src/Hooglite/Declaration.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
module Hooglite.Declaration where

import Control.Monad (join)
import Data.Foldable (toList)
import GHC.Hs.Extension (GhcPs)
import GHC.Types.SrcLoc (GenLocated (L))

import qualified GHC.Hs.Binds as GHC
import qualified GHC.Hs.Decls as GHC
import qualified GHC.Hs.Type as GHC
import qualified GHC.Types.SrcLoc as GHC
import qualified GHC.Hs.Binds as GHC
import qualified GHC.Hs.Decls as GHC
import qualified GHC.Hs.Type as GHC
import qualified GHC.Types.SrcLoc as GHC

import Hooglite.GHC.Utils
import Hooglite.MonoPoly.Name
Expand Down Expand Up @@ -65,8 +66,8 @@ sigToDeclaration sig _ = Left $ "sigToDeclaration " ++ showAstData sig

conToDeclaration :: GHC.ConDecl GhcPs -> (Name -> Declaration -> r) -> Either String [r]
conToDeclaration d@GHC.ConDeclGADT { GHC.con_names = names, GHC.con_g_args = details, GHC.con_res_ty = ty } mk = Right
[ mk (toName name) $ ConD (fmap genType $ join $ apps_ <$> convType ty <*> details') (fakeShowPpr (d { GHC.con_names = [L l name] } ))
| L l name <- names
[ mk (toName name) $ ConD (fmap genType $ join $ apps_ <$> convType ty <*> details') (fakeShowPpr (d { GHC.con_names = pure (L l name) } ))
| L l name <- toList names
]
where
details' :: Maybe [Ty]
Expand All @@ -80,4 +81,4 @@ extractConDeclGADTDetailsTyVars ::
GHC.HsConDeclGADTDetails GhcPs -> [GHC.LHsType GhcPs]
extractConDeclGADTDetailsTyVars con_args = case con_args of
GHC.PrefixConGADT args -> map GHC.hsScaledThing args
GHC.RecConGADT (L _ flds) _ -> map (GHC.cd_fld_type . GHC.unLoc) $ flds
GHC.RecConGADT (L _ flds) _ -> map (GHC.cd_fld_type . GHC.unLoc) $ flds
14 changes: 7 additions & 7 deletions src/Hooglite/GHC/Utils.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ module Hooglite.GHC.Utils where

import Data.Data (Data)
import Data.List (foldl')
import GHC.Driver.Ppr (showPpr)
import GHC.Driver.Session (DynFlags, defaultDynFlags, xopt_set)
import GHC.Parser.Lexer (ParseResult (..), PState (errors))
import GHC.Utils.Outputable (Outputable)
import GHC.Types.Error (getMessages)
import GHC.Parser.Lexer (PState (errors), ParseResult (..))
import GHC.Types.Error (NoDiagnosticOpts (..), getMessages)
import GHC.Utils.Error (pprMsgEnvelopeBagWithLoc)
import GHC.Driver.Ppr (showPpr)
import GHC.Utils.Outputable (Outputable)

import Language.Haskell.GhclibParserEx.GHC.Settings.Config (fakeLlvmConfig, fakeSettings)
import Language.Haskell.GhclibParserEx.GHC.Settings.Config (fakeSettings)

import qualified GHC.Hs.Dump
import qualified GHC.LanguageExtensions.Type as LangExt
Expand All @@ -19,7 +19,7 @@ import qualified GHC.LanguageExtensions.Type as LangExt
-------------------------------------------------------------------------------

fakeDynFlags :: DynFlags
fakeDynFlags = defaultDynFlags fakeSettings fakeLlvmConfig
fakeDynFlags = defaultDynFlags fakeSettings

fakeShowPpr :: Outputable a => a -> String
fakeShowPpr = showPpr fakeDynFlags
Expand Down Expand Up @@ -62,4 +62,4 @@ parse p s = case p s dynFlags of
POk _ x -> Right x
PFailed pstate -> do
let es = errors pstate
Left $ map fakeShowPpr $ pprMsgEnvelopeBagWithLoc $ getMessages es
Left $ map fakeShowPpr $ pprMsgEnvelopeBagWithLoc NoDiagnosticOpts $ getMessages es
3 changes: 2 additions & 1 deletion src/Hooglite/Haddock.hs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import GHC.Hs.Decls (HsDataDefn (..), HsDecl (..), TyClDecl (..))
import GHC.Types.SrcLoc (GenLocated (L))

import Language.Haskell.GhclibParserEx.GHC.Parser (parseDeclaration)
import Language.Haskell.Syntax.Decls (DataDefnCons (..))

import qualified Data.Map.Strict as Map

Expand Down Expand Up @@ -121,7 +122,7 @@ parseItem str = first unlines $
first singleton $ toDeclaration decl LDecl

parseConstructor
| Right (L _ (TyClD _ (DataDecl { tcdDataDefn = HsDataDefn { dd_cons = [L _ d]}}))) <- parse parseDeclaration $ "data Data where " ++ str
| Right (L _ (TyClD _ (DataDecl { tcdDataDefn = HsDataDefn { dd_cons = DataTypeCons False [L _ d]}}))) <- parse parseDeclaration $ "data Data where " ++ str
= first singleton $ conToDeclaration d LDecl

| otherwise
Expand Down
2 changes: 1 addition & 1 deletion src/Hooglite/Ty.hs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ convType = go where
go (L _ (GHC.HsParTy _ a)) = go a
go (L _ (GHC.HsFunTy _ _ a b)) = join $ arr_ <$> go a <*> go b
go (L _ (GHC.HsAppTy _ a b)) = join $ app_ <$> go a <*> go b
go (L _ (GHC.HsAppKindTy _ a b)) = join $ app_ <$> go a <*> go b
go (L _ (GHC.HsAppKindTy _ a _ b)) = join $ app_ <$> go a <*> go b
go (L _ (GHC.HsStarTy _ _)) = Just "*"
go (L _ (GHC.HsKindSig _ a _)) = go a
go (L _ (GHC.HsTyVar _ _ (L _ n))) = Just (Mono (Free (toName n)))
Expand Down

0 comments on commit 2d15d59

Please sign in to comment.