uhc-light-1.1.9.0: Part of UHC packaged as cabal/hackage installable library

Safe HaskellNone
LanguageHaskell98

UHC.Light.Compiler.CoreRun.API.Internal

Contents

Description

CoreRun Internal API

Intended for implementing stuff that has to know about internals (i.e. class instances).

See CoreRun.API.

To do (currently sorely missing): proper/enough primitives, and doc for them.

Synopsis

CoreRun AST

The datatypes making up a CoreRun program, with constructors

data AGItf Source

Constructors

AGItf_AGItf 

data Alt Source

Constructors

Alt_Alt 

Fields

ref2nm_Alt_Alt :: !Ref2Nm
 
expr_Alt_Alt :: !Exp
 

Instances

data Pat Source

Constructors

Pat_Con 

Fields

tag_Pat_Con :: !Int
 

Instances

data Import Source

Constructors

Import_Import 

Instances

data Meta Source

Constructors

Meta_Data 

Fields

tyNm_Meta_Data :: !HsName
 
dataCons_Meta_Data :: !DataConL
 

Instances

data RRef Source

Identifier references for use during running CoreRun

Constructors

RRef_Glb

global reference to module and its entry, will become obsolete, to be replaced by RRef_Mod and RRef_Glb

Fields

rrefMod :: !Int

module

rrefEntry :: !Int

entry inside module

RRef_Mod

entry of current module reference

Fields

rrefEntry :: !Int

entry inside module

RRef_Exp

exported entry of module reference, only used internally to be later resolved to a RRef_Imp

Fields

rrefModNm :: !HsName

module name, to be looked up in a module specific import list for an index

rrefEntry :: !Int

entry inside module

RRef_Imp

imported entry of module reference

Fields

rrefMod :: !Int

module

rrefEntry :: !Int

entry inside module

RRef_Loc

local reference to on stack value, not interpreted during running, if used must be converted with rrefToDif before running; may become obsolete.

Fields

rrefLev :: !Int

level when used statically

rrefEntry :: !Int

entry inside module

RRef_LDf

local reference to on stack value, but measured relative to level of from where is referenced, used at runtime

Fields

rrefLevDiff :: !Int

offset/difference in levels when used at runtime

rrefEntry :: !Int

entry inside module

RRef_Tag

tag of memory/constructor node referred to by other ref

Fields

rrefRef :: !RRef

of what this is the tag

RRef_Fld

fld of memory/constructor node referred to by other ref

Fields

rrefRef :: !RRef

of what this is the tag

rrefEntry :: !Int

entry inside module

RRef_Dbg

debug variant, holding original name

Fields

rrefNm :: !HsName
 

Utilities

crarrayFromList :: [x] -> CRArray x Source

Wrapper (rename) around vector-list conversion

crarrayToList :: CRArray x -> [x] Source

Wrapper (rename) around vector-list conversion

Re-export