【发布时间】:2020-09-20 21:28:33
【问题描述】:
完整的可重现项目:https://github.com/chrissound/215
我有以下定义的简单 cabal 文件:
- 一个库(来源
src-lib) - 同项目中的可执行文件(
src下的源码)(依赖于上面的本地库)
cabal-version: 1.12
name: HaskellNixCabalStarter
version: 0.1.0.0
author: HaskellNixCabalStarter
maintainer: HaskellNixCabalStarter
license: MIT
build-type: Simple
library
exposed-modules:
Hello
other-modules:
Paths_HaskellNixCabalStarter
hs-source-dirs:
src-lib
build-depends:
base >=4.12 && <4.13
default-language: Haskell2010
executable app
main-is: Main.hs
other-modules:
Paths_HaskellNixCabalStarter
hs-source-dirs:
src
build-depends:
HaskellNixCabalStarter
, base >=4.12 && <4.13
default-language: Haskell2010
我可以通过以下方式打开 GHCi repl:
cabal v2-repl app
但是,在 GHCi 重新加载 (:r) 时,它只会重新加载 app 可执行文件中的更改,而忽略库中的任何更改。
这似乎是非常有限/不正确的行为。我该如何解决这个问题/解决方法?
【问题讨论】:
-
这是因为你的库编译和依赖跟踪是由
cabal完成的,在ghci之外。 -
嗯,
stack可能没有这个限制吗?