+{-# OPTIONS -w #-}
+-- The above warning supression flag is a temporary kludge.
+-- While working on this module you are encouraged to remove it and fix
+-- any warnings in the module. See
+-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
+-- for details
+
-----------------------------------------------------------------------------
--
-- Static flags
-- Output style options
opt_PprUserLength,
+ opt_SuppressUniques,
opt_PprStyle_Debug,
-- profiling opts
opt_UF_UseThreshold,
opt_UF_FunAppDiscount,
opt_UF_KeenessFactor,
- opt_UF_UpdateInPlace,
opt_UF_DearOp,
-- Related to linking
------- ways --------------------------------------------------------
, ( "prof" , NoArg (addWay WayProf) )
- , ( "unreg" , NoArg (addWay WayUnreg) )
, ( "ticky" , NoArg (addWay WayTicky) )
, ( "parallel" , NoArg (addWay WayPar) )
, ( "gransim" , NoArg (addWay WayGran) )
-- ToDo: user ways
------ Debugging ----------------------------------------------------
- , ( "dppr-debug", PassFlag addOpt )
- , ( "dppr-user-length", AnySuffix addOpt )
+ , ( "dppr-debug", PassFlag addOpt )
+ , ( "dsuppress-uniques", PassFlag addOpt )
+ , ( "dppr-user-length", AnySuffix addOpt )
-- rest of the debugging flags are dynamic
--------- Profiling --------------------------------------------------
staticFlags = unsafePerformIO $ do
ready <- readIORef v_opt_C_ready
if (not ready)
- then panic "a static opt was looked at too early!"
+ then panic "Static flags have not been initialised!\n Please call GHC.newSession or GHC.parseStaticFlags early enough."
else readIORef v_opt_C
-- -static is the default
opt_IgnoreDotGhci = lookUp FSLIT("-ignore-dot-ghci")
-- debugging opts
+opt_SuppressUniques = lookUp FSLIT("-dsuppress-uniques")
opt_PprStyle_Debug = lookUp FSLIT("-dppr-debug")
opt_PprUserLength = lookup_def_int "-dppr-user-length" 5 --ToDo: give this a name
opt_UF_UseThreshold = lookup_def_int "-funfolding-use-threshold" (8::Int) -- Discounts can be big
opt_UF_FunAppDiscount = lookup_def_int "-funfolding-fun-discount" (6::Int) -- It's great to inline a fn
opt_UF_KeenessFactor = lookup_def_float "-funfolding-keeness-factor" (1.5::Float)
-opt_UF_UpdateInPlace = lookUp FSLIT("-funfolding-update-in-place")
opt_UF_DearOp = ( 4 :: Int)
"fruntime-types",
"fno-pre-inlining",
"fexcess-precision",
- "funfolding-update-in-place",
"static",
"fhardwire-lib-paths",
"funregisterised",
| c == "G" || c == "g" = truncate (n * 1000 * 1000 * 1000)
| otherwise = throwDyn (CmdLineError ("can't decode size: " ++ str))
where (m, c) = span pred str
- n = read m :: Double
+ n = readRational m
pred c = isDigit c || c == '.'
= WayThreaded
| WayDebug
| WayProf
- | WayUnreg
| WayTicky
| WayPar
| WayGran
_ `allowedWith` WayDebug = True
WayDebug `allowedWith` _ = True
- WayProf `allowedWith` WayUnreg = True
WayProf `allowedWith` WayNDP = True
_ `allowedWith` _ = False
[ "-DTICKY_TICKY"
, "-optc-DTICKY_TICKY" ]),
- (WayUnreg, Way "u" False "Unregisterised"
- unregFlags ),
-
-- optl's below to tell linker where to find the PVM library -- HWL
(WayPar, Way "mp" False "Parallel"
[ "-fparallel"