aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2019-09-20 14:20:55 -0400
committerCale Gibbard <cgibbard@gmail.com>2020-12-28 12:27:02 -0500
commite7ee7957a7ac746cfa05d7218fe0c2d1fd27f569 (patch)
tree1f89954c213700d7c0b5b6538f4e3743197ddeaa
parent8a5ccf93c53a40abe42134c2282ac9b9d653224c (diff)
Support a new ghc --make node type for parallel backpack upsweep
-rw-r--r--haddock-api/src/Haddock/Interface.hs6
1 files changed, 4 insertions, 2 deletions
diff --git a/haddock-api/src/Haddock/Interface.hs b/haddock-api/src/Haddock/Interface.hs
index e9cd6e0d..81c79cdf 100644
--- a/haddock-api/src/Haddock/Interface.hs
+++ b/haddock-api/src/Haddock/Interface.hs
@@ -52,6 +52,7 @@ import Text.Printf
import GHC.Unit.Module.Env (mkModuleSet, emptyModuleSet, unionModuleSet, ModuleSet)
import GHC.Unit.Module.ModSummary
+import GHC.Unit.Module.Graph
import GHC.Unit.Types
import GHC.Data.Graph.Directed
import GHC.Driver.Session hiding (verbosity)
@@ -137,10 +138,11 @@ createIfaces verbosity modules flags instIfaceMap = do
(ifaces, _, !ms) <- foldM f ([], Map.empty, emptyModuleSet) sortedMods
return (reverse ifaces, ms)
where
- f (ifaces, ifaceMap, !ms) modSummary = do
+ f state (InstantiationNode _) = pure state
+ f (ifaces, ifaceMap, !ms) (ModuleNode ems) = do
x <- {-# SCC processModule #-}
withTimingD "processModule" (const ()) $ do
- processModule verbosity modSummary flags ifaceMap instIfaceMap
+ processModule verbosity (emsModSummary ems) flags ifaceMap instIfaceMap
return $ case x of
Just (iface, ms') -> ( iface:ifaces
, Map.insert (ifaceMod iface) iface ifaceMap