我的一个 cabal 图书馆击中了 this GHC bug 。我目前在源代码中有一个解决方法,但是由于此 GHC 错误现已在 7.8.3 中修复,我计划尽快删除该解决方法。我不确定如何处理这种情况,使库拒绝在 GHC 7.8.0-7.8.2 上构建。理想情况下,我希望用户收到一条很好的错误消息(例如“GHC 7.8.0-7.8.2 有一个错误阻止此库正确构建,请使用 7.8.3+”)。
也许是一些 cabal 的旗帜?或者一些CPP魔术?我认为修复在 base
中,也许我可以以此为条件,尽管这看起来很棘手或不可能。
或者我可以在很长一段时间内使用解决方法,直到问题完全没有实际意义,但由于大多数早期采用者会使用 7.8.2 及更早版本,我认为放弃支持应该不是问题,有一个适当的警告。
最佳答案
GHC 7.8.3 将 base
的版本号从 4.7.0.0(由之前的 7.8 版本使用)增加到 4.7.0.1。您可以使用 build-depends
cabal 字段来排除该版本,例如通过添加约束 base <=4.7.0.0 || >4.7.0.0
。
关于haskell - 如何拒绝使用某个 ghc 版本进行构建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25124870/