X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FDynFlags.hs;h=b3ee6fb3efb0124bd961cd4378ddfc73a3629821;hb=d363c1fc28d8227b27b4506ebeb089845c5b0af6;hp=d5f5edd070e13e621d9690b667b70f479e9448a9;hpb=0560e796f1d813582e066a5f2bec2684c71df44d;p=ghc-hetmet.git diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index d5f5edd..b3ee6fb 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -17,7 +17,7 @@ module DynFlags ( -- Dynamic flags DynFlag(..), DynFlags(..), - HscTarget(..), isObjectTarget, + HscTarget(..), isObjectTarget, defaultObjectTarget, GhcMode(..), isOneShot, GhcLink(..), isNoLink, PackageFlag(..), @@ -59,7 +59,7 @@ import PrelNames ( mAIN ) import StaticFlags ( opt_Static ) #endif import StaticFlags ( opt_PIC, WayName(..), v_Ways, v_Build_tag, - v_RTS_Build_tag ) + v_RTS_Build_tag, opt_Hpc ) import {-# SOURCE #-} Packages (PackageState) import DriverPhases ( Phase(..), phaseInputExt ) import Config @@ -139,6 +139,7 @@ data DynFlag | Opt_WarnIsError -- -Werror; makes warnings fatal | Opt_WarnDuplicateExports | Opt_WarnHiShadows + | Opt_WarnImplicitPrelude | Opt_WarnIncompletePatterns | Opt_WarnIncompletePatternsRecUpd | Opt_WarnMissingFields @@ -174,7 +175,7 @@ data DynFlag | Opt_ImplicitPrelude | Opt_ScopedTypeVariables | Opt_BangPatterns - | Opt_IndexedTypes + | Opt_TypeFamilies | Opt_OverloadedStrings -- optimisation opts @@ -192,8 +193,10 @@ data DynFlag | Opt_CaseMerge | Opt_UnboxStrictFields | Opt_DictsCheap + | Opt_RewriteRules -- misc opts + | Opt_ShortGhciBanner | Opt_Cpp | Opt_Pp | Opt_ForceRecomp @@ -208,6 +211,7 @@ data DynFlag | Opt_PrintBindResult | Opt_Haddock | Opt_Hpc_No_Auto + | Opt_BreakOnException -- keeping stuff | Opt_KeepHiDiffs @@ -365,7 +369,11 @@ data PackageFlag | IgnorePackage String deriving Eq -defaultHscTarget +defaultHscTarget = defaultObjectTarget + +-- | the 'HscTarget' value corresponding to the default way to create +-- object files on the current platform. +defaultObjectTarget | cGhcWithNativeCodeGen == "YES" = HscAsm | otherwise = HscC @@ -560,12 +568,16 @@ optLevelFlags :: [([Int], DynFlag)] optLevelFlags = [ ([0], Opt_IgnoreInterfacePragmas) , ([0], Opt_OmitInterfacePragmas) + , ([1,2], Opt_IgnoreAsserts) + , ([1,2], Opt_RewriteRules) -- Off for -O0; see Note [Scoping for Builtin rules] + -- in PrelRules , ([1,2], Opt_DoEtaReduction) , ([1,2], Opt_CaseMerge) , ([1,2], Opt_Strictness) , ([1,2], Opt_CSE) , ([1,2], Opt_FullLaziness) + , ([2], Opt_LiberateCase) , ([2], Opt_SpecConstr) @@ -584,7 +596,6 @@ standardWarnings Opt_WarnOverlappingPatterns, Opt_WarnMissingFields, Opt_WarnMissingMethods, - Opt_WarnMonomorphism, Opt_WarnDuplicateExports ] @@ -666,6 +677,7 @@ getCoreToDo dflags cse = dopt Opt_CSE dflags spec_constr = dopt Opt_SpecConstr dflags liberate_case = dopt Opt_LiberateCase dflags + && not opt_Hpc rule_check = ruleCheck dflags core_todo = @@ -826,6 +838,8 @@ dynamic_flags = [ , ( "F" , NoArg (setDynFlag Opt_Pp)) , ( "#include" , HasArg (addCmdlineHCInclude) ) , ( "v" , OptIntSuffix setVerbosity ) + , ( "short-ghci-banner", NoArg (setDynFlag Opt_ShortGhciBanner) ) + , ( "long-ghci-banner" , NoArg (unSetDynFlag Opt_ShortGhciBanner) ) ------- Specific phases -------------------------------------------- , ( "pgmL" , HasArg (upd . setPgmL) ) @@ -1016,6 +1030,7 @@ dynamic_flags = [ fFlags = [ ( "warn-duplicate-exports", Opt_WarnDuplicateExports ), ( "warn-hi-shadowing", Opt_WarnHiShadows ), + ( "warn-implicit-prelude", Opt_WarnImplicitPrelude ), ( "warn-incomplete-patterns", Opt_WarnIncompletePatterns ), ( "warn-incomplete-record-updates", Opt_WarnIncompletePatternsRecUpd ), ( "warn-missing-fields", Opt_WarnMissingFields ), @@ -1041,7 +1056,7 @@ fFlags = [ ( "scoped-type-variables", Opt_ScopedTypeVariables ), ( "bang-patterns", Opt_BangPatterns ), ( "overloaded-strings", Opt_OverloadedStrings ), - ( "indexed-types", Opt_IndexedTypes ), + ( "type-families", Opt_TypeFamilies ), ( "monomorphism-restriction", Opt_MonomorphismRestriction ), ( "mono-pat-binds", Opt_MonoPatBinds ), ( "extended-default-rules", Opt_ExtendedDefaultRules ), @@ -1068,7 +1083,9 @@ fFlags = [ ( "asm-mangling", Opt_DoAsmMangling ), ( "print-bind-result", Opt_PrintBindResult ), ( "force-recomp", Opt_ForceRecomp ), - ( "hpc-no-auto", Opt_Hpc_No_Auto ) + ( "hpc-no-auto", Opt_Hpc_No_Auto ), + ( "rewrite-rules", Opt_RewriteRules ), + ( "break-on-exception", Opt_BreakOnException ) ] @@ -1077,7 +1094,7 @@ glasgowExtsFlags = [ Opt_FFI, Opt_ImplicitParams, Opt_ScopedTypeVariables, - Opt_IndexedTypes ] + Opt_TypeFamilies ] isFFlag f = f `elem` (map fst fFlags) getFFlag f = fromJust (lookup f fFlags)