我正在寻找一种安全运行任意Haskell代码的方法(或拒绝运行不安全的代码)。
必须具备以下功能:
- 模块/函数白名单
- 执行超时
- 内存使用限制
我希望看到的功能包括:
- 能够终止线程
- 编译模块为本机代码
- 缓存编译代码
- 同时运行几个解释器
- 编译器错误的复杂数据类型(而不是字符串中的简单消息)
有了这样的功能,就可以实现一个浏览器插件,能够运行任意的Haskell代码,这是我想要的想法。
编辑:我得到了两个答案,都很好。谢谢!不幸的是,似乎没有现成的库,只有类似的程序。它是一个有用的资源。无论如何,我想我会等待7.2.1发布,并尝试在自己的程序中使用SafeHaskell。