| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
LLVM.Internal.OrcJIT.LinkingLayer
Synopsis
- class LinkingLayer l where
- disposeLinkingLayer :: LinkingLayer l => l -> IO ()
- addObjectFile :: LinkingLayer l => l -> ObjectFile -> SymbolResolver -> IO ObjectHandle
- data ObjectLinkingLayer = ObjectLinkingLayer {
- linkingLayer :: !(Ptr ObjectLinkingLayer)
- cleanupActions :: !(IORef [IO ()])
- newObjectLinkingLayer :: IO ObjectLinkingLayer
- withObjectLinkingLayer :: (ObjectLinkingLayer -> IO a) -> IO a
Documentation
class LinkingLayer l where Source #
After a CompileLayer has compiled the modules to object code,
it passes the resulting object files to a LinkingLayer.
Minimal complete definition
Instances
| LinkingLayer ObjectLinkingLayer Source # | |
Defined in LLVM.Internal.OrcJIT.LinkingLayer Methods getLinkingLayer :: ObjectLinkingLayer -> Ptr LinkingLayer Source # getCleanups :: ObjectLinkingLayer -> IORef [IO ()] Source # | |
disposeLinkingLayer :: LinkingLayer l => l -> IO () Source #
Dispose of a LinkingLayer.
addObjectFile :: LinkingLayer l => l -> ObjectFile -> SymbolResolver -> IO ObjectHandle Source #
Add an object file to the LinkingLayer. The SymbolResolver is used
to resolve external symbols in the module.
data ObjectLinkingLayer Source #
Bare bones implementation of a LinkingLayer.
Constructors
| ObjectLinkingLayer | |
Fields
| |
Instances
| LinkingLayer ObjectLinkingLayer Source # | |
Defined in LLVM.Internal.OrcJIT.LinkingLayer Methods getLinkingLayer :: ObjectLinkingLayer -> Ptr LinkingLayer Source # getCleanups :: ObjectLinkingLayer -> IORef [IO ()] Source # | |
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.