是否有其他任何人stack
编译&仅在询问stack ghci
时链接整个项目?
不应该跳过前者并立即跳入ghci
加载来源吗?我已经观察到它在我的大部分项目中为我做了两件事,因此它做了看似多余的工作。这是设计,还是我错误配置了一些堆栈项目?
这可能是由cabal
在没有stack
要求的情况下完成的吗?
无论如何,当我只想输入stack ghci
时,我可以做些什么来跳过编译+链接?
答案 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
。)