2 % (c) The AQUA Project, Glasgow University, 1993-2000
4 \section[CmLink]{Linker for GHCI}
7 module CmLink ( Linkable(..),
8 filterModuleLinkables, modname_of_linkable,
12 PLS{-abstractly!-}, emptyPLS )
16 import CmStaticInfo ( PCI )
17 import CmFind ( Path, PkgName )
18 import Module ( Module )
19 import Outputable ( SDoc )
20 import FiniteMap ( FiniteMap, emptyFM )
21 import RdrName ( RdrName )
22 import Digraph ( SCC )
24 import Panic ( panic )
26 #include "HsVersions.h"
33 source_symtab :: FiniteMap RdrName HValue,
34 object_symtab :: FiniteMap String Addr
37 data HValue = HValue -- fix this ... just temporary?
40 link :: PCI -> [SCC Linkable] -> PLS -> IO LinkResult
41 link pci linkabless pls
42 = return (error "link:unimp")
52 -- | Trees [StgTree RdrName]
55 = LM {-should be:Module-} String{- == ModName-} [Unlinked]
58 modname_of_linkable (LM nm _) = nm
59 modname_of_linkable (LP _) = panic "modname_of_linkable: package"
61 filterModuleLinkables :: (String{- ==ModName-} -> Bool)
64 filterModuleLinkables p [] = []
65 filterModuleLinkables p (li:lis)
68 LM modnm _ -> if p modnm then retain else dump
70 dump = filterModuleLinkables p lis
74 emptyPLS = return (MkPLS { source_symtab = emptyFM,
75 object_symtab = emptyFM })