From 3bfc2d8843bea473b8ced896bbccc06cd642bdeb Mon Sep 17 00:00:00 2001 From: Vaibhav Sagar Date: Wed, 25 Mar 2020 17:10:41 +0800 Subject: [PATCH] ihaskell: update --- ihaskell.cabal | 6 +++--- src/IHaskell/Eval/Evaluate.hs | 4 ++++ src/IHaskell/Eval/Util.hs | 12 ++++++++++-- src/tests/IHaskell/Test/Eval.hs | 4 ++++ src/tests/IHaskell/Test/Parser.hs | 4 ++++ 5 files changed, 25 insertions(+), 5 deletions(-) diff --git a/ihaskell.cabal b/ihaskell.cabal index 61aa7c94..901cc781 100644 --- a/ihaskell.cabal +++ b/ihaskell.cabal @@ -88,7 +88,7 @@ library utf8-string -any, vector -any, ipython-kernel >=0.10, - ghc-boot >=8.0 && <8.9 + ghc-boot >=8.0 && <8.11 exposed-modules: IHaskell.Display IHaskell.Convert @@ -135,10 +135,10 @@ executable ihaskell default-language: Haskell2010 build-depends: ihaskell -any, - base >=4.9 && < 4.14, + base >=4.9 && < 4.15, text >=0.11, transformers -any, - ghc >=8.0 && < 8.9, + ghc >=8.0 && < 8.11, process >=1.1, aeson >=0.7, bytestring >=0.10, diff --git a/src/IHaskell/Eval/Evaluate.hs b/src/IHaskell/Eval/Evaluate.hs index 7fd2fc64..1346dbac 100644 --- a/src/IHaskell/Eval/Evaluate.hs +++ b/src/IHaskell/Eval/Evaluate.hs @@ -1085,7 +1085,11 @@ doLoadModule name modName = do return $ displayError $ "Failed to load module " ++ modName ++ ": " ++ show exception objTarget :: DynFlags -> HscTarget +#if MIN_VERSION_ghc(8,10,0) +objTarget = defaultObjectTarget +#else objTarget flags = defaultObjectTarget $ targetPlatform flags +#endif data Captured a = CapturedStmt String | CapturedIO (IO a) diff --git a/src/IHaskell/Eval/Util.hs b/src/IHaskell/Eval/Util.hs index dbad5521..3246f8b4 100644 --- a/src/IHaskell/Eval/Util.hs +++ b/src/IHaskell/Eval/Util.hs @@ -115,7 +115,9 @@ pprDynFlags show_all dflags = is_on = test f dflags quiet = not show_all && test f default_dflags == is_on -#if MIN_VERSION_ghc(8,6,0) +#if MIN_VERSION_ghc(8,10,0) + default_dflags = defaultDynFlags (settings dflags) (llvmConfig dflags) +#elif MIN_VERSION_ghc(8,6,0) default_dflags = defaultDynFlags (settings dflags) (llvmTargets dflags, llvmPasses dflags) #elif MIN_VERSION_ghc(8,4,0) default_dflags = defaultDynFlags (settings dflags) (llvmTargets dflags) @@ -167,7 +169,9 @@ pprLanguages show_all dflags = quiet = not show_all && test f default_dflags == is_on default_dflags = -#if MIN_VERSION_ghc(8,6,0) +#if MIN_VERSION_ghc(8,10,0) + defaultDynFlags (settings dflags) (llvmConfig dflags) `lang_set` +#elif MIN_VERSION_ghc(8,6,0) defaultDynFlags (settings dflags) (llvmTargets dflags, llvmPasses dflags) `lang_set` #elif MIN_VERSION_ghc(8,4,0) defaultDynFlags (settings dflags) (llvmTargets dflags) `lang_set` @@ -319,7 +323,11 @@ evalImport imports = do #endif importOf _ (IIModule _) = False importOf imp (IIDecl decl) = +#if MIN_VERSION_ghc(8,10,0) + ((==) `on` (unLoc . ideclName)) decl imp && not (isImportDeclQualified $ ideclQualified decl) +#else ((==) `on` (unLoc . ideclName)) decl imp && not (ideclQualified decl) +#endif -- Check whether an import is an *implicit* import of something. #if MIN_VERSION_ghc(8,4,0) diff --git a/src/tests/IHaskell/Test/Eval.hs b/src/tests/IHaskell/Test/Eval.hs index 04c742df..1ee78c43 100644 --- a/src/tests/IHaskell/Test/Eval.hs +++ b/src/tests/IHaskell/Test/Eval.hs @@ -168,7 +168,11 @@ testEval = ":typ 3" `becomes` ["3 :: forall t. Num t => t"] #endif ":k Maybe" `becomes` ["Maybe :: * -> *"] +#if MIN_VERSION_ghc(8,10,0) + ":in String" `pages` ["type String :: *\ntype String = [Char]\n \t-- Defined in \8216GHC.Base\8217"] +#else ":in String" `pages` ["type String = [Char] \t-- Defined in \8216GHC.Base\8217"] +#endif it "captures stderr" $ do [hereLit| diff --git a/src/tests/IHaskell/Test/Parser.hs b/src/tests/IHaskell/Test/Parser.hs index cb2996a0..71ce0d61 100644 --- a/src/tests/IHaskell/Test/Parser.hs +++ b/src/tests/IHaskell/Test/Parser.hs @@ -227,7 +227,11 @@ testParseString = describe "Parser" $ do second |]) >>= (`shouldBe` [Located 2 (Expression "first"), Located 4 (Expression "second")]) where +#if MIN_VERSION_ghc(8,10,0) + dataKindsError = ParseError (Loc 1 11) msg +#else dataKindsError = ParseError (Loc 1 10) msg +#endif #if MIN_VERSION_ghc(8,8,0) msg = "Cannot parse data constructor in a data/newtype declaration:\n 3" #else