\section[GHC_Main]{Main driver for Glasgow Haskell compiler}
\begin{code}
-module HscMain ( HscResult(..), hscMain,
+module HscMain ( HscResult(..), hscMain,
#ifdef GHCI
hscStmt, hscThing, hscModuleContents,
#endif
#ifdef GHCI
import Interpreter
import ByteCodeGen ( byteCodeGen )
-import CoreTidy ( tidyCoreExpr )
+import TidyPgm ( tidyCoreExpr )
import CorePrep ( corePrepExpr )
import Rename ( renameStmt, renameRdrName, slurpIface )
import RdrName ( rdrNameOcc, setRdrNameOcc )
import Type ( Type )
import Id ( Id, idName, setGlobalIdDetails )
import IdInfo ( GlobalIdDetails(VanillaGlobal) )
-import Name ( isLocalName )
+import Name ( isInternalName )
import NameEnv ( lookupNameEnv )
import Module ( lookupModuleEnv )
import RdrName ( rdrEnvElts )
import PrelNames ( iNTERACTIVE )
import StringBuffer ( stringToStringBuffer )
-import FastString ( mkFastString )
import Maybes ( catMaybes )
import List ( nub )
import Rules ( emptyRuleBase )
import PrelInfo ( wiredInThingEnv, wiredInThings )
import PrelRules ( builtinRules )
-import PrelNames ( knownKeyNames )
+import PrelNames ( knownKeyNames, gHC_PRIM_Name )
import MkIface ( mkFinalIface )
import TcModule
import InstEnv ( emptyInstEnv )
import Flattening ( flatten, flattenExpr )
import SimplCore
import CoreUtils ( coreBindsSize )
-import CoreTidy ( tidyCorePgm )
+import TidyPgm ( tidyCorePgm )
import CorePrep ( corePrepPgm )
import StgSyn
import CoreToStg ( coreToStg )
local_tycons = typeEnvTyCons env_tc
local_classes = typeEnvClasses env_tc
- imported_module_names = map ideclName (hsModuleImports rdr_module)
+ imported_module_names =
+ filter (/= gHC_PRIM_Name) $
+ map ideclName (hsModuleImports rdr_module)
+ -- eek! doesn't this keep rdr_module live until code generation?
+ -- SDM 3/2002
mod_name_to_Module nm
= do m <- findModule nm ; return (fst (fromJust m))
showPass dflags "Parser"
_scc_ "Parser" do
- buf <- hGetStringBuffer True{-expand tabs-} src_filename
+ buf <- hGetStringBuffer src_filename
let exts = ExtFlags {glasgowExtsEF = dopt Opt_GlasgowExts dflags,
parrEF = dopt Opt_PArr dflags}
Nothing -> return (pcs, []);
Just pcs ->
let do_lookup n
- | isLocalName n = lookupNameEnv (ic_type_env ic) n
+ | isInternalName n = lookupNameEnv (ic_type_env ic) n
| otherwise = lookupType hst (pcs_PTE pcs) n
maybe_ty_things = map do_lookup names