Safe Haskell | None |
---|---|
Language | Haskell98 |
- newtype MangledSymbol = MangledSymbol ByteString
- data JITSymbolFlags = JITSymbolFlags {
- jitSymbolWeak :: !Bool
- jitSymbolExported :: !Bool
- data JITSymbol = JITSymbol {}
- type SymbolResolverFn = MangledSymbol -> IO JITSymbol
- data SymbolResolver = SymbolResolver {}
- class LinkingLayer l where
- newtype ObjectLinkingLayer = ObjectLinkingLayer (Ptr ObjectLinkingLayer)
- allocWithCleanup :: IORef [IO ()] -> IO a -> (a -> IO ()) -> IO a
- allocFunPtr :: IORef [IO ()] -> IO (FunPtr a) -> IO (FunPtr a)
- disposeLinkingLayer :: LinkingLayer l => l -> IO ()
- newObjectLinkingLayer :: IO ObjectLinkingLayer
- withObjectLinkingLayer :: (ObjectLinkingLayer -> IO a) -> IO a
- createRegisteredDataLayout :: MonadAnyCont IO m => TargetMachine -> IORef [IO ()] -> m (Ptr DataLayout)
Documentation
newtype MangledSymbol Source #
A mangled symbol which can be used in findSymbol
. This can be
created using mangleSymbol
.
data JITSymbolFlags Source #
JITSymbolFlags | |
|
JITSymbol | |
|
type SymbolResolverFn = MangledSymbol -> IO JITSymbol Source #
data SymbolResolver Source #
Specifies how external symbols in a module added to a
CompielLayer
should be resolved.
SymbolResolver | |
|
MonadIO m => EncodeM m SymbolResolver (IORef [IO ()] -> IO (Ptr LambdaResolver)) Source # | |
class LinkingLayer l where Source #
After a CompileLayer
has compiled the modules to object code,
it passes the resulting object files to a LinkingLayer
.
getLinkingLayer :: l -> Ptr LinkingLayer Source #
newtype ObjectLinkingLayer Source #
Bare bones implementation of a LinkingLayer
.
allocWithCleanup :: IORef [IO ()] -> IO a -> (a -> IO ()) -> IO a Source #
Allocate the resource and register it for cleanup.
allocFunPtr :: IORef [IO ()] -> IO (FunPtr a) -> IO (FunPtr a) Source #
allocate a function pointer and register it for cleanup.
disposeLinkingLayer :: LinkingLayer l => l -> IO () Source #
Dispose of a LinkingLayer
.
newObjectLinkingLayer :: IO ObjectLinkingLayer Source #
Create a new ObjectLinkingLayer
. This should be disposed using
disposeLinkingLayer
when it is no longer needed.
withObjectLinkingLayer :: (ObjectLinkingLayer -> IO a) -> IO a Source #
bracket
-style wrapper around newObjectLinkingLayer
and disposeLinkingLayer
.
createRegisteredDataLayout :: MonadAnyCont IO m => TargetMachine -> IORef [IO ()] -> m (Ptr DataLayout) Source #