在GHC6上用阴谋建造时,警告:
Warning: Falling back to topdown solver for GHC < 7.
什么是自上而下解算器,警告的含义是什么?它对我有何影响?
答案 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
使用新的解算器。)