Haskell,Hackage,GHC和生产力。该怎么办?

时间:2012-10-11 14:12:51

标签: haskell ghc hackage

一年来,我一直是新手哈斯克勒(我认为,“新秀哈斯克勒”)。我编写了很少的haskell程序(例如,一个非常简单的蛇游戏)但是当我必须使用某些库时,包依赖和ghc失败的版本对我来说很难。

我认为选择正确的ghc版本是一门艺术。

太新了,库失败了(例如,yesod最近更新到7.4; grapefruit-ui-gtk目前失败了。)

太旧了,库已经过时但不受支持。

HackageDB及其开发者非常棒,但我觉得笨拙并且不知道开发一个严肃程序的正确方法。

我必须做什么?我是不是很缺乏经验?艰难的方式是唯一的方式吗?

(对不起,如果问题太笼统)

2 个答案:

答案 0 :(得分:8)

坚持Haskell Platform

存在标准化每6个月期间GHC的稳定释放,因此您不必猜测使用哪种GHC。

答案 1 :(得分:5)

我认为你所描述的问题与缺乏经验有关。这只是发生的事情。一些建议:

作为一般规则,在您知道所依赖的所有软件包都支持新版本之前,请不要升级您的Haskell平台(或ghc)。如果你想要最新的和最好的,你可以并排运行多个版本的平台,但也需要使用旧版本。

联系维护人员,询问他们何时升级包裹。十分之九,他们需要做的就是修改cabal文件,重新编译并重新上传。要查找他们的电子邮件地址,请搜索hackage以获取包名称,并在横幅中查找“Maintainer”一词。

作为一种肮脏的解决方法:您可以尝试自己修改cabal文件(将“.1”添加到程序包版本号的末尾以避免版本冲突,并更新所需的基本版本号),然后看它是否编译。我已经成功完成了几次,然后使用GitHub或者他们正在使用的任何内容向维护者发送了更新。