在ubuntu上,我目前安装了haskell-platform 2011.2.0.1.2,我目前正在编写一些代码,在这里可以
Control.Concurrent.Chan成为一个实例Eq.不幸的是,在
base-4.3.1.0我安装的那个中,它不是,但是在
base-4.4.0.0 Chan它的实例中Eq.
是否有可能更新基础,可能通过沙箱cabal-dev或任何其他方法,以一种不会破坏太多包的方式?
我正在尝试将我的第一个包上传到Hackage(是的!),我收到了这个错误:
依赖项"build-depends:base"未指定版本号的上限.'base'包的每个主要版本都以各种方式更改API,大多数包需要进行一些更改才能使用它进行编译.建议的做法是指定"base"包版本的上限.这可以确保在发布新的主要版本的"基础"软件包时,您的软件包将继续构建.如果您不确定要使用的上限,请使用下一个主要版本.例如,如果您使用'base'版本2和3测试了包,则使用'build-depends:base> = 2 && <4'.
这似乎是拒绝我的包裹的完全可接受的理由.
是否有一个很好的工具来测试我的包对各种版本,base所以我可以看到界限是什么(而不仅仅是猜测)?我能想到的最好的方法是使用一些shell脚本来执行以下操作:
% for v in $BASE_VERSIONS
do
cabal install base-$v &&\
cabal configure --enable-tests &&\
cabal build &&\
cabal test && echo "$v ok" || echo "$v fail"
done
Run Code Online (Sandbox Code Playgroud)
但我觉得应该有更好的东西.