GHC.RTS.Flags

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