Extend the GHC API with breakpoints and breakpoint handlers
[ghc-hetmet.git] / compiler / main / DynFlags.hs
index 53fa11a..1799033 100644 (file)
@@ -84,6 +84,9 @@ import Util           ( split )
 import Data.Char       ( isDigit, isUpper )
 import System.IO        ( hPutStrLn, stderr )
 
+import Breakpoints      ( BkptHandler )
+import Module           ( ModuleName )
+
 -- -----------------------------------------------------------------------------
 -- DynFlags
 
@@ -199,8 +202,6 @@ data DynFlag
    | Opt_HideAllPackages
    | Opt_PrintBindResult
    | Opt_Haddock
-   | Opt_Hpc
-   | Opt_Hpc_Trace
 
    -- keeping stuff
    | Opt_KeepHiDiffs
@@ -305,6 +306,9 @@ data DynFlags = DynFlags {
   
   -- message output
   log_action            :: Severity -> SrcSpan -> PprStyle -> Message -> IO ()
+
+  -- breakpoint handling
+ ,bkptHandler           :: Maybe (BkptHandler Module)
  }
 
 data HscTarget
@@ -413,7 +417,8 @@ defaultDynFlags =
        packageFlags            = [],
         pkgDatabase             = Nothing,
         pkgState                = panic "no package state yet: call GHC.setSessionDynFlags",
-       
+
+        bkptHandler             = Nothing,
        flags = [ 
            Opt_ReadUserPackageConf,
     
@@ -540,9 +545,7 @@ data Option
 updOptLevel :: Int -> DynFlags -> DynFlags
 -- Set dynflags appropriate to the optimisation level
 updOptLevel n dfs
-  = if (n >= 1)
-     then dfs2{ hscTarget = HscC, optLevel = n } -- turn on -fvia-C with -O
-     else dfs2{ optLevel = n }
+  = dfs2{ optLevel = n }
   where
    dfs1 = foldr (flip dopt_unset) dfs  remove_dopts
    dfs2 = foldr (flip dopt_set)   dfs1 extra_dopts
@@ -1051,9 +1054,7 @@ fFlags = [
   ( "excess-precision",                        Opt_ExcessPrecision ),
   ( "asm-mangling",                    Opt_DoAsmMangling ),
   ( "print-bind-result",               Opt_PrintBindResult ),
-  ( "force-recomp",                    Opt_ForceRecomp ),
-  ( "hpc",                             Opt_Hpc ),
-  ( "hpc-tracer",                      Opt_Hpc )
+  ( "force-recomp",                    Opt_ForceRecomp )
   ]
 
 
@@ -1351,9 +1352,6 @@ machdepCCOpts dflags
                        -- version.
                ] )
 
-#elif mips_TARGET_ARCH
-       = ( ["-static"], [] )
-
 #elif sparc_TARGET_ARCH
        = ( [], ["-w"] )
        -- For now, to suppress the gcc warning "call-clobbered