Safe Haskell | None |
---|
Bindings to functions exported by the runtime system, and wrappers for related primops.
- data Config = Config {}
- runtimeImportKinds :: Map Name (QualName Name, Kind Name)
- runtimeImportTypes :: Map Name (QualName 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
- xAllocRawSmall :: a -> Type Name -> Integer -> Exp a Name -> Exp a Name
- xPayloadOfRawSmall :: a -> Type Name -> Exp a Name -> Exp a Name
- xCreate :: a -> Integer -> Exp a Name
- xRead :: a -> Type Name -> Exp a Name -> Integer -> Exp a Name
- xWrite :: a -> Type Name -> Exp a Name -> Integer -> Exp a Name -> Exp a Name
- xPeekBuffer :: a -> Type Name -> Type Name -> Exp a Name -> Integer -> Exp a Name
- xPokeBuffer :: a -> Type Name -> Type Name -> Exp a Name -> Integer -> Exp a Name -> Exp a Name
- xFail :: a -> Type Name -> Exp a Name
- xReturn :: a -> Type Name -> Exp a Name -> Exp a Name
Runtime Config
Runtime system configuration
Config | |
|
runtimeImportKinds :: Map Name (QualName Name, Kind Name)Source
Kind signatures for runtime types that we use when converting to Salt.
runtimeImportTypes :: Map Name (QualName Name, Type Name)Source
Type signatures for runtime funtions that we use when converting to Salt.
Types defined in the runtime system.
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).
Functions defined in the runtime system.
:: a | |
-> Type Name | Prime region var of object. |
-> Type Name | Type of field 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.
xAllocRawSmall :: a -> Type Name -> Integer -> Exp a Name -> Exp a NameSource
Allocate a RawSmall object.
xPayloadOfRawSmall :: a -> Type Name -> Exp a Name -> Exp a NameSource
Get the payload of a RawSmall object.
Calls to primops.
xRead :: a -> Type Name -> Exp a Name -> Integer -> Exp a NameSource
Read a value from an address plus offset.
xWrite :: a -> Type Name -> Exp a Name -> Integer -> Exp a Name -> Exp a NameSource
Write a value to an address plus offset.
xPeekBuffer :: a -> Type Name -> Type Name -> Exp a Name -> Integer -> Exp a NameSource
Peek a value from a buffer pointer plus offset