GHC.Exts.Heap.ClosureTypes

ghc-heap-9.0.0.20201227: Functions for walking GHC's heap

Safe Haskell | Safe-Inferred
Language | Haskell2010

GHC.Exts.Heap.ClosureTypes

Synopsis

- data ClosureType
  - = INVALID_OBJECT
  - | CONSTR
  - | CONSTR_1_0
  - | CONSTR_0_1
  - | CONSTR_2_0
  - | CONSTR_1_1
  - | CONSTR_0_2
  - | CONSTR_NOCAF
  - | FUN
  - | FUN_1_0
  - | FUN_0_1
  - | FUN_2_0
  - | FUN_1_1
  - | FUN_0_2
  - | FUN_STATIC
  - | THUNK
  - | THUNK_1_0
  - | THUNK_0_1
  - | THUNK_2_0
  - | THUNK_1_1
  - | THUNK_0_2
  - | THUNK_STATIC
  - | THUNK_SELECTOR
  - | BCO
  - | AP
  - | PAP
  - | AP_STACK
  - | IND
  - | IND_STATIC
  - | RET_BCO
  - | RET_SMALL
  - | RET_BIG
  - | RET_FUN
  - | UPDATE_FRAME
  - | CATCH_FRAME
  - | UNDERFLOW_FRAME
  - | STOP_FRAME
  - | BLOCKING_QUEUE
  - | BLACKHOLE
  - | MVAR_CLEAN
  - | MVAR_DIRTY
  - | TVAR
  - | ARR_WORDS
  - | MUT_ARR_PTRS_CLEAN
  - | MUT_ARR_PTRS_DIRTY
  - | MUT_ARR_PTRS_FROZEN_DIRTY
  - | MUT_ARR_PTRS_FROZEN_CLEAN
  - | MUT_VAR_CLEAN
  - | MUT_VAR_DIRTY
  - | WEAK
  - | PRIM
  - | MUT_PRIM
  - | TSO
  - | STACK
  - | TREC_CHUNK
  - | ATOMICALLY_FRAME
  - | CATCH_RETRY_FRAME
  - | CATCH_STM_FRAME
  - | WHITEHOLE
  - | SMALL_MUT_ARR_PTRS_CLEAN
  - | SMALL_MUT_ARR_PTRS_DIRTY
  - | SMALL_MUT_ARR_PTRS_FROZEN_DIRTY
  - | SMALL_MUT_ARR_PTRS_FROZEN_CLEAN
  - | COMPACT_NFDATA
  - | N_CLOSURE_TYPES
- closureTypeHeaderSize :: ClosureType -> Int

# Documentation

data ClosureType Source #

Constructors

INVALID_OBJECT |
CONSTR |
CONSTR_1_0 |
CONSTR_0_1 |
CONSTR_2_0 |
CONSTR_1_1 |
CONSTR_0_2 |
CONSTR_NOCAF |
FUN |
FUN_1_0 |
FUN_0_1 |
FUN_2_0 |
FUN_1_1 |
FUN_0_2 |
FUN_STATIC |
THUNK |
THUNK_1_0 |
THUNK_0_1 |
THUNK_2_0 |
THUNK_1_1 |
THUNK_0_2 |
THUNK_STATIC |
THUNK_SELECTOR |
BCO |
AP |
PAP |
AP_STACK |
IND |
IND_STATIC |
RET_BCO |
RET_SMALL |
RET_BIG |
RET_FUN |
UPDATE_FRAME |
CATCH_FRAME |
UNDERFLOW_FRAME |
STOP_FRAME |
BLOCKING_QUEUE |
BLACKHOLE |
MVAR_CLEAN |
MVAR_DIRTY |
TVAR |
ARR_WORDS |
MUT_ARR_PTRS_CLEAN |
MUT_ARR_PTRS_DIRTY |
MUT_ARR_PTRS_FROZEN_DIRTY |
MUT_ARR_PTRS_FROZEN_CLEAN |
MUT_VAR_CLEAN |
MUT_VAR_DIRTY |
WEAK |
PRIM |
MUT_PRIM |
TSO |
STACK |
TREC_CHUNK |
ATOMICALLY_FRAME |
CATCH_RETRY_FRAME |
CATCH_STM_FRAME |
WHITEHOLE |
SMALL_MUT_ARR_PTRS_CLEAN |
SMALL_MUT_ARR_PTRS_DIRTY |
SMALL_MUT_ARR_PTRS_FROZEN_DIRTY |
SMALL_MUT_ARR_PTRS_FROZEN_CLEAN |
COMPACT_NFDATA |
N_CLOSURE_TYPES |

#### Instances

Instances details

Enum ClosureType # |
Instance details Defined in GHC.Exts.Heap.ClosureTypes Methods succ :: ClosureType -> ClosureType Source # pred :: ClosureType -> ClosureType Source # toEnum :: Int -> ClosureType Source # fromEnum :: ClosureType -> Int Source # enumFrom :: ClosureType -> [ClosureType] Source # enumFromThen :: ClosureType -> ClosureType -> [ClosureType] Source # enumFromTo :: ClosureType -> ClosureType -> [ClosureType] Source # enumFromThenTo :: ClosureType -> ClosureType -> ClosureType -> [ClosureType] Source #
Eq ClosureType # |
Instance details Defined in GHC.Exts.Heap.ClosureTypes Methods (==) :: ClosureType -> ClosureType -> Bool Source # (/=) :: ClosureType -> ClosureType -> Bool Source #
Ord ClosureType # |
Instance details Defined in GHC.Exts.Heap.ClosureTypes Methods compare :: ClosureType -> ClosureType -> Ordering Source # (<) :: ClosureType -> ClosureType -> Bool Source # (<=) :: ClosureType -> ClosureType -> Bool Source # (>) :: ClosureType -> ClosureType -> Bool Source # (>=) :: ClosureType -> ClosureType -> Bool Source # max :: ClosureType -> ClosureType -> ClosureType Source # min :: ClosureType -> ClosureType -> ClosureType Source #
Show ClosureType # |
Instance details Defined in GHC.Exts.Heap.ClosureTypes Methods showsPrec :: Int -> ClosureType -> ShowS Source # show :: ClosureType -> String Source # showList :: [ClosureType] -> ShowS Source #
Generic ClosureType # |
Instance details Defined in GHC.Exts.Heap.ClosureTypes Associated Types type Rep ClosureType :: Type -> Type Source # Methods from :: ClosureType -> Rep ClosureType x Source # to :: Rep ClosureType x -> ClosureType Source #
type Rep ClosureType # |
Instance details Defined in GHC.Exts.Heap.ClosureTypes type Rep ClosureType = D1 ('MetaData "ClosureType" "GHC.Exts.Heap.ClosureTypes" "ghc-heap-9.0.0.20201227" 'False) ((((((C1 ('MetaCons "INVALID_OBJECT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CONSTR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CONSTR_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CONSTR_0_1" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CONSTR_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CONSTR_1_1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CONSTR_0_2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CONSTR_NOCAF" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "FUN" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FUN_1_0" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FUN_0_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FUN_2_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FUN_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FUN_0_2" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FUN_STATIC" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "THUNK" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: ((((C1 ('MetaCons "THUNK_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "THUNK_0_1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "THUNK_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "THUNK_1_1" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "THUNK_0_2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "THUNK_STATIC" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "THUNK_SELECTOR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BCO" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "AP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PAP" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "AP_STACK" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IND" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "IND_STATIC" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RET_BCO" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RET_SMALL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RET_BIG" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: (((((C1 ('MetaCons "RET_FUN" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UPDATE_FRAME" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CATCH_FRAME" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UNDERFLOW_FRAME" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "STOP_FRAME" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BLOCKING_QUEUE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BLACKHOLE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MVAR_CLEAN" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "MVAR_DIRTY" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TVAR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ARR_WORDS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MUT_ARR_PTRS_CLEAN" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "MUT_ARR_PTRS_DIRTY" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MUT_ARR_PTRS_FROZEN_DIRTY" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MUT_ARR_PTRS_FROZEN_CLEAN" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MUT_VAR_CLEAN" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: ((((C1 ('MetaCons "MUT_VAR_DIRTY" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "WEAK" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PRIM" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MUT_PRIM" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TSO" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "STACK" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TREC_CHUNK" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ATOMICALLY_FRAME" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "CATCH_RETRY_FRAME" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CATCH_STM_FRAME" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "WHITEHOLE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SMALL_MUT_ARR_PTRS_CLEAN" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "SMALL_MUT_ARR_PTRS_DIRTY" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SMALL_MUT_ARR_PTRS_FROZEN_DIRTY" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SMALL_MUT_ARR_PTRS_FROZEN_CLEAN" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "COMPACT_NFDATA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "N_CLOSURE_TYPES" 'PrefixI 'False) (U1 :: Type -> Type))))))))

closureTypeHeaderSize :: ClosureType -> Int Source #

Return the size of the closures header in words