#include "HsVersions.h"
-import Maybe ( isJust )
-import IO ( hPutStrLn, stderr )
+#ifdef GHCI
+import RdrHsSyn ( RdrNameHsExpr )
+import CoreToStg ( coreToStgExpr )
+import StringBuffer ( stringToStringBuffer, freeStringBuffer )
+#endif
+
import HsSyn
-import StringBuffer ( hGetStringBuffer,
- stringToStringBuffer, freeStringBuffer )
+import StringBuffer ( hGetStringBuffer )
import Parser
-import RdrHsSyn ( RdrNameHsExpr )
import Lex ( PState(..), ParseResult(..) )
import SrcLoc ( mkSrcLoc )
-
import Rename
import Rules ( emptyRuleBase )
import PrelInfo ( wiredInThingEnv, wiredInThings )
import OccurAnal ( occurAnalyseBinds )
import CoreUtils ( coreBindsSize )
import CoreTidy ( tidyCorePgm )
-import CoreToStg ( topCoreBindsToStg, coreToStgExpr )
+import CoreToStg ( topCoreBindsToStg )
import StgSyn ( collectFinalStgBinders )
import SimplStg ( stg2stg )
import CodeGen ( codeGen )
import Bag ( emptyBag )
import Outputable
-import Interpreter
+import Interpreter ( stgBindsToInterpSyn, UnlinkedIExpr, UnlinkedIBind, ItblEnv )
import CmStaticInfo ( GhciMode(..) )
import HscStats ( ppSourceStats )
import HscTypes ( ModDetails, ModIface(..), PersistentCompilerState(..),
import Module ( Module, lookupModuleEnvByName )
import Monad ( when )
+import Maybe ( isJust )
+import IO ( hPutStrLn, stderr )
\end{code}
| otherwise
= do {
hPutStrLn stderr "COMPILATION NOT REQUIRED";
- let this_mod = mi_module old_iface
;
-- CLOSURE
(pcs_cl, closure_errs, cl_hs_decls)
-> String -- The expression
-> IO ( PersistentCompilerState, Maybe UnlinkedIExpr )
+#ifndef GHCI
+hscExpr dflags hst hit pcs this_module expr
+ = panic "hscExpr: non-interactive build"
+#else
+
hscExpr dflags hst hit pcs0 this_module expr
= do { -- Parse it
maybe_parsed <- hscParseExpr dflags expr;
Just (print_unqual, rn_expr) -> do {
-- Typecheck it
- maybe_tc_expr <- typecheckExpr dflags pcs1 hst print_unqual rn_expr;
+ maybe_tc_expr <- typecheckExpr dflags pcs1 hst print_unqual this_module rn_expr;
case maybe_tc_expr of
Nothing -> return (pcs1, Nothing)
Just tc_expr -> do {
return (Just rdr_expr)
}}
+#endif
\end{code}
%************************************************************************