cabal的“警告:回归到GHC的自上而下解算器< 7”。意思?

时间:2013-04-15 17:53:58

标签: haskell ghc cabal cabal-install

在GHC6上用阴谋建造时,警告:

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

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

2 个答案:

答案 0 :(得分:7)

对于较旧的GHC版本,新的模块化解算器无法正常工作,尤其是ghc-6.12.X。本系列中有一个特例,base-3取决于base-4,并通过从较新版本重新导出功能来提供兼容性层。

这个特殊情况不会在Hackage的任何其他地方使用,我从未认为值得在新解算器中实现它。

由于两个求解器仍然由cabal-install提供,它只是默认为较旧的GHC版本的旧“topdown”解算器,并且默认为新的GHC版本选择较新的“模块化”求解器。

如果您尝试使用ghc-6.12.X选择模块化求解器,只要所涉及的所有库都支持base-4,它仍应能够找到解决方案。但由于自我依赖性,base-3将始终被视为不可用。

答案 1 :(得分:6)

请忽略它。

该消息意味着依赖性求解器组件决定回退到旧算法,因为您正在使用GHC&lt; 7.有关依赖性解算器的更多信息,请参阅these slides by Andres Löh and Duncan Coutts。他们还解释了新(模块化)和旧(自上而下)求解器之间的区别。

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