cabal repl太慢了

时间:2014-11-04 15:20:23

标签: haskell cabal

目前,cabal repl对我来说无法使用。在提示符处键入是不稳定的:出现几个字母,然后它似乎挂起5-10秒,之后再次继续。我怀疑这与它将Alex / Happy生成的文件(分别为81K和134K)加载到REPL中的事实有关。我大部分时间都不需要那些文件用于REPL支持。我不确定这是否真的存在问题,但我不知道还有什么可以尝试。

我希望能够将它们从REPL中排除,同时仍然将它们包含在构建过​​程中。更好的是:我是否只能以某种方式使用每个文件中的一个函数(lex / parse

编辑:我在OS X 10.9上运行的GHC 7.8.3 / Cabal 1.20.0.3以及具有16GB RAM的2012年中期rMBP(Sandy Bridge)中看到了这种行为。 GHC / Cabal是通过Homebrew安装的。

编辑2:问题{/ 3}}

2 个答案:

答案 0 :(得分:2)

您可以发布.cabal文件吗?

如果我理解你的情况,请按以下步骤操作:

  1. 验证alex和happy生成的文件是否导致速度减慢。
  2. 如果是这种情况,请考虑将它们移到另一个包中,以便ghci加载它们的编译版本。
  3. 对于#1,我可能会尝试仅使用存根替换alex和happy生成的文件 - 仅包含其他模块导入的符号的定义(= undefined)的骨架文件。

答案 1 :(得分:0)

我尝试按照user5402的答案重新组织代码,但即使代码位于不同的基础包中,我也无法获得更多的加速。

相反,我在项目目录中创建了一个.ghci文件,其中包含以下内容:

:set -fobject-code

这个加载的模块版本,只有导出的函数可以调用。对于我的用途,这很好。