我已经阅读了 agda-stdlib 项目中的 .travis.yml ,虽然它与纯粹用 Agda 编写的简单库(没有那些 Haskell 代码和 Shell 脚本)非常不同和复杂。

我对 stdlib 的 .tarvis.yml 感到困惑。我已经通过 cabal install 安装了 agda,但是 stdlib 试图在 Travis CI 上克隆和编译 Agda,并且有很多命令似乎无法构建它。

此外,agda-stdlib 似乎在 Ubuntu 的源代码中可用。这可能是安装它的第三种方法。

此外,stdlib 没有依赖项,但我有。我也不知道如何添加依赖项。

我的问题的结论:

  • 在上面列出的安装agda的3种选择中,我应该选择哪一种?
  • 如何添加一个让 agda 编译器知道我实际上在使用它的依赖项?
  • 最佳答案

    标准库有点特殊:它与 Agda 的开发版本同步发展。因此,通常情况下,它无法使用您选择的发行版中现成的 Agda 版本进行编译(例如,因为它使用了事先不可用的语法!)并且它被迫从 github 中提取最新版本。

    安装 Agda

    如果您的库与分布式版本兼容,那么您只需通过 apt-get install agda 从存储库中提取它就会简单得多。

    另外,Scott Fleischman 有一个关于如何使用 docker 镜像来检查你的开发的基本示例:https://github.com/scott-fleischman/agda-travis

    安装您的依赖项

    如果您的项目依赖于依赖项,那么您确实需要安装它们。在实践中,这可能意味着通过 wget 获取一堆 tarball,并让 ~/.agda/libraries 指向它们的库文件。

    参见the manual on library management

    10-07 18:21