动态链接Haskell

时间:2014-01-28 19:17:17

标签: haskell dynamic-linking

我正在寻找一种动态链接方式。

大纲是:

让我们有一个带有许多数据过滤器的应用程序,这些过滤器具有所有相同的轮廓(函数名,内部使用的数据类型,单个类的一些导出数据类型)。

对我来说,检查当前的.so文件,根据命令行参数加载只需要的文件,然后运行它会很棒。 每次添加新模块时,我都不想更改或重新编译应用程序。

今天有可能这样吗?

System.Plugins尝试了一些黑客攻击,每次都失败了。有时候一个人讨厌强烈的攻击行为。

修改

如果我直接写了这样的东西并给了他调用makeChunks的类型提示,那就没关系,否则什么都没有

--SharedClass --should create common interface
class (Eq c, Show c) => Chunks c where
    makeChunks :: String -> [c]

--Plugin --one concrete implementation
import SharedClass
data MyChunk = SmallChunk Char deriving (Eq) 
instance Chunks MyChunk where
    makeChunks _ = [SmallChunk 's']
instance Show MyChunk where
    show (SmallChunk s) = [s]

--main
import SharedClass
    --load plugin somehow
print $ makeChunks "abcd"

0 个答案:

没有答案