Safe Haskell | None |
---|---|
Language | Haskell98 |
Bindings to functions exported by the runtime system, and wrappers for related primops.
- data Config = Config {}
- runtimeImportKinds :: Map Name (ImportType Name)
- runtimeImportTypes :: Map Name (ImportValue 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) Source
Kind signatures for runtime types that we use when converting to Salt.
runtimeImportTypes :: Map Name (ImportValue 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
:: 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
Raw Small Objects
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.