haskell - 堆栈无法解析正确的包版本
问题描述
我正在尝试grenade
在 Haskell 中使用。用作stack
配置工具,我有
# stack.yaml
extra-deps:
- diagrams-solve-0.1.1
- dual-tree-0.2.2
- SVGFonts-1.6.0.3
- diagrams-core-1.4.1
- diagrams-lib-1.4.2.2
- diagrams-postscript-1.4.1
- diagrams-svg-1.4.2
- Chart-diagrams-1.8.3
- hip-1.5.3.0
- singletons-2.2
- template-haskell-2.11.1.0
- th-desugar-1.6
- grenade-0.1.0
但是当我执行时stack build
,它给了我以下错误
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for th-desugar-1.6:
template-haskell-2.12.0.0 from stack configuration does not match <2.12 (latest
matching version is 2.11.1.0)
needed due to Brain-0.1.0.0 -> th-desugar-1.6
Some different approaches to resolving this:
* Set 'allow-newer: true' to ignore all version constraints and build anyway.
* Consider trying 'stack solver', which uses the cabal-install solver to attempt to
find some working build configuration. This can be convenient when dealing with
many complicated constraint errors, but results may be unpredictable.
* Recommended action: try adding the following to your extra-deps
in [Project directory]/stack.yaml:
- template-haskell-2.11.1.0
Plan construction failed.
即使我放- template-haskell-2.11.1.0
之前diagrams-solve
,堆栈仍然给我同样的错误。允许较新的版本是不可行的,因为它会破坏th-desugar
。
解决方案
这看起来像很多额外的部门。我建议先找出一个好的解析器。最好的方法是使用原始仓库:
git clone git@github.com:HuwCampbell/grenade.git
cd grenade
stack init
这为您提供以下输出:
Looking for .cabal or package.yaml files to use to init the project.
Using cabal packages:
- ./
- examples/
Selecting the best among 13 snapshots...
* Partially matches lts-11.13
criterion version 1.3.0.0 found
- grenade requires ==1.1.*
Downloaded nightly-2018-06-16 build plan.
* Partially matches nightly-2018-06-16
criterion version 1.4.1.0 found
- grenade requires ==1.1.*
hmatrix version 0.19.0.0 found
- grenade requires ==0.18.*
- grenade-examples requires ==0.18.*
singletons version 2.4.1 found
- grenade requires >=2.1 && <2.4
* Partially matches lts-10.10
criterion version 1.2.6.0 found
- grenade requires ==1.1.*
Downloaded lts-9.21 build plan.
* Matches lts-9.21
Selected resolver: lts-9.21
Initialising configuration using resolver: lts-9.21
Total number of user packages considered: 2
Writing configuration to file: stack.yaml
All done.
所以使用基础解析器lts-9.21
。我会在 repo 上打开一个问题,grenade
将其添加到堆栈中。
推荐阅读
- javascript - 每次刷新页面时重新加载数据表
- python-3.x - 使用python查找数组簇中的最小值
- api - 如何在颤动中使用 bloc 模式调用多个 API
- c# - 在 ViewModel xamarin forms android 中更改数据绑定值
- python - Python pandas 中的 dbWriteTable 等效项
- bash - Jenkins 管道在 docker swarm 模式下清理陈旧的图像和容器
- google-app-engine - 如何将 Google Cloud CDN 用于托管在 Google App Engine 上的静态网站?
- python - Python:数据帧的训练测试拆分时出现类型错误
- spring-boot - SecurityContextHolder.getContext().getAuthentication() 在服务层返回 Null
- ms-access - 如何将表单设计更改为在 ms 访问中从右到左创建?