有没有办法在递归深度或内存限制模式下运行Haskell控制台?

时间:2015-04-05 22:58:30

标签: haskell ghci hugs

问题在于:有时,在玩GHCI时,我最终错误地运行了无限计算。发生这种情况时,大多数情况下,我的计算机崩溃了,我甚至无法使用Ctrl + C打断它。 我想知道是否有办法在某种模式下运行GHCI(或像Hugs这样的其他交互式控制台),允许我在内存耗尽之前中断程序。可能为递归深度或使用的内存设置虚拟限制。

(这个问题可能与Is there a way to limit the memory, ghci can have?重复,但这也考虑了递归深度限制的可能性,而不仅仅是内存限制。)

1 个答案:

答案 0 :(得分:3)

启动GHCi时,您可以尝试使用RTS options to control the garbage collector。例如,

ghci +RTS -M100M -RTS Foo.hs

应将内存限制为100MB。或者,使用-Ksize来限制堆栈(默认情况下,它受到堆的80%限制)。