Date: Sunday, September 18, 2022 @ 15:50:56 Author: felixonmars Revision: 1304945
remove upstreamed patch Deleted: ihaskell/trunk/enable-dynamic-way.patch --------------------------+ enable-dynamic-way.patch | 92 --------------------------------------------- 1 file changed, 92 deletions(-) Deleted: enable-dynamic-way.patch =================================================================== --- enable-dynamic-way.patch 2022-09-18 15:49:07 UTC (rev 1304944) +++ enable-dynamic-way.patch 2022-09-18 15:50:56 UTC (rev 1304945) @@ -1,92 +0,0 @@ -commit d03b9eb85f7a32683806f0bb1e29fac856a451e1 -Author: Martin Reboredo <[email protected]> -Date: Tue Jul 19 18:05:17 2022 -0300 - - Dynamic way for dynamically linked RTS - -diff --git a/src/IHaskell/Eval/Util.hs b/src/IHaskell/Eval/Util.hs -index dea936d..f2579f0 100644 ---- a/src/IHaskell/Eval/Util.hs -+++ b/src/IHaskell/Eval/Util.hs -@@ -9,6 +9,7 @@ module IHaskell.Eval.Util ( - setExtension, - ExtFlag(..), - setFlags, -+ setWayDynFlag, - - -- * Code Evaluation - evalImport, -@@ -42,6 +43,7 @@ import GHC.Driver.Monad (modifySession) - import GHC.Driver.Ppr - import GHC.Driver.Session - import GHC.Driver.Env.Types -+import GHC.Platform.Ways (Way(..), hostIsDynamic) - import GHC.Runtime.Context - import GHC.Types.Name (pprInfixName) - import GHC.Types.Name.Set -@@ -58,6 +60,7 @@ import GHC.Driver.CmdLine - import GHC.Driver.Monad (modifySession) - import GHC.Driver.Session - import GHC.Driver.Types -+import GHC.Driver.Ways (Way(..), hostIsDynamic) - import GHC.Types.Name (pprInfixName) - import GHC.Types.Name.Set - import qualified GHC.Driver.Session as DynFlags -@@ -119,6 +122,24 @@ extensionFlag ext = - -- Check if a FlagSpec matches "No<ExtensionName>". In that case, we disable the extension. - flagMatchesNo ex fs = ex == "No" ++ flagSpecName fs - -+-- | Consult the RTS to find if GHC has been built with dynamic linking and then turn on the -+-- dynamic way for GHC. Otherwise it does nothing. -+setWayDynFlag :: DynFlags -+ -> DynFlags -+setWayDynFlag = -+ if hostIsDynamic -+ then addWay WayDyn -+ else id -+#if MIN_VERSION_ghc(9,2,0) -+#else -+ where -+ addWay = addWay' -+#if MIN_VERSION_ghc(9,0,0) -+#else -+ hostIsDynamic = dynamicGhc -+#endif -+#endif -+ - -- | Pretty-print dynamic flags (taken from 'InteractiveUI' module of `ghc-bin`) - pprDynFlags :: Bool -- ^ Whether to include flags which are on by default - -> DynFlags -@@ -332,7 +353,7 @@ initGhci sandboxPackages = do - #endif - let flag = flip xopt_set - unflag = flip xopt_unset -- dflags = flag ExtendedDefaultRules . unflag MonomorphismRestriction $ originalFlags -+ dflags = flag ExtendedDefaultRules . unflag MonomorphismRestriction $ setWayDynFlag originalFlags - #if MIN_VERSION_ghc(8,2,0) - pkgFlags = - case sandboxPackages of -diff --git a/src/tests/IHaskell/Test/Completion.hs b/src/tests/IHaskell/Test/Completion.hs -index e70629e..8892bf2 100644 ---- a/src/tests/IHaskell/Test/Completion.hs -+++ b/src/tests/IHaskell/Test/Completion.hs -@@ -30,6 +30,7 @@ import Shelly (toTextIgnore, (</>), shelly, fromText, get_env_text, Fi - import IHaskell.Eval.Evaluate (Interpreter, liftIO) - import IHaskell.Eval.Completion (complete, CompletionType(..), completionType, - completionTarget) -+import IHaskell.Eval.Util (setWayDynFlag) - import IHaskell.Test.Util (replace, shouldBeAmong, ghc) - - -- | @readCompletePrompt "xs*ys"@ return @(xs, i)@ where i is the location of -@@ -67,9 +68,9 @@ initCompleter :: Interpreter () - initCompleter = do - flags <- getSessionDynFlags - #if MIN_VERSION_ghc(9,2,0) -- _ <- setSessionDynFlags $ flags { backend = Interpreter, ghcLink = LinkInMemory } -+ _ <- setSessionDynFlags $ setWayDynFlag flags { backend = Interpreter, ghcLink = LinkInMemory } - #else -- _ <- setSessionDynFlags $ flags { hscTarget = HscInterpreted, ghcLink = LinkInMemory } -+ _ <- setSessionDynFlags $ setWayDynFlag flags { hscTarget = HscInterpreted, ghcLink = LinkInMemory } - #endif - - -- Import modules.
