|
|
@@ -5,6 +5,8 @@ module IRC.Plugins.Loader ( load ) where |
|
|
|
|
|
|
|
import qualified Data.HashMap.Lazy as M |
|
|
|
|
|
|
|
import IRC.Plugins.Plugin |
|
|
|
|
|
|
|
import Control.Exception ( catch, ErrorCall ) |
|
|
|
import GHC.Exts ( addrToAny# ) |
|
|
|
import GHC.Ptr ( Ptr(..) ) |
|
|
@@ -12,11 +14,6 @@ import System.Info ( os, arch ) |
|
|
|
import GHCi.ObjLink |
|
|
|
import Encoding |
|
|
|
|
|
|
|
type PluginSet = M.HashMap String Plugin |
|
|
|
|
|
|
|
data Plugin = Plugin { pluginEvent :: String, -- e.g. PRIVMSG |
|
|
|
pluginEntry :: Int } |
|
|
|
|
|
|
|
load :: PluginSet -> String -> IO (Either String PluginSet) |
|
|
|
load set path = do |
|
|
|
initObjLinker RetainCAFs |
|
|
|