Geo*_*rge 13 haskell haskell-stack
我参与了一个涉及大量C位和FFI的Haskell项目.所以我发现自己经常运行并重新运行命令
$ stack build
$ stack build --force-dirty
$ stack clean
$ rm ./.stack-work
Run Code Online (Sandbox Code Playgroud)
反复进行,以便将C位正确链接到Haskell位.换句话说,有时事情在运行时才起作用stack build,有时它们不起作用(在这种情况下,我被迫一遍又一遍地循环上述命令,直到我的项目正确构建).
这意味着我没有正确理解在组装Haskell位之前stack(通过ghc)如何组装C位.所以这里有一个问题可以帮助我开始清理我的困惑:
运行stack clean和删除目录内容之间是否有任何值得注意的区别.stack-work?是否有.stack-work必要删除目录作为一个很好的预防措施,以确保您实际运行干净的构建?
正如您通过阅读此处的源代码所看到的:
https://github.com/commercialhaskell/stack/blob/master/src/Stack/Clean.hs
有两个层次,全层和浅层。我认为浅似乎是默认的。它似乎能够清理特定的包,或者如果您根本不提供任何选项,它会清理除本地包中的额外依赖项之外的所有内容。