import Panic ( panic )
import CmStaticInfo ( PCI(..), mkPCI, Package(..) )
-import CmFind ( Finder, newFinder,
+import Finder ( Finder, newFinder,
ModName, ml_modname, isPackageLoc,
PkgName, Path )
import CmSummarise ( summarise, ModSummary(..),
mi_name, ms_get_imports,
name_of_summary, deps_of_summary )
-import CmCompile ( PCS, emptyPCS, HST, HIT, CompResult(..), cmCompile )
+--import CmCompile ( PCS, emptyPCS, HST, HIT, CompResult(..), cmCompile )
import CmLink ( PLS, emptyPLS, Linkable(..),
link, LinkResult(..),
filterModuleLinkables, modname_of_linkable,
data PersistentCMState
= PersistentCMState {
hst :: HomeSymbolTable, -- home symbol table
- hit :: HomeInterfaceTable, -- home interface table
+ hit :: HomeIfaceTable, -- home interface table
ui :: UnlinkedImages, -- the unlinked images
mg :: ModuleGraph -- the module graph
}
hst = emptyHST, hit = emptyHIT,
ui = emptyUI, mg = emptyMG }
-emptyHIT :: HomeInterfaceTable
+emptyHIT :: HomeIfaceTable
emptyHIT = emptyFM
emptyHST :: HomeSymbolTable
emptyHST = emptyFM
where
getSummary :: ModName -> IO ModSummary
getSummary nm
- = do loc <- finder nm
- summary <- summarise loc
- return summary
+ = do found <- finder nm
+ case found of
+ Just (mod, location) -> summarise mod location
+ Nothing -> panic ("CompManager: can't find module `" ++
+ showSDoc (ppr nm) ++ "'")
-- loop invariant: homeSummaries doesn't contain package modules
loop :: [ModSummary] -> IO [ModSummary]