From e92bd0af485d9f5d40e40ed282f552bf99c6c87f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gr=C3=B6ber?= Date: Thu, 10 Sep 2015 07:48:13 +0200 Subject: [PATCH] Disable obj loading for targets (Fix #554) --- Language/Haskell/GhcMod/Gap.hs | 17 +++++++---------- Language/Haskell/GhcMod/Target.hs | 4 +++- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Language/Haskell/GhcMod/Gap.hs b/Language/Haskell/GhcMod/Gap.hs index cbf773b..df9cb77 100644 --- a/Language/Haskell/GhcMod/Gap.hs +++ b/Language/Haskell/GhcMod/Gap.hs @@ -223,22 +223,19 @@ withInteractiveContext action = gbracket setup teardown body topImports >>= setCtx action topImports = do - mss <- getModuleGraph - mns <- map modName <$> filterM isTop mss - let ii = map IIModule mns + ms <- filterM moduleIsInterpreted =<< map ms_mod <$> getModuleGraph + liftIO $ print (map modName ms) + let iis = map (IIModule . modName) ms #if __GLASGOW_HASKELL__ >= 704 - return ii + return iis #else - return (ii,[]) + return (iis,[]) #endif - isTop mos = lookupMod mos ||> returnFalse - lookupMod mos = lookupModule (ms_mod_name mos) Nothing >> return True - returnFalse = return False #if __GLASGOW_HASKELL__ >= 706 - modName = moduleName . ms_mod + modName = moduleName setCtx = setContext #elif __GLASGOW_HASKELL__ >= 704 - modName = ms_mod + modName = id setCtx = setContext #else modName = ms_mod diff --git a/Language/Haskell/GhcMod/Target.hs b/Language/Haskell/GhcMod/Target.hs index 847433b..8fb0336 100644 --- a/Language/Haskell/GhcMod/Target.hs +++ b/Language/Haskell/GhcMod/Target.hs @@ -409,12 +409,14 @@ resolveGmComponents mumns cs = do -- | Set the files as targets and load them. loadTargets :: IOish m => [GHCOption] -> [FilePath] -> GmlT m () loadTargets opts targetStrs = do - targets <- + targets' <- withLightHscEnv opts $ \env -> liftM (nubBy ((==) `on` targetId)) (mapM ((`guessTarget` Nothing) >=> mapFile env) targetStrs) >>= mapM relativize + let targets = map (\t -> t { targetAllowObjCode = False }) targets' + gmLog GmDebug "loadTargets" $ text "Loading" <+>: fsep (map (text . showTargetId) targets)