在 GHC6 上使用 cabal 构建时,它会警告:
Warning: Falling back to topdown solver for GHC < 7.
什么是自上而下的求解器,警告的含义是什么?它对我有什么影响?
在 GHC6 上使用 cabal 构建时,它会警告:
Warning: Falling back to topdown solver for GHC < 7.
什么是自上而下的求解器,警告的含义是什么?它对我有什么影响?
新的模块化求解器不适用于较旧的 GHC 版本,尤其是ghc-6.12.X
. 本系列中有一个特殊情况,它base-3
依赖于base-4
并通过从较新版本重新导出功能来提供兼容层。
这种特殊情况在 Hackage 的其他任何地方都没有使用过,而且我从不认为值得在新的求解器中实现它。
由于这两个求解器仍由 提供cabal-install
,因此对于旧 GHC 版本,它只是默认使用旧的“自上而下”求解器,而对于新 GHC 版本,它默认选择较新的“模块化”求解器。
如果您尝试选择模块化求解器ghc-6.12.X
,只要涉及的所有库都支持,它应该仍然能够找到解决方案base-4
。但base-3
由于自力更生,总会被视为不可用。
忽略它。
该消息意味着依赖求解器组件决定回退到旧算法,因为您使用的是 GHC < 7。有关依赖求解器功能的更多信息,请参阅Andres Löh 和 Duncan Coutts 的这些幻灯片。他们还解释了新的(模块化)和旧的(自上而下)求解器之间的区别。
(如果你真的想要,你可以cabal install
通过运行强制使用新的求解器cabal install --solver=modular
。)