dynamic_flags :: [Flag DynP]
dynamic_flags = [
- Flag "n" (NoArg (setDynFlag Opt_DryRun))
- , Flag "cpp" (NoArg (setDynFlag Opt_Cpp))
- , Flag "F" (NoArg (setDynFlag Opt_Pp))
- , Flag "#include" (HasArg (addCmdlineHCInclude))
- , Flag "v" (OptIntSuffix setVerbosity)
+ Flag "n" (NoArg (setDynFlag Opt_DryRun)) Supported
+ , Flag "cpp" (NoArg (setDynFlag Opt_Cpp)) Supported
+ , Flag "F" (NoArg (setDynFlag Opt_Pp)) Supported
+ , Flag "#include" (HasArg (addCmdlineHCInclude)) Supported
+ , Flag "v" (OptIntSuffix setVerbosity) Supported
------- Specific phases --------------------------------------------
- , Flag "pgmL" (HasArg (upd . setPgmL))
- , Flag "pgmP" (HasArg (upd . setPgmP))
- , Flag "pgmF" (HasArg (upd . setPgmF))
- , Flag "pgmc" (HasArg (upd . setPgmc))
- , Flag "pgmm" (HasArg (upd . setPgmm))
- , Flag "pgms" (HasArg (upd . setPgms))
- , Flag "pgma" (HasArg (upd . setPgma))
- , Flag "pgml" (HasArg (upd . setPgml))
- , Flag "pgmdll" (HasArg (upd . setPgmdll))
- , Flag "pgmwindres" (HasArg (upd . setPgmwindres))
-
- , Flag "optL" (HasArg (upd . addOptL))
- , Flag "optP" (HasArg (upd . addOptP))
- , Flag "optF" (HasArg (upd . addOptF))
- , Flag "optc" (HasArg (upd . addOptc))
- , Flag "optm" (HasArg (upd . addOptm))
- , Flag "opta" (HasArg (upd . addOpta))
- , Flag "optl" (HasArg (upd . addOptl))
- , Flag "optdep" (HasArg (upd . addOptdep))
- , Flag "optwindres" (HasArg (upd . addOptwindres))
+ , Flag "pgmL" (HasArg (upd . setPgmL)) Supported
+ , Flag "pgmP" (HasArg (upd . setPgmP)) Supported
+ , Flag "pgmF" (HasArg (upd . setPgmF)) Supported
+ , Flag "pgmc" (HasArg (upd . setPgmc)) Supported
+ , Flag "pgmm" (HasArg (upd . setPgmm)) Supported
+ , Flag "pgms" (HasArg (upd . setPgms)) Supported
+ , Flag "pgma" (HasArg (upd . setPgma)) Supported
+ , Flag "pgml" (HasArg (upd . setPgml)) Supported
+ , Flag "pgmdll" (HasArg (upd . setPgmdll)) Supported
+ , Flag "pgmwindres" (HasArg (upd . setPgmwindres)) Supported
+
+ , Flag "optL" (HasArg (upd . addOptL)) Supported
+ , Flag "optP" (HasArg (upd . addOptP)) Supported
+ , Flag "optF" (HasArg (upd . addOptF)) Supported
+ , Flag "optc" (HasArg (upd . addOptc)) Supported
+ , Flag "optm" (HasArg (upd . addOptm)) Supported
+ , Flag "opta" (HasArg (upd . addOpta)) Supported
+ , Flag "optl" (HasArg (upd . addOptl)) Supported
+ , Flag "optdep" (HasArg (upd . addOptdep)) Supported
+ , Flag "optwindres" (HasArg (upd . addOptwindres)) Supported
, Flag "split-objs"
(NoArg (if can_split then setDynFlag Opt_SplitObjs else return ()))
+ Supported
-------- Linking ----------------------------------------------------
, Flag "c" (NoArg (upd $ \d -> d{ ghcLink=NoLink } ))
- , Flag "no-link" (NoArg (upd $ \d -> d{ ghcLink=NoLink } )) -- Dep.
+ Supported
+ , Flag "no-link" (NoArg (upd $ \d -> d{ ghcLink=NoLink } ))
+ (Deprecated "Use -c instead")
, Flag "shared" (NoArg (upd $ \d -> d{ ghcLink=LinkDynLib } ))
+ Supported
, Flag "dynload" (HasArg (upd . parseDynLibLoaderMode))
+ Supported
------- Libraries ---------------------------------------------------
- , Flag "L" (Prefix addLibraryPath )
- , Flag "l" (AnySuffix (\s -> do upd (addOptl s)))
+ , Flag "L" (Prefix addLibraryPath ) Supported
+ , Flag "l" (AnySuffix (\s -> do upd (addOptl s))) Supported
------- Frameworks --------------------------------------------------
-- -framework-path should really be -F ...
- , Flag "framework-path" (HasArg addFrameworkPath )
- , Flag "framework" (HasArg (upd . addCmdlineFramework))
+ , Flag "framework-path" (HasArg addFrameworkPath ) Supported
+ , Flag "framework" (HasArg (upd . addCmdlineFramework)) Supported
------- Output Redirection ------------------------------------------
- , Flag "odir" (HasArg (upd . setObjectDir))
- , Flag "o" (SepArg (upd . setOutputFile . Just))
- , Flag "ohi" (HasArg (upd . setOutputHi . Just ))
- , Flag "osuf" (HasArg (upd . setObjectSuf))
- , Flag "hcsuf" (HasArg (upd . setHcSuf))
- , Flag "hisuf" (HasArg (upd . setHiSuf))
- , Flag "hidir" (HasArg (upd . setHiDir))
- , Flag "tmpdir" (HasArg (upd . setTmpDir))
- , Flag "stubdir" (HasArg (upd . setStubDir))
+ , Flag "odir" (HasArg (upd . setObjectDir)) Supported
+ , Flag "o" (SepArg (upd . setOutputFile . Just)) Supported
+ , Flag "ohi" (HasArg (upd . setOutputHi . Just )) Supported
+ , Flag "osuf" (HasArg (upd . setObjectSuf)) Supported
+ , Flag "hcsuf" (HasArg (upd . setHcSuf)) Supported
+ , Flag "hisuf" (HasArg (upd . setHiSuf)) Supported
+ , Flag "hidir" (HasArg (upd . setHiDir)) Supported
+ , Flag "tmpdir" (HasArg (upd . setTmpDir)) Supported
+ , Flag "stubdir" (HasArg (upd . setStubDir)) Supported
, Flag "ddump-file-prefix" (HasArg (upd . setDumpPrefixForce . Just))
+ Supported
------- Keeping temporary files -------------------------------------
-- These can be singular (think ghc -c) or plural (think ghc --make)
- , Flag "keep-hc-file" (NoArg (setDynFlag Opt_KeepHcFiles))
- , Flag "keep-hc-files" (NoArg (setDynFlag Opt_KeepHcFiles))
- , Flag "keep-s-file" (NoArg (setDynFlag Opt_KeepSFiles))
- , Flag "keep-s-files" (NoArg (setDynFlag Opt_KeepSFiles))
- , Flag "keep-raw-s-file" (NoArg (setDynFlag Opt_KeepRawSFiles))
- , Flag "keep-raw-s-files" (NoArg (setDynFlag Opt_KeepRawSFiles))
+ , Flag "keep-hc-file" (NoArg (setDynFlag Opt_KeepHcFiles)) Supported
+ , Flag "keep-hc-files" (NoArg (setDynFlag Opt_KeepHcFiles)) Supported
+ , Flag "keep-s-file" (NoArg (setDynFlag Opt_KeepSFiles)) Supported
+ , Flag "keep-s-files" (NoArg (setDynFlag Opt_KeepSFiles)) Supported
+ , Flag "keep-raw-s-file" (NoArg (setDynFlag Opt_KeepRawSFiles)) Supported
+ , Flag "keep-raw-s-files" (NoArg (setDynFlag Opt_KeepRawSFiles)) Supported
-- This only makes sense as plural
- , Flag "keep-tmp-files" (NoArg (setDynFlag Opt_KeepTmpFiles))
+ , Flag "keep-tmp-files" (NoArg (setDynFlag Opt_KeepTmpFiles)) Supported
------- Miscellaneous ----------------------------------------------
- , Flag "no-hs-main" (NoArg (setDynFlag Opt_NoHsMain))
- , Flag "main-is" (SepArg setMainIs )
- , Flag "haddock" (NoArg (setDynFlag Opt_Haddock))
- , Flag "haddock-opts" (HasArg (upd . addHaddockOpts))
- , Flag "hpcdir" (SepArg setOptHpcDir)
+ , Flag "no-hs-main" (NoArg (setDynFlag Opt_NoHsMain)) Supported
+ , Flag "main-is" (SepArg setMainIs ) Supported
+ , Flag "haddock" (NoArg (setDynFlag Opt_Haddock)) Supported
+ , Flag "haddock-opts" (HasArg (upd . addHaddockOpts)) Supported
+ , Flag "hpcdir" (SepArg setOptHpcDir) Supported
- ------- recompilation checker (DEPRECATED, use -fforce-recomp) -----
+ ------- recompilation checker --------------------------------------
, Flag "recomp" (NoArg (unSetDynFlag Opt_ForceRecomp))
+ (Deprecated "Use -fforce-recomp instead")
, Flag "no-recomp" (NoArg (setDynFlag Opt_ForceRecomp))
+ (Deprecated "Use -fno-force-recomp instead")
------- Packages ----------------------------------------------------
- , Flag "package-conf" (HasArg extraPkgConf_)
+ , Flag "package-conf" (HasArg extraPkgConf_) Supported
, Flag "no-user-package-conf" (NoArg (unSetDynFlag Opt_ReadUserPackageConf))
- , Flag "package-name" (HasArg (upd . setPackageName))
- , Flag "package" (HasArg exposePackage)
- , Flag "hide-package" (HasArg hidePackage)
+ Supported
+ , Flag "package-name" (HasArg (upd . setPackageName)) Supported
+ , Flag "package" (HasArg exposePackage) Supported
+ , Flag "hide-package" (HasArg hidePackage) Supported
, Flag "hide-all-packages" (NoArg (setDynFlag Opt_HideAllPackages))
+ Supported
, Flag "ignore-package" (HasArg ignorePackage)
- , Flag "syslib" (HasArg exposePackage) -- for compatibility
+ Supported
+ , Flag "syslib" (HasArg exposePackage)
+ (Deprecated "Use -package instead")
------ HsCpp opts ---------------------------------------------------
- , Flag "D" (AnySuffix (upd . addOptP))
- , Flag "U" (AnySuffix (upd . addOptP))
+ , Flag "D" (AnySuffix (upd . addOptP)) Supported
+ , Flag "U" (AnySuffix (upd . addOptP)) Supported
------- Include/Import Paths ----------------------------------------
- , Flag "I" (Prefix addIncludePath)
- , Flag "i" (OptPrefix addImportPath )
+ , Flag "I" (Prefix addIncludePath) Supported
+ , Flag "i" (OptPrefix addImportPath ) Supported
------ Debugging ----------------------------------------------------
- , Flag "dstg-stats" (NoArg (setDynFlag Opt_StgStats))
+ , Flag "dstg-stats" (NoArg (setDynFlag Opt_StgStats)) Supported
, Flag "ddump-cmm" (setDumpFlag Opt_D_dump_cmm)
+ Supported
, Flag "ddump-cmmz" (setDumpFlag Opt_D_dump_cmmz)
+ Supported
, Flag "ddump-cmmz-pretty" (setDumpFlag Opt_D_dump_cmmz_pretty)
+ Supported
, Flag "ddump-cps-cmm" (setDumpFlag Opt_D_dump_cps_cmm)
+ Supported
, Flag "ddump-cvt-cmm" (setDumpFlag Opt_D_dump_cvt_cmm)
+ Supported
, Flag "ddump-asm" (setDumpFlag Opt_D_dump_asm)
+ Supported
, Flag "ddump-asm-native" (setDumpFlag Opt_D_dump_asm_native)
+ Supported
, Flag "ddump-asm-liveness" (setDumpFlag Opt_D_dump_asm_liveness)
+ Supported
, Flag "ddump-asm-coalesce" (setDumpFlag Opt_D_dump_asm_coalesce)
+ Supported
, Flag "ddump-asm-regalloc" (setDumpFlag Opt_D_dump_asm_regalloc)
+ Supported
, Flag "ddump-asm-conflicts" (setDumpFlag Opt_D_dump_asm_conflicts)
+ Supported
, Flag "ddump-asm-regalloc-stages"
(setDumpFlag Opt_D_dump_asm_regalloc_stages)
+ Supported
, Flag "ddump-asm-stats" (setDumpFlag Opt_D_dump_asm_stats)
+ Supported
, Flag "ddump-cpranal" (setDumpFlag Opt_D_dump_cpranal)
+ Supported
, Flag "ddump-deriv" (setDumpFlag Opt_D_dump_deriv)
+ Supported
, Flag "ddump-ds" (setDumpFlag Opt_D_dump_ds)
+ Supported
, Flag "ddump-flatC" (setDumpFlag Opt_D_dump_flatC)
+ Supported
, Flag "ddump-foreign" (setDumpFlag Opt_D_dump_foreign)
+ Supported
, Flag "ddump-inlinings" (setDumpFlag Opt_D_dump_inlinings)
+ Supported
, Flag "ddump-rule-firings" (setDumpFlag Opt_D_dump_rule_firings)
+ Supported
, Flag "ddump-occur-anal" (setDumpFlag Opt_D_dump_occur_anal)
+ Supported
, Flag "ddump-parsed" (setDumpFlag Opt_D_dump_parsed)
+ Supported
, Flag "ddump-rn" (setDumpFlag Opt_D_dump_rn)
+ Supported
, Flag "ddump-simpl" (setDumpFlag Opt_D_dump_simpl)
+ Supported
, Flag "ddump-simpl-iterations" (setDumpFlag Opt_D_dump_simpl_iterations)
+ Supported
, Flag "ddump-simpl-phases" (OptPrefix setDumpSimplPhases)
+ Supported
, Flag "ddump-spec" (setDumpFlag Opt_D_dump_spec)
+ Supported
, Flag "ddump-prep" (setDumpFlag Opt_D_dump_prep)
+ Supported
, Flag "ddump-stg" (setDumpFlag Opt_D_dump_stg)
+ Supported
, Flag "ddump-stranal" (setDumpFlag Opt_D_dump_stranal)
+ Supported
, Flag "ddump-tc" (setDumpFlag Opt_D_dump_tc)
+ Supported
, Flag "ddump-types" (setDumpFlag Opt_D_dump_types)
+ Supported
, Flag "ddump-rules" (setDumpFlag Opt_D_dump_rules)
+ Supported
, Flag "ddump-cse" (setDumpFlag Opt_D_dump_cse)
+ Supported
, Flag "ddump-worker-wrapper" (setDumpFlag Opt_D_dump_worker_wrapper)
+ Supported
, Flag "ddump-rn-trace" (setDumpFlag Opt_D_dump_rn_trace)
+ Supported
, Flag "ddump-if-trace" (setDumpFlag Opt_D_dump_if_trace)
+ Supported
, Flag "ddump-tc-trace" (setDumpFlag Opt_D_dump_tc_trace)
+ Supported
, Flag "ddump-splices" (setDumpFlag Opt_D_dump_splices)
+ Supported
, Flag "ddump-rn-stats" (setDumpFlag Opt_D_dump_rn_stats)
+ Supported
, Flag "ddump-opt-cmm" (setDumpFlag Opt_D_dump_opt_cmm)
+ Supported
, Flag "ddump-simpl-stats" (setDumpFlag Opt_D_dump_simpl_stats)
+ Supported
, Flag "ddump-bcos" (setDumpFlag Opt_D_dump_BCOs)
+ Supported
, Flag "dsource-stats" (setDumpFlag Opt_D_source_stats)
+ Supported
, Flag "dverbose-core2core" (NoArg setVerboseCore2Core)
+ Supported
, Flag "dverbose-stg2stg" (setDumpFlag Opt_D_verbose_stg2stg)
+ Supported
, Flag "ddump-hi" (setDumpFlag Opt_D_dump_hi)
+ Supported
, Flag "ddump-minimal-imports" (setDumpFlag Opt_D_dump_minimal_imports)
+ Supported
, Flag "ddump-vect" (setDumpFlag Opt_D_dump_vect)
+ Supported
, Flag "ddump-hpc" (setDumpFlag Opt_D_dump_hpc)
+ Supported
, Flag "ddump-mod-cycles" (setDumpFlag Opt_D_dump_mod_cycles)
+ Supported
, Flag "ddump-view-pattern-commoning" (setDumpFlag Opt_D_dump_view_pattern_commoning)
+ Supported
, Flag "ddump-to-file" (setDumpFlag Opt_DumpToFile)
+ Supported
, Flag "ddump-hi-diffs" (setDumpFlag Opt_D_dump_hi_diffs)
+ Supported
, Flag "dcore-lint" (NoArg (setDynFlag Opt_DoCoreLinting))
+ Supported
, Flag "dstg-lint" (NoArg (setDynFlag Opt_DoStgLinting))
+ Supported
, Flag "dcmm-lint" (NoArg (setDynFlag Opt_DoCmmLinting))
+ Supported
, Flag "dasm-lint" (NoArg (setDynFlag Opt_DoAsmLinting))
+ Supported
, Flag "dshow-passes"
(NoArg (do setDynFlag Opt_ForceRecomp
setVerbosity (Just 2)))
+ Supported
, Flag "dfaststring-stats" (NoArg (setDynFlag Opt_D_faststring_stats))
+ Supported
------ Machine dependant (-m<blah>) stuff ---------------------------
, Flag "monly-2-regs" (NoArg (upd (\s -> s{stolen_x86_regs = 2}) ))
+ Supported
, Flag "monly-3-regs" (NoArg (upd (\s -> s{stolen_x86_regs = 3}) ))
+ Supported
, Flag "monly-4-regs" (NoArg (upd (\s -> s{stolen_x86_regs = 4}) ))
+ Supported
------ Warning opts -------------------------------------------------
, Flag "W" (NoArg (mapM_ setDynFlag minusWOpts))
+ Supported
, Flag "Werror" (NoArg (setDynFlag Opt_WarnIsError))
+ Supported
, Flag "Wwarn" (NoArg (unSetDynFlag Opt_WarnIsError))
+ Supported
, Flag "Wall" (NoArg (mapM_ setDynFlag minusWallOpts))
- , Flag "Wnot" (NoArg (mapM_ unSetDynFlag minusWallOpts)) -- DEPRECATED
+ Supported
+ , Flag "Wnot" (NoArg (mapM_ unSetDynFlag minusWallOpts))
+ (Deprecated "Use -w instead")
, Flag "w" (NoArg (mapM_ unSetDynFlag minuswRemovesOpts))
+ Supported
------ Optimisation flags ------------------------------------------
- , Flag "O" (NoArg (upd (setOptLevel 1)))
- , Flag "Onot" (NoArg (upd (setOptLevel 0))) -- deprecated
- , Flag "Odph" (NoArg (upd setDPHOpt))
+ , Flag "O" (NoArg (upd (setOptLevel 1))) Supported
+ , Flag "Onot" (NoArg (upd (setOptLevel 0)))
+ (Deprecated "Use -O0 instead")
+ , Flag "Odph" (NoArg (upd setDPHOpt)) Supported
, Flag "O" (OptIntSuffix (\mb_n -> upd (setOptLevel (mb_n `orElse` 1))))
+ Supported
-- If the number is missing, use 1
, Flag "fsimplifier-phases"
(IntSuffix (\n -> upd (\dfs -> dfs{ simplPhases = n })))
+ Supported
, Flag "fmax-simplifier-iterations"
(IntSuffix (\n -> upd (\dfs -> dfs{ maxSimplIterations = n })))
+ Supported
, Flag "fspec-constr-threshold"
(IntSuffix (\n -> upd (\dfs -> dfs{ specConstrThreshold = Just n })))
+ Supported
, Flag "fno-spec-constr-threshold"
(NoArg (upd (\dfs -> dfs{ specConstrThreshold = Nothing })))
+ Supported
, Flag "fspec-constr-count"
(IntSuffix (\n -> upd (\dfs -> dfs{ specConstrCount = Just n })))
+ Supported
, Flag "fno-spec-constr-count"
(NoArg (upd (\dfs -> dfs{ specConstrCount = Nothing })))
+ Supported
, Flag "fliberate-case-threshold"
(IntSuffix (\n -> upd (\dfs -> dfs{ liberateCaseThreshold = Just n })))
+ Supported
, Flag "fno-liberate-case-threshold"
(NoArg (upd (\dfs -> dfs{ liberateCaseThreshold = Nothing })))
+ Supported
, Flag "frule-check"
(SepArg (\s -> upd (\dfs -> dfs{ ruleCheck = Just s })))
+ Supported
, Flag "fcontext-stack"
(IntSuffix $ \n -> upd $ \dfs -> dfs{ ctxtStkDepth = n })
+ Supported
------ Compiler flags -----------------------------------------------
- , Flag "fasm" (NoArg (setObjTarget HscAsm))
- , Flag "fvia-c" (NoArg (setObjTarget HscC))
- , Flag "fvia-C" (NoArg (setObjTarget HscC))
+ , Flag "fasm" (NoArg (setObjTarget HscAsm)) Supported
+ , Flag "fvia-c" (NoArg (setObjTarget HscC)) Supported
+ , Flag "fvia-C" (NoArg (setObjTarget HscC)) Supported
- , Flag "fno-code" (NoArg (setTarget HscNothing))
- , Flag "fbyte-code" (NoArg (setTarget HscInterpreted))
- , Flag "fobject-code" (NoArg (setTarget defaultHscTarget))
+ , Flag "fno-code" (NoArg (setTarget HscNothing)) Supported
+ , Flag "fbyte-code" (NoArg (setTarget HscInterpreted)) Supported
+ , Flag "fobject-code" (NoArg (setTarget defaultHscTarget)) Supported
, Flag "fglasgow-exts" (NoArg (mapM_ setDynFlag glasgowExtsFlags))
+ Supported
, Flag "fno-glasgow-exts" (NoArg (mapM_ unSetDynFlag glasgowExtsFlags))
+ Supported
+
+ -- XXX We need to flatten these:
-- the rest of the -f* and -fno-* flags
, Flag "f"
(PrefixPred (isFlag fFlags)
(\f -> setDynFlag (getFlag fFlags f)))
+ Supported
, Flag "f"
(PrefixPred (isPrefFlag "no-" fFlags)
(\f -> unSetDynFlag (getPrefFlag "no-" fFlags f)))
+ Supported
-- the -X* and -XNo* flags
, Flag "X"
(PrefixPred (isFlag xFlags)
(\f -> setDynFlag (getFlag xFlags f)))
+ Supported
, Flag "X"
(PrefixPred (isPrefFlag "No" xFlags)
(\f -> unSetDynFlag (getPrefFlag "No" xFlags f)))
+ Supported
]
-- these -f<blah> flags can all be reversed with -fno-<blah>
-- -----------------------------------------------------------------------------
-- Parsing the dynamic flags.
-parseDynamicFlags :: DynFlags -> [String] -> IO (DynFlags,[String])
+parseDynamicFlags :: DynFlags -> [String] -> IO (DynFlags, [String], [String])
parseDynamicFlags dflags args = do
- let ((leftover,errs),dflags')
+ let ((leftover, errs, warns), dflags')
= runCmdLine (processArgs dynamic_flags args) dflags
when (not (null errs)) $ do
throwDyn (UsageError (unlines errs))
- return (dflags', leftover)
-
+ return (dflags', leftover, warns)
type DynP = CmdLineP DynFlags
-----------------------------------------------------------------------------
-- Static flags
-parseStaticFlags :: [String] -> IO [String]
+parseStaticFlags :: [String] -> IO ([String], [String])
parseStaticFlags args = do
ready <- readIORef v_opt_C_ready
when ready $ throwDyn (ProgramError "Too late for parseStaticFlags: call it before newSession")
- (leftover, errs) <- processArgs static_flags args
+ (leftover, errs, warns1) <- processArgs static_flags args
when (not (null errs)) $ throwDyn (UsageError (unlines errs))
-- deal with the way flags: the way (eg. prof) gives rise to
let unreg_flags | cGhcUnregisterised == "YES" = unregFlags
| otherwise = []
- (more_leftover, errs) <- processArgs static_flags (unreg_flags ++ way_flags)
+ (more_leftover, errs, warns2) <- processArgs static_flags (unreg_flags ++ way_flags)
-- see sanity code in staticOpts
writeIORef v_opt_C_ready True
| otherwise = []
when (not (null errs)) $ ghcError (UsageError (unlines errs))
- return (excess_prec++cg_flags++more_leftover++leftover)
+ return (excess_prec ++ cg_flags ++ more_leftover ++ leftover,
+ warns1 ++ warns2)
initStaticOpts :: IO ()
initStaticOpts = writeIORef v_opt_C_ready True
static_flags = [
------- GHCi -------------------------------------------------------
- Flag "ignore-dot-ghci" (PassFlag addOpt)
- , Flag "read-dot-ghci" (NoArg (removeOpt "-ignore-dot-ghci"))
+ Flag "ignore-dot-ghci" (PassFlag addOpt) Supported
+ , Flag "read-dot-ghci" (NoArg (removeOpt "-ignore-dot-ghci")) Supported
------- ways --------------------------------------------------------
- , Flag "prof" (NoArg (addWay WayProf))
- , Flag "ticky" (NoArg (addWay WayTicky))
- , Flag "parallel" (NoArg (addWay WayPar))
- , Flag "gransim" (NoArg (addWay WayGran))
- , Flag "smp" (NoArg (addWay WayThreaded)) -- backwards compat.
- , Flag "debug" (NoArg (addWay WayDebug))
- , Flag "ndp" (NoArg (addWay WayNDP))
- , Flag "threaded" (NoArg (addWay WayThreaded))
+ , Flag "prof" (NoArg (addWay WayProf)) Supported
+ , Flag "ticky" (NoArg (addWay WayTicky)) Supported
+ , Flag "parallel" (NoArg (addWay WayPar)) Supported
+ , Flag "gransim" (NoArg (addWay WayGran)) Supported
+ , Flag "smp" (NoArg (addWay WayThreaded))
+ (Deprecated "Use -threaded instead")
+ , Flag "debug" (NoArg (addWay WayDebug)) Supported
+ , Flag "ndp" (NoArg (addWay WayNDP)) Supported
+ , Flag "threaded" (NoArg (addWay WayThreaded)) Supported
-- ToDo: user ways
------ Debugging ----------------------------------------------------
- , Flag "dppr-debug" (PassFlag addOpt)
- , Flag "dsuppress-uniques" (PassFlag addOpt)
- , Flag "dppr-user-length" (AnySuffix addOpt)
- , Flag "dopt-fuel" (AnySuffix addOpt)
- , Flag "dno-debug-output" (PassFlag addOpt)
+ , Flag "dppr-debug" (PassFlag addOpt) Supported
+ , Flag "dsuppress-uniques" (PassFlag addOpt) Supported
+ , Flag "dppr-user-length" (AnySuffix addOpt) Supported
+ , Flag "dopt-fuel" (AnySuffix addOpt) Supported
+ , Flag "dno-debug-output" (PassFlag addOpt) Supported
-- rest of the debugging flags are dynamic
--------- Profiling --------------------------------------------------
, Flag "auto-all" (NoArg (addOpt "-fauto-sccs-on-all-toplevs"))
+ Supported
, Flag "auto" (NoArg (addOpt "-fauto-sccs-on-exported-toplevs"))
+ Supported
, Flag "caf-all" (NoArg (addOpt "-fauto-sccs-on-individual-cafs"))
+ Supported
-- "ignore-sccs" doesn't work (ToDo)
, Flag "no-auto-all" (NoArg (removeOpt "-fauto-sccs-on-all-toplevs"))
+ Supported
, Flag "no-auto" (NoArg (removeOpt "-fauto-sccs-on-exported-toplevs"))
+ Supported
, Flag "no-caf-all" (NoArg (removeOpt "-fauto-sccs-on-individual-cafs"))
+ Supported
----- Linker --------------------------------------------------------
- , Flag "static" (PassFlag addOpt)
- , Flag "dynamic" (NoArg (removeOpt "-static"))
- , Flag "rdynamic" (NoArg (return ())) -- ignored for compat w/ gcc
+ , Flag "static" (PassFlag addOpt) Supported
+ , Flag "dynamic" (NoArg (removeOpt "-static")) Supported
+ -- ignored for compat w/ gcc:
+ , Flag "rdynamic" (NoArg (return ())) Supported
----- RTS opts ------------------------------------------------------
, Flag "H" (HasArg (setHeapSize . fromIntegral . decodeSize))
- , Flag "Rghc-timing" (NoArg (enableTimingStats))
+ Supported
+ , Flag "Rghc-timing" (NoArg (enableTimingStats)) Supported
------ Compiler flags -----------------------------------------------
-- All other "-fno-<blah>" options cancel out "-f<blah>" on the hsc cmdline
, Flag "fno-"
(PrefixPred (\s -> isStaticFlag ("f"++s)) (\s -> removeOpt ("-f"++s)))
+ Supported
-- Pass all remaining "-f<blah>" options to hsc
, Flag "f" (AnySuffixPred (isStaticFlag) addOpt)
+ Supported
]
addOpt :: String -> IO ()