@@ -66,7 +66,7 @@ performUsageAnalysis = do
66 let (residDeps, (reachableNames, minUse)) = minimalUsage depMap
66 let (residDeps, (reachableNames, minUse)) = minimalUsage depMap
68 -- Print some debug info.
68 -- Print some debug info.
69− logLvl 3 $ "Reachable names:\n" ++ unlines (map show . S.toList $ reachableNames)
69+ logLvl 3 $ "Reachable names:\n" ++ unlines (map (indent . show) . S.toList $ reachableNames)
70 logLvl 4 $ "Minimal usage:\n" ++ fmtUseMap minUse
70 logLvl 4 $ "Minimal usage:\n" ++ fmtUseMap minUse
71 logLvl 5 $ "Residual deps:\n" ++ unlines (map fmtItem . M.toList $ residDeps)
71 logLvl 5 $ "Residual deps:\n" ++ unlines (map fmtItem . M.toList $ residDeps)
@@ -76,12 +76,13 @@ performUsageAnalysis = do
76 return $ S.toList reachableNames
76 return $ S.toList reachableNames
78 mainName = sNS (sUN "main") ["Main"]
78 mainName = sNS (sUN "main") ["Main"]
80 fmtItem :: (Cond, Set Node) -> String
81 fmtItem :: (Cond, Set Node) -> String
81− fmtItem (cond, deps) = show (S.toList cond) ++ " -> " ++ show (S.toList deps)
82+ fmtItem (cond, deps) = indent $ show (S.toList cond) ++ " -> " ++ show (S.toList deps)
83 fmtUseMap :: UseMap -> String
84 fmtUseMap :: UseMap -> String
84− fmtUseMap = unlines . map (\(n,is) -> show n ++ " -> " ++ show (IS.toList is)) . M.toList
85+ fmtUseMap = unlines . map (\(n,is) -> indent $ show n ++ " -> " ++ show (IS.toList is)) . M.toList
86 storeUsage :: (Name, IntSet) -> Idris ()
87 storeUsage :: (Name, IntSet) -> Idris ()
87 storeUsage (n, args) = do
88 storeUsage (n, args) = do
@@ -123,7 +124,6 @@ buildDepMap ci ctx mainName = addPostulates $ dfs S.empty M.empty [mainName]
124 -- mini-DSL for postulates
125 -- mini-DSL for postulates
125 (==>) ds rs = (S.fromList ds, S.fromList rs)
126 (==>) ds rs = (S.fromList ds, S.fromList rs)
126− (.:) ms n = NS (sUN n) (map pack $ reverse ms)
127 it n is = [(sUN n, Arg i) | i <- is]
127 it n is = [(sUN n, Arg i) | i <- is]
128 mn n is = [(MN 0 $ pack n, Arg i) | i <- is]
128 mn n is = [(MN 0 $ pack n, Arg i) | i <- is]
@@ -136,8 +136,8 @@ buildDepMap ci ctx mainName = addPostulates $ dfs S.empty M.empty [mainName]
136 [ [] ==> concat
136 [ [] ==> concat
137 -- These two, Main.main and run__IO, are always evaluated
137 -- These two, Main.main and run__IO, are always evaluated
138 -- but they evade analysis since they come from the seed term.
138 -- but they evade analysis since they come from the seed term.
139− [ [(["Main"] .: "main", Result)]
139+ [ [(sUN "main" `sNS` ["Main"], Result)]
140− , [(sUN "run__IO", Result)]
140+ , [(sUN "run__IO", Result), (sUN "run__IO", Arg 0)]
142 -- these have been discovered as builtins but are not listed
142 -- these have been discovered as builtins but are not listed
143 -- among Idris.Primitives.primitives
143 -- among Idris.Primitives.primitives