如何加载`stack ghci`而不编译&连接整个项目?

时间:2017-04-03 15:12:56

标签: haskell cabal haskell-stack

是否有其他任何人stack编译&仅在询问stack ghci时链接整个项目?

不应该跳过前者并立即跳入ghci加载来源吗?我已经观察到它在我的大部分项目中为我做了两件事,因此它做了看似多余的工作。这是设计,还是我错误配置了一些堆栈项目?

这可能是由cabal在没有stack要求的情况下完成的吗?

无论如何,当我只想输入stack ghci时,我可以做些什么来跳过编译+链接?

2 个答案:

答案 0 :(得分:3)

来自Haskell Tool Stack Documentation

  

加快初始加载

     

有两种方法可以加速ghci的初始启动:

     
      
  • --no-build,跳过初始构建步骤。这仅在已构建依赖项时才有效。
  •   

您还可以使用stack ghci跳过加载源(如果您知道只需要加载一个文件,并且可以手动执行):

  
      
  • --no-load,跳过将所有已定义的模块加载到ghci中。然后,您可以直接使用:load MyModule加载项目中的特定模块。
  •   

答案 1 :(得分:1)

我刚刚意识到-fobject-code也可能参与其中。我不确定它的设置位置(不在命令行上,不在.cabal / package.yaml文件中,也不在~/.ghci中。

然而,当我用--ghci-options=-fbyte-code否定它时,重新编译似乎没有发生。

我仍然希望听到别人的声音。响应,因为我想更全面地了解为什么-fobject-code在初始加载时可能需要几分钟才能完全重新编译,因为:reload只需要在文件更改后大约一秒钟。 (例如,ghcid。)