Safe Haskell | Safe |
---|---|
Language | Haskell98 |
Bindings to functions exported by the runtime system, and wrappers for related primops.
- data Config = Config {}
- runtimeImportKinds :: Map Name (ImportType Name (Type Name))
- runtimeImportTypes :: Map Name (ImportValue Name (Type Name))
- rTop :: Type Name
- xGetTag :: a -> Type Name -> Exp a Name -> Exp a Name
- xAllocBoxed :: a -> Type Name -> Integer -> Exp a Name -> Exp a Name
- xGetFieldOfBoxed :: a -> Type Name -> Type Name -> Exp a Name -> Integer -> Exp a Name
- xSetFieldOfBoxed :: a -> Type Name -> Type Name -> Exp a Name -> Integer -> Exp a Name -> Exp a Name
- xAllocRaw :: a -> Type Name -> Integer -> Exp a Name -> Exp a Name
- xPayloadOfRaw :: a -> Type Name -> Exp a Name -> Exp a Name
- xAllocSmall :: a -> Type Name -> Integer -> Exp a Name -> Exp a Name
- xPayloadOfSmall :: a -> Type Name -> Exp a Name -> Exp a Name
- xAllocThunk :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name
- xArgsOfThunk :: a -> Type Name -> Exp a Name -> Exp a Name
- xSetFieldOfThunk :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name
- xExtendThunk :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xCopyArgsOfThunk :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name
- xApplyThunk :: a -> Int -> [Exp a Name] -> Exp a Name
- xRunThunk :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name
- xErrorDefault :: a -> Exp a Name -> Exp a Name -> Exp a Name
Runtime Config
Runtime system configuration
Config | |
|
runtimeImportKinds :: Map Name (ImportType Name (Type Name)) Source #
Kind signatures for runtime types that we use when converting to Salt.
runtimeImportTypes :: Map Name (ImportValue Name (Type Name)) Source #
Type signatures for runtime funtions that we use when converting to Salt.
Runtime Types.
The top-level region. This region lives for the whole program, and is used to store objects whose types don't have region annotations (like function closures and Unit values).
Runtime Functions
Generic
Boxed Objects
xAllocBoxed :: a -> Type Name -> Integer -> Exp a Name -> Exp a Name Source #
Allocate a Boxed object.
:: a | |
-> Type Name | Prime region var of object. |
-> Type Name | Regino of result object. |
-> Exp a Name | Object to update. |
-> Integer | Field index. |
-> Exp a Name |
Get a field of a Boxed object.
:: a | |
-> Type Name | Prime region var of object. |
-> Type Name | Region of field object. |
-> Exp a Name | Object to update. |
-> Integer | Field index. |
-> Exp a Name | New field value. |
-> Exp a Name |
Set a field in a Boxed Object.
Raw Objects
xPayloadOfRaw :: a -> Type Name -> Exp a Name -> Exp a Name Source #
Get the payload of a Raw object.
Raw Small Objects
xAllocSmall :: a -> Type Name -> Integer -> Exp a Name -> Exp a Name Source #
Allocate a Small object.
xPayloadOfSmall :: a -> Type Name -> Exp a Name -> Exp a Name Source #
Get the payload of a Small object.
Thunk Objects
:: a | |
-> Type Name | |
-> Exp a Name | Function |
-> Exp a Name | Value paramters. |
-> Exp a Name | Times boxed. |
-> Exp a Name | Value args. |
-> Exp a Name | Times run. |
-> Exp a Name |
Allocate a Thunk object.
xArgsOfThunk :: a -> Type Name -> Exp a Name -> Exp a Name Source #
Get the available arguments in a thunk.
:: a | |
-> Type Name | Region containing thunk. |
-> Type Name | Region containigng new child. |
-> Exp a Name | Thunk to set field of. |
-> Exp a Name | Base offset. |
-> Exp a Name | Index of field from base. |
-> Exp a Name | New child value. |
-> Exp a Name |
Set one of the argument pointers in a thunk.
xExtendThunk :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source #
Copy a thunk while extending the number of available argument slots.
xCopyArgsOfThunk :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name Source #
Copy the available arguments from one thunk to another.
:: a | Annotation. |
-> Type Name | Region containing thunk to run. |
-> Type Name | Region containing result object. |
-> Exp a Name | Expression of thunk to run. |
-> Exp a Name |
Run a thunk.