Stack 通常会缓存包依赖构建以节省未来构建的时间,但我注意到在实践中很多情况下不会发生这种情况。当它工作时,它可以节省大量时间,因为构建依赖项通常需要半小时或更长时间。
经过一些工作,我已经能够隔离一个说明这个问题的简单示例,并且想知道是否有人可以帮助我解决它。请注意,此问题仅涉及新构建,例如克隆之后....同一克隆的第二个构建实际上确实很快。
如果我编译这个非常简单的 Main.hs
import Network.Haskoin.Internals
main = undefined
使用这个 stack.yaml
resolver: lts-2.15
packages:
- '.'
extra-deps:
- haskoin-0.1.0.2
- json-rpc-0.2.1.6
- pbkdf-1.1.1.1
- text-1.1.1.4
flags: {}
还有这个 .cabal 文件
name: simple
version: 0.1.0.0
cabal-version: >=1.10
executable simple-exe
hs-source-dirs: src
main-is: Main.hs
build-depends: base
, haskoin
default-language: Haskell2010
每次我重新克隆源代码时,堆栈都会重建每个依赖项。
我猜这可能与extra-deps
, 特别是text-1.1.1.4
, 但不确定。