base-4.8.2.0: Basic libraries

Safe Haskell | None
Language | Haskell2010

GHC.RTS.Flags

Description

Accessors to GHC RTS flags. Descriptions of flags can be seen in GHC User's Guide, or by running RTS help message using `+RTS --help`.

Since: 4.8.0.0

Synopsis

- type RtsTime = Word64
- type RtsNat = Word32
- data RTSFlags = RTSFlags {
  - gcFlags :: GCFlags
  - concurrentFlags :: ConcFlags
  - miscFlags :: MiscFlags
  - debugFlags :: DebugFlags
  - costCentreFlags :: CCFlags
  - profilingFlags :: ProfFlags
  - traceFlags :: TraceFlags
  - tickyFlags :: TickyFlags
  }
- data GiveGCStats
  - = NoGCStats
  - | CollectGCStats
  - | OneLineGCStats
  - | SummaryGCStats
  - | VerboseGCStats
- data GCFlags = GCFlags {
  - statsFile :: Maybe FilePath
  - giveStats :: GiveGCStats
  - maxStkSize :: RtsNat
  - initialStkSize :: RtsNat
  - stkChunkSize :: RtsNat
  - stkChunkBufferSize :: RtsNat
  - maxHeapSize :: RtsNat
  - minAllocAreaSize :: RtsNat
  - minOldGenSize :: RtsNat
  - heapSizeSuggestion :: RtsNat
  - heapSizeSuggestionAuto :: Bool
  - oldGenFactor :: Double
  - pcFreeHeap :: Double
  - generations :: RtsNat
  - steps :: RtsNat
  - squeezeUpdFrames :: Bool
  - compact :: Bool
  - compactThreshold :: Double
  - sweep :: Bool
  - ringBell :: Bool
  - frontpanel :: Bool
  - idleGCDelayTime :: RtsTime
  - doIdleGC :: Bool
  - heapBase :: Word
  - allocLimitGrace :: Word
  }
- data ConcFlags = ConcFlags {
  - ctxtSwitchTime :: RtsTime
  - ctxtSwitchTicks :: Int
  }
- data MiscFlags = MiscFlags {
  - tickInterval :: RtsTime
  - installSignalHandlers :: Bool
  - machineReadable :: Bool
  - linkerMemBase :: Word
  }
- data DebugFlags = DebugFlags {
  - scheduler :: Bool
  - interpreter :: Bool
  - weak :: Bool
  - gccafs :: Bool
  - gc :: Bool
  - block_alloc :: Bool
  - sanity :: Bool
  - stable :: Bool
  - prof :: Bool
  - linker :: Bool
  - apply :: Bool
  - stm :: Bool
  - squeeze :: Bool
  - hpc :: Bool
  - sparks :: Bool
  }
- data DoCostCentres
  - = CostCentresNone
  - | CostCentresSummary
  - | CostCentresVerbose
  - | CostCentresAll
  - | CostCentresXML
- data CCFlags = CCFlags {
  - doCostCentres :: DoCostCentres
  - profilerTicks :: Int
  - msecsPerTick :: Int
  }
- data DoHeapProfile
  - = NoHeapProfiling
  - | HeapByCCS
  - | HeapByMod
  - | HeapByDescr
  - | HeapByType
  - | HeapByRetainer
  - | HeapByLDV
  - | HeapByClosureType
- data ProfFlags = ProfFlags {
  - doHeapProfile :: DoHeapProfile
  - heapProfileInterval :: RtsTime
  - heapProfileIntervalTicks :: Word
  - includeTSOs :: Bool
  - showCCSOnException :: Bool
  - maxRetainerSetSize :: Word
  - ccsLength :: Word
  - modSelector :: Maybe String
  - descrSelector :: Maybe String
  - typeSelector :: Maybe String
  - ccSelector :: Maybe String
  - ccsSelector :: Maybe String
  - retainerSelector :: Maybe String
  - bioSelector :: Maybe String
  }
- data DoTrace
  - = TraceNone
  - | TraceEventLog
  - | TraceStderr
- data TraceFlags = TraceFlags {
  - tracing :: DoTrace
  - timestamp :: Bool
  - traceScheduler :: Bool
  - traceGc :: Bool
  - sparksSampled :: Bool
  - sparksFull :: Bool
  - user :: Bool
  }
- data TickyFlags = TickyFlags {
  - showTickyStats :: Bool
  - tickyFile :: Maybe FilePath
  }
- getRTSFlags :: IO RTSFlags
- getGCFlags :: IO GCFlags
- getConcFlags :: IO ConcFlags
- getMiscFlags :: IO MiscFlags
- getDebugFlags :: IO DebugFlags
- getCCFlags :: IO CCFlags
- getProfFlags :: IO ProfFlags
- getTraceFlags :: IO TraceFlags
- getTickyFlags :: IO TickyFlags

# Documentation

type RtsTime = Word64

``Time`` is defined as a ``StgWord64`` in `stg/Types.h`

Since: 4.8.2.0

type RtsNat = Word32

``nat`` defined in `rts/Types.h`

Since: 4.8.2.0

data RTSFlags

Parameters of the runtime system

Since: 4.8.0.0

Constructors

RTSFlags |

Fields

gcFlags :: GCFlags
concurrentFlags :: ConcFlags
miscFlags :: MiscFlags
debugFlags :: DebugFlags
costCentreFlags :: CCFlags
profilingFlags :: ProfFlags
traceFlags :: TraceFlags
tickyFlags :: TickyFlags

Instances

Show RTSFlags |

data GiveGCStats

Should we produce a summary of the garbage collector statistics after the program has exited?

Since: 4.8.2.0

Constructors

NoGCStats |
CollectGCStats |
OneLineGCStats |
SummaryGCStats |
VerboseGCStats |

Instances

Enum GiveGCStats |
Show GiveGCStats |

data GCFlags

Parameters of the garbage collector.

Since: 4.8.0.0

Constructors

GCFlags |

Fields

statsFile :: Maybe FilePath
giveStats :: GiveGCStats
maxStkSize :: RtsNat
initialStkSize :: RtsNat
stkChunkSize :: RtsNat
stkChunkBufferSize :: RtsNat
maxHeapSize :: RtsNat
minAllocAreaSize :: RtsNat
minOldGenSize :: RtsNat
heapSizeSuggestion :: RtsNat
heapSizeSuggestionAuto :: Bool
oldGenFactor :: Double
pcFreeHeap :: Double
generations :: RtsNat
steps :: RtsNat
squeezeUpdFrames :: Bool
compact :: Bool

  True = "compact all the time"

compactThreshold :: Double
sweep :: Bool

  use "mostly mark-sweep" instead of copying for the oldest generation

ringBell :: Bool
frontpanel :: Bool
idleGCDelayTime :: RtsTime
doIdleGC :: Bool
heapBase :: Word

  address to ask the OS for memory

allocLimitGrace :: Word

Instances

Show GCFlags |

data ConcFlags

Parameters concerning context switching

Since: 4.8.0.0

Constructors

ConcFlags |

Fields

ctxtSwitchTime :: RtsTime
ctxtSwitchTicks :: Int

Instances

Show ConcFlags |

data MiscFlags

Miscellaneous parameters

Since: 4.8.0.0

Constructors

MiscFlags |

Fields

tickInterval :: RtsTime
installSignalHandlers :: Bool
machineReadable :: Bool
linkerMemBase :: Word

  address to ask the OS for memory for the linker, 0 ==> off

Instances

Show MiscFlags |

data DebugFlags

Flags to control debugging output & extra checking in various subsystems.

Since: 4.8.0.0

Constructors

DebugFlags |

Fields

scheduler :: Bool

  `s`

interpreter :: Bool

  `i`

weak :: Bool

  `w`

gccafs :: Bool

  `G`

gc :: Bool

  `g`

block_alloc :: Bool

  `b`

sanity :: Bool

  `S`

stable :: Bool

  `t`

prof :: Bool

  `p`

linker :: Bool

  `l` the object linker

apply :: Bool

  `a`

stm :: Bool

  `m`

squeeze :: Bool

  `z` stack squeezing & lazy blackholing

hpc :: Bool

  `c` coverage

sparks :: Bool

  `r`

Instances

Show DebugFlags |

data DoCostCentres

Should the RTS produce a cost-center summary?

Since: 4.8.2.0

Constructors

CostCentresNone |
CostCentresSummary |
CostCentresVerbose |
CostCentresAll |
CostCentresXML |

Instances

Enum DoCostCentres |
Show DoCostCentres |

data CCFlags

Parameters pertaining to the cost-center profiler.

Since: 4.8.0.0

Constructors

CCFlags |

Fields

doCostCentres :: DoCostCentres
profilerTicks :: Int
msecsPerTick :: Int

Instances

Show CCFlags |

data DoHeapProfile

What sort of heap profile are we collecting?

Since: 4.8.2.0

Constructors

NoHeapProfiling |
HeapByCCS |
HeapByMod |
HeapByDescr |
HeapByType |
HeapByRetainer |
HeapByLDV |
HeapByClosureType |

Instances

Enum DoHeapProfile |
Show DoHeapProfile |

data ProfFlags

Parameters of the cost-center profiler

Since: 4.8.0.0

Constructors

ProfFlags |

Fields

doHeapProfile :: DoHeapProfile
heapProfileInterval :: RtsTime

  time between samples

heapProfileIntervalTicks :: Word

  ticks between samples (derived)

includeTSOs :: Bool
showCCSOnException :: Bool
maxRetainerSetSize :: Word
ccsLength :: Word
modSelector :: Maybe String
descrSelector :: Maybe String
typeSelector :: Maybe String
ccSelector :: Maybe String
ccsSelector :: Maybe String
retainerSelector :: Maybe String
bioSelector :: Maybe String

Instances

Show ProfFlags |

data DoTrace

Is event tracing enabled?

Since: 4.8.2.0

Constructors

TraceNone | no tracing
TraceEventLog | send tracing events to the event log
TraceStderr | send tracing events to `stderr`

Instances

Enum DoTrace |
Show DoTrace |

data TraceFlags

Parameters pertaining to event tracing

Since: 4.8.0.0

Constructors

TraceFlags |

Fields

tracing :: DoTrace
timestamp :: Bool

  show timestamp in stderr output

traceScheduler :: Bool

  trace scheduler events

traceGc :: Bool

  trace GC events

sparksSampled :: Bool

  trace spark events by a sampled method

sparksFull :: Bool

  trace spark events 100% accurately

user :: Bool

  trace user events (emitted from Haskell code)

Instances

Show TraceFlags |

data TickyFlags

Parameters pertaining to ticky-ticky profiler

Since: 4.8.0.0

Constructors

TickyFlags |

Fields

showTickyStats :: Bool
tickyFile :: Maybe FilePath

Instances

Show TickyFlags |

getRTSFlags :: IO RTSFlags

getGCFlags :: IO GCFlags

getConcFlags :: IO ConcFlags

getMiscFlags :: IO MiscFlags

getDebugFlags :: IO DebugFlags

getCCFlags :: IO CCFlags

getProfFlags :: IO ProfFlags

getTraceFlags :: IO TraceFlags

getTickyFlags :: IO TickyFlags