7

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

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

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

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

HackageDB 和它的开发者很棒,但是我觉得很笨拙,不知道开发一个严肃程序的正确方法。

我应该做什么?我是不是太没经验了?艰难的道路是唯一的道路吗?

(如果问题太笼统,请原谅)

4

2 回答 2

8

坚持使用Haskell 平台

它的存在是为了在每 6 个月内标准化 GHC 的稳定版本,因此您不必猜测要使用哪个 GHC。

于 2012-10-11T14:17:16.070 回答
5

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

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

联系维护者,询问他们何时升级包。十有八九,他们需要做的就是修改cabal文件,重新编译,重新上传。要找到他们的电子邮件地址,请在 hackage 中搜索包名称,然后在横幅中查找“维护者”一词。

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

于 2012-10-11T17:15:57.413 回答