3

在 GHC6 上使用 cabal 构建时,它会警告:

Warning: Falling back to topdown solver for GHC < 7.

什么是自上而下的求解器,警告的含义是什么?它对我有什么影响?

4

2 回答 2

7

新的模块化求解器不适用于较旧的 GHC 版本,尤其是ghc-6.12.X. 本系列中有一个特殊情况,它base-3依赖于base-4并通过从较新版本重新导出功能来提供兼容层。

这种特殊情况在 Hackage 的其他任何地方都没有使用过,而且我从不认为值得在新的求解器中实现它。

由于这两个求解器仍由 提供cabal-install,因此对于旧 GHC 版本,它只是默认使用旧的“自上而下”求解器,而对于新 GHC 版本,它默认选择较新的“模块化”求解器。

如果您尝试选择模块化求解器ghc-6.12.X,只要涉及的所有库都支持,它应该仍然能够找到解决方案base-4。但base-3由于自力更生,总会被视为不可用。

于 2013-04-15T20:16:58.683 回答
6

忽略它。

该消息意味着依赖求解器组件决定回退到旧算法,因为您使用的是 GHC < 7。有关依赖求解器功能的更多信息,请参阅Andres Löh 和 Duncan Coutts 的这些幻灯片。他们还解释了新的(模块化)和旧的(自上而下)求解器之间的区别。

(如果你真的想要,你可以cabal install通过运行强制使用新的求解器cabal install --solver=modular。)

于 2013-04-15T18:01:39.600 回答