Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support ghc 8.10 #129

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions grin/cabal.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
packages: .

source-repository-package
type: git
location: https://github.com/414owen/llvm-hs.git
tag: 169e8518b0d9bd425f2daecbcab8b28b54da54dc
subdir: llvm-hs

source-repository-package
type: git
location: https://github.com/414owen/llvm-hs.git
tag: 169e8518b0d9bd425f2daecbcab8b28b54da54dc
subdir: llvm-hs-pure
9 changes: 5 additions & 4 deletions grin/grin.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ library
optparse-applicative,
directory,
pretty-simple,
functor-infix,
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked into getting functor-infix to increase its bounds, but the author is unresponsive, so I think it's best to switch libraries.

I prefer composition-extra's approach anyway. No TH necessary.

composition-extra,
generic-random,
hspec,
hspec-core,
Expand All @@ -260,7 +260,8 @@ library
deepseq,
binary,
unix,
libffi
libffi,
data-fix
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think recursion-schemes used to reexport Fix...


default-language: Haskell2010

Expand Down Expand Up @@ -299,7 +300,7 @@ test-suite grin-test
build-depends: base >=4.11
, containers
, filepath
, functor-infix
, composition-extra
, grin
, hspec
, hspec-core
Expand Down Expand Up @@ -407,7 +408,7 @@ test-suite grin-end-to-end-test
build-depends: base >=4.11
, containers
, filepath
, functor-infix
, composition-extra
, grin
, hspec
, hspec-core
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import qualified Data.Map as Map
import qualified Data.Set as Set
import qualified Data.Vector as Vec

import Data.Functor.Infix
import Data.Functor.Syntax

import Control.Monad.State

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import qualified Data.Map as Map
import qualified Data.Set as Set
import qualified Data.Vector as Vec

import Data.Functor.Infix
import Data.Functor.Syntax ((<$$>))

import Control.Monad.State

Expand Down
2 changes: 1 addition & 1 deletion grin/src/Grin/ExtendedSyntax/Lint.hs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import Data.String
import Control.Comonad (extract)
import qualified Data.Vector as Vector
import Control.Applicative (liftA2)
import Data.Functor.Infix ((<$$>))
import Data.Functor.Syntax ((<$$>))

import Grin.ExtendedSyntax.Grin
import Grin.ExtendedSyntax.Pretty
Expand Down
1 change: 0 additions & 1 deletion grin/src/Grin/ExtendedSyntax/TypeEnv.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import qualified Data.Vector as Vector (fromList, toList, map)
import Data.Bifunctor (bimap)
import Data.Monoid
import Data.Maybe (fromMaybe)
import Data.Functor.Infix ((<$$>))
import Control.Applicative (liftA2)
import Control.Monad (join)

Expand Down
2 changes: 1 addition & 1 deletion grin/src/Grin/Lint.hs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import Data.String
import Control.Comonad (extract)
import qualified Data.Vector as Vector
import Control.Applicative (liftA2)
import Data.Functor.Infix ((<$$>))
import Data.Functor.Syntax ((<$$>))

import Grin.Grin
import Grin.Pretty
Expand Down
2 changes: 1 addition & 1 deletion grin/src/Grin/Research.hs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import qualified Text.PrettyPrint.ANSI.Leijen as Pretty ((<$>))
import Grin.Pretty (showWide)
import Control.Arrow ((&&&))
import Data.Maybe (fromJust)
import Data.Functor.Infix ((<$$$>))
import Data.Functor.Syntax ((<$$$>))



Expand Down
2 changes: 1 addition & 1 deletion grin/src/Grin/TypeEnv.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import qualified Data.Vector as Vector
import Data.Bifunctor (bimap)
import Data.Monoid
import Data.Maybe (fromMaybe)
import Data.Functor.Infix ((<$$>))
import Data.Functor.Syntax ((<$$>))
import Control.Applicative (liftA2)
import Control.Monad (join)

Expand Down
2 changes: 1 addition & 1 deletion grin/src/Lens/Micro/Extra.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module Lens.Micro.Extra where
import Lens.Micro.Internal
import Lens.Micro.Platform
import Data.Vector as V
import Data.Functor.Infix ((<$$>))
import Data.Functor.Syntax ((<$$>))
import Data.Monoid (Any(..))


Expand Down
6 changes: 3 additions & 3 deletions grin/src/Pipeline/Pipeline.hs
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ import Control.Monad.Extra
import System.Random
import Data.Time.Clock
import Data.Fixed
import Data.Functor.Infix
import Data.Functor.Syntax
import Data.Maybe (isNothing)
import System.IO (BufferMode(..), hSetBuffering, stdout)
import Data.Binary as Binary
Expand Down Expand Up @@ -344,7 +344,7 @@ data TransformationFunc
-- TODO: Add n paramter for the transformations that use NameM
transformationFunc :: Int -> Transformation -> TransformationFunc
transformationFunc n = \case
Vectorisation -> WithTypeEnv (newNames <$$> Right <$$> Vectorisation2.vectorisation)
Vectorisation -> WithTypeEnv (Right . newNames <$$> Vectorisation2.vectorisation)
GenerateEval -> Plain generateEval
CaseSimplification -> Plain (noNewNames . caseSimplification)
SplitFetch -> Plain (noNewNames . splitFetch)
Expand Down Expand Up @@ -375,7 +375,7 @@ transformationFunc n = \case
GeneralizedUnboxing -> WithTypeEnv (Right <$$> generalizedUnboxing)
ArityRaising -> WithTypeEnv (Right <$$> (arityRaising n))
LateInlining -> WithTypeEnv (Right <$$> lateInlining)
UnitPropagation -> WithTypeEnv (noNewNames <$$> Right <$$> unitPropagation)
UnitPropagation -> WithTypeEnv (Right . noNewNames <$$> unitPropagation)
NonSharedElimination -> WithTypeEnvShr nonSharedElimination
DeadFunctionElimination -> WithLVA (noNewNames <$$$$> deadFunctionElimination)
DeadVariableElimination -> WithLVA (noNewNames <$$$$> deadVariableElimination)
Expand Down
1 change: 1 addition & 0 deletions grin/src/Reducer/Interpreter/Base.hs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ module Reducer.Interpreter.Base

import Control.Monad.Fail
import Control.Monad.Trans (MonadIO)
import Data.Fix (Fix(..))
import Data.Function (fix)
import Data.Map.Strict (Map, fromList)
import Grin.ExtendedSyntax.Syntax hiding (Val)
Expand Down
2 changes: 1 addition & 1 deletion grin/src/Reducer/Interpreter/Definitional/Cib.hs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
{-# LANGUAGE TypeApplications #-}
module Reducer.Interpreter.Definitional.Cib where

import Data.Fix (Fix(..))
import Data.Maybe (mapMaybe)
import Grin.ExtendedSyntax.Syntax (Name(..))
import Control.Monad.Fail (MonadFail)
Expand All @@ -11,7 +12,6 @@ import Control.Monad.State (gets, modify)
import Reducer.Interpreter.Base
import Reducer.Interpreter.Definitional.Internal
import Reducer.Interpreter.Definitional.Instance
import Data.Functor.Foldable (Fix)
import Data.Functor.Sum

import qualified Grin.ExtendedSyntax.Syntax as Syntax
Expand Down
1 change: 1 addition & 0 deletions grin/src/Reducer/Interpreter/Definitional/Instance.hs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import Control.Monad.Reader (MonadReader(..))
import Control.Monad.State (MonadState(..))
import Control.Monad.Trans (MonadIO, lift)
import Control.Monad.Trans.State hiding (state, get)
import Data.Fix (Fix(..))
import Data.Functor.Foldable
import Data.Functor.Sum
import Data.Maybe (fromJust)
Expand Down
1 change: 1 addition & 0 deletions grin/src/Reducer/Interpreter/Definitional/Internal.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import Control.Monad.Trans (MonadIO)
import Control.Monad.Trans.Reader hiding (ask, local)
import Control.Monad.Trans.State hiding (state, get)
import Data.Either (fromLeft)
import Data.Fix (Fix)
import Data.Functor.Foldable
import Data.Functor.Sum
import Data.Int
Expand Down
2 changes: 1 addition & 1 deletion grin/src/Reducer/LLVM/CodeGen.hs
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,7 @@ codeGenCase opVal alts bindingGen = do
(Alt DefaultPat _, _) -> True
_ -> False
(defaultAlts, normalAlts) = List.partition isDefault alts
when (length defaultAlts > 1) $ fail "multiple default patterns"
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was complaining that Identity didn't implement MonadFail.
I think that means it was calling error before this change anyway.

when (length defaultAlts > 1) $ error "multiple default patterns"
let orderedAlts = defaultAlts ++ normalAlts

(altDests, altValues, altCGTypes) <- fmap List.unzip3 . forM orderedAlts $ \(Alt cpat _, altBody) -> do
Expand Down
2 changes: 1 addition & 1 deletion grin/src/Reducer/PrimOps.hs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import Data.Char (chr, ord)
import Grin.Grin
import Data.Map.Strict as Map
import Data.String (fromString)
import Data.Functor.Infix ((<$$>))
import Data.Functor.Syntax ((<$$>))
import Data.Text as Text
import Control.Monad.IO.Class

Expand Down
2 changes: 1 addition & 1 deletion grin/src/Test/ExtendedSyntax/Old/Test.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import Control.Monad.Trans.Reader
import qualified Control.Monad.State.Class as CMS
import qualified Control.Monad.Reader.Class as CMR
import Data.Bifunctor
import Data.Functor.Infix
import Data.Functor.Syntax
import Data.Functor.Foldable
import Data.List ((\\))
import Data.Maybe (fromJust, maybeToList)
Expand Down
2 changes: 1 addition & 1 deletion grin/src/Test/Test.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import Control.Monad.Trans.Reader
import qualified Control.Monad.State.Class as CMS
import qualified Control.Monad.Reader.Class as CMR
import Data.Bifunctor
import Data.Functor.Infix
import Data.Functor.Syntax
import Data.Functor.Foldable
import Data.List ((\\))
import Data.Maybe (fromJust, maybeToList)
Expand Down
2 changes: 1 addition & 1 deletion grin/src/Transformations/Optimising/GeneralizedUnboxing.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import Data.Maybe
import Data.List
import Data.Function
import Data.Functor.Foldable as Foldable
import Data.Functor.Infix
import Data.Functor.Syntax
import Data.Vector (Vector)
import qualified Data.Vector as Vector
import Control.Applicative
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import qualified Data.Map as Map
import qualified Data.List as List
import Data.Functor.Foldable as Foldable
import qualified Data.Foldable
import Data.Functor.Infix
import Data.Functor.Syntax
import Control.Monad.State
import Test.Hspec

Expand Down
2 changes: 1 addition & 1 deletion grin/test/PipelineSpec.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module PipelineSpec where

import Data.Functor.Infix ((<$$>))
import Data.Functor.Syntax ((<$$>))
import Data.List ((\\), nub)
import Test.Hspec
import Test.QuickCheck
Expand Down
1 change: 1 addition & 0 deletions grin/test/Reducer/Interpreter/Definitional/CibSpec.hs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
module Reducer.Interpreter.Definitional.CibSpec where

import Data.Fix (Fix(..))
import Data.Monoid
import Control.Exception
import Test.Hspec
Expand Down
6 changes: 3 additions & 3 deletions stack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ extra-deps:
- set-extra-1.4.1
- llvm-hs-pretty-0.6.1.0
- system-posix-redirect-1.1.0.1
- github: yatima-inc/llvm-hs
commit: 868e23a13942703255979369defdb49ac57b6866
branch: llvm-7
- github: 414owen/llvm-hs
commit: 169e8518b0d9bd425f2daecbcab8b28b54da54dc
branch: upgrade-to-ghc-8.10
subdirs:
- llvm-hs
- llvm-hs-pure
Expand Down