\begin{code}
module CompManager ( cmInit, cmLoadModule,
+#ifdef GHCI
cmGetExpr, cmRunExpr,
+#endif
CmState, emptyCmState -- abstract
)
where
import CmLink
import CmTypes
import HscTypes
-import HscMain ( hscExpr )
-import Interpreter ( HValue )
import Module ( ModuleName, moduleName,
isModuleInThisPackage, moduleEnvElts,
moduleNameUserString )
import HscTypes ( HomeSymbolTable, HomeIfaceTable,
PersistentCompilerState, ModDetails(..) )
import Name ( lookupNameEnv )
-import RdrName
import Module
import PrelNames ( mainName )
import HscMain ( initPersistentCompilerState )
import Unique ( Uniquable )
import Digraph ( SCC(..), stronglyConnComp )
import DriverUtil ( BarfKind(..), splitFilename3 )
-import CmdLineOpts ( DynFlags )
import Util
import Outputable
import Panic ( panic )
+#ifdef GHCI
+import CmdLineOpts ( DynFlags )
+import Interpreter ( HValue )
+import HscMain ( hscExpr )
+import RdrName
+import PrelGHC ( unsafeCoerce# )
+#endif
+
-- lang
import Exception ( throwDyn )
import IO
import List ( nub )
import Maybe ( catMaybes, fromMaybe, isJust )
-import PrelGHC ( unsafeCoerce# )
\end{code}
cmInit raw_package_info gmode
= emptyCmState raw_package_info gmode
+#ifdef GHCI
cmGetExpr :: CmState
-> DynFlags
-> ModuleName
cmRunExpr hval
= do unsafeCoerce# hval :: IO ()
-- putStrLn "done."
+#endif
-- Persistent state just for CM, excluding link & compile subsystems
data PersistentCMState