如何阻止 Haskell 运行时解释器库 Hint 使 GHC 解释器崩溃?当我尝试将使用它的模块加载到 GHC 解释器中时,它会给出“总线错误”、“非法指令”或“分段错误”。这是一个主要问题,而不仅仅是一个烦恼,因为当我使用提示加载本身使用提示的代码时,它也会使我的应用程序崩溃。我怀疑这与链接时提示拖入的大量库有关。
我正在使用 Mac OS 10.6.8,GHC 版本 7.0.4
不幸的是,你无法阻止它。ghci 和hint 都使用的ghc api 无法处理一些并发用例,主要是那些涉及将包和模块加载到当前上下文中的用例。ghc api 中有太多的全局状态。
我通过将函数显式传递给所有加载的代码来解决这个问题。
例如,而不是做
module Go where
import Run
go :: IO ()
go = do
blah blah ....
runFile etc ...
我做了
module Go where
go :: RunFile -> IO ()
go runFile = do
blah blah ....
run runFile etc ...