projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
make GHCi use base:Prelude, not just Prelude
[ghc-hetmet.git]
/
compiler
/
main
/
HscMain.lhs
diff --git
a/compiler/main/HscMain.lhs
b/compiler/main/HscMain.lhs
index
31995f0
..
cafba83
100644
(file)
--- a/
compiler/main/HscMain.lhs
+++ b/
compiler/main/HscMain.lhs
@@
-54,7
+54,7
@@
import HsSyn ( HsModule, LHsBinds, HsGroup, LIE, LImportDecl, HsDoc,
import SrcLoc ( Located(..) )
import StringBuffer ( hGetStringBuffer, stringToStringBuffer )
import Parser
import SrcLoc ( Located(..) )
import StringBuffer ( hGetStringBuffer, stringToStringBuffer )
import Parser
-import Lexer ( P(..), ParseResult(..), mkPState )
+import Lexer
import SrcLoc ( mkSrcLoc )
import TcRnDriver ( tcRnModule, tcRnExtCore )
import TcIface ( typecheckIface )
import SrcLoc ( mkSrcLoc )
import TcRnDriver ( tcRnModule, tcRnExtCore )
import TcIface ( typecheckIface )
@@
-76,6
+76,7
@@
import CodeGen ( codeGen )
import CmmParse ( parseCmmFile )
import CodeOutput ( codeOutput )
import NameEnv ( emptyNameEnv )
import CmmParse ( parseCmmFile )
import CodeOutput ( codeOutput )
import NameEnv ( emptyNameEnv )
+import Breakpoints ( noDbgSites )
import DynFlags
import ErrUtils
import DynFlags
import ErrUtils
@@
-92,6
+93,7
@@
import UniqFM ( emptyUFM )
import Bag ( unitBag )
import Control.Monad
import Bag ( unitBag )
import Control.Monad
+import System.Exit
import System.IO
import Data.IORef
\end{code}
import System.IO
import Data.IORef
\end{code}
@@
-466,7
+468,7
@@
hscFileFrontEnd =
-------------------
-- DESUGAR
-------------------
-------------------
-- DESUGAR
-------------------
- -> {-# SCC "DeSugar" #-} deSugar hsc_env tc_result
+ -> {-# SCC "DeSugar" #-} deSugar hsc_env (ms_location mod_summary) tc_result
--------------------------------------------------------------
-- Simplifiers
--------------------------------------------------------------
-- Simplifiers
@@
-583,7
+585,8
@@
hscCompile cgguts
cg_tycons = tycons,
cg_dir_imps = dir_imps,
cg_foreign = foreign_stubs,
cg_tycons = tycons,
cg_dir_imps = dir_imps,
cg_foreign = foreign_stubs,
- cg_dep_pkgs = dependencies } = cgguts
+ cg_dep_pkgs = dependencies,
+ cg_hpc_info = hpc_info } = cgguts
dflags = hsc_dflags hsc_env
location = ms_location mod_summary
data_tycons = filter isDataTyCon tycons
dflags = hsc_dflags hsc_env
location = ms_location mod_summary
data_tycons = filter isDataTyCon tycons
@@
-603,7
+606,7
@@
hscCompile cgguts
abstractC <- {-# SCC "CodeGen" #-}
codeGen dflags this_mod data_tycons
foreign_stubs dir_imps cost_centre_info
abstractC <- {-# SCC "CodeGen" #-}
codeGen dflags this_mod data_tycons
foreign_stubs dir_imps cost_centre_info
- stg_binds
+ stg_binds hpc_info
------------------ Code output -----------------------
(stub_h_exists,stub_c_exists)
<- codeOutput dflags this_mod location foreign_stubs
------------------ Code output -----------------------
(stub_h_exists,stub_c_exists)
<- codeOutput dflags this_mod location foreign_stubs
@@
-684,6
+687,7
@@
hscFileCheck hsc_env mod_summary = do {
md_exports = tcg_exports tc_result,
md_insts = tcg_insts tc_result,
md_fam_insts = tcg_fam_insts tc_result,
md_exports = tcg_exports tc_result,
md_insts = tcg_insts tc_result,
md_fam_insts = tcg_fam_insts tc_result,
+ md_dbg_sites = noDbgSites,
md_rules = [panic "no rules"] }
-- Rules are CoreRules, not the
-- RuleDecls we get out of the typechecker
md_rules = [panic "no rules"] }
-- Rules are CoreRules, not the
-- RuleDecls we get out of the typechecker
@@
-734,8
+738,12
@@
myParseModule dflags src_filename maybe_src_buf
PFailed span err -> return (Left (mkPlainErrMsg span err));
PFailed span err -> return (Left (mkPlainErrMsg span err));
- POk _ rdr_module -> do {
+ POk pst rdr_module -> do {
+ let {ms = getMessages pst};
+ printErrorsAndWarnings dflags ms;
+ when (errorsFound dflags ms) $ exitWith (ExitFailure 1);
+
dumpIfSet_dyn dflags Opt_D_dump_parsed "Parser" (ppr rdr_module) ;
dumpIfSet_dyn dflags Opt_D_source_stats "Source Statistics"
dumpIfSet_dyn dflags Opt_D_dump_parsed "Parser" (ppr rdr_module) ;
dumpIfSet_dyn dflags Opt_D_source_stats "Source Statistics"
@@
-890,7
+898,11
@@
hscParseThing parser dflags str
PFailed span err -> do { printError span err;
return Nothing };
PFailed span err -> do { printError span err;
return Nothing };
- POk _ thing -> do {
+ POk pst thing -> do {
+
+ let {ms = getMessages pst};
+ printErrorsAndWarnings dflags ms;
+ when (errorsFound dflags ms) $ exitWith (ExitFailure 1);
--ToDo: can't free the string buffer until we've finished this
-- compilation sweep and all the identifiers have gone away.
--ToDo: can't free the string buffer until we've finished this
-- compilation sweep and all the identifiers have gone away.