图书馆管理

Agda有一个简单的包管理系统,可以支持多个不同位置的库。核心概念是图书馆.

示例:使用标准库

在我们深入讨论细节之前,这里有一些针对不耐烦者的快速信息如何使用图书馆管理系统。

假设您已将标准库下载到一个目录中将由引用AGDA_STDLIB公司(作为绝对路径)。库文件标准库.agda-lib应该存在于该目录中,并且以下内容:

名称:标准实验室包括:src

要在Agda项目中默认使用标准库,您需要做两件事:

  1. 创建文件AGDA_DIR/库其内容如下:

    AGDA_STDLIB/标准库.AGDA-lib

    (当然,更换AGDA_STDLIB公司按实际路径。)

    这个AGDA_DIR公司默认为~/.agda关于类unix系统和C: \Users\USERNAME\AppData\Roaming\agda或在Windows上类似。(更多信息请参见AGDA_DIR公司(见下文)

    备注:图书馆文件通知Agda您想要它知道的库关于。


  1. 创建文件AGDA_DIR/默认值其内容如下:

    标准实验室

    备注:默认值文件通知Agda指向哪个库到,依据图书馆应在默认情况下使用(即在默认情况下包含路径)。

这是简短的版本,如果你想了解更多,请继续阅读!

库文件

图书馆包括

  • 一个名字
  • 一组依赖项
  • 一组包含路径

库定义于.agda-磅具有以下语法的文件:

name:LIBRARY-name--注释依赖:LIB1 LIB2伦敦银行同业拆借利率3伦敦银行同业拆借利率4包括:PATH1路径2路径3

依赖项是库名称,而不是.agda-磅文件,并包括路径与库文件的位置相关。

安装库

要由Agda找到库文件,必须在图书馆文件

  • AGDA_DIR/库-版本,或者如果不存在
  • AGDA_DIR/库

哪里版本是Agda版本(例如2.5.1)。这个AGDA_DIR公司默认为~/.agda关于类unix系统和C: \Users\USERNAME\AppData\Roaming\agda或在Windows上类似,可以是通过设置AGDA_DIR公司环境变量。

路径中的环境变量(格式为$增值税${VAR})是扩展。可以使用--library-file=文件命令行选项。

您可以找到图书馆文件提交人打电话阿格达 -我 fjdsk公司 Dummy.agda公司在命令行中查看错误消息(假设您没有名为fjdsk公司已安装)。

请注意,如果要安装库,以便在默认情况下使用它,它还必须列在默认值文件(详细信息如下)。

使用库

图书馆有三种使用方式:

  • 您提供--库=LIB(或-我 自由)选择Agda。这是相当于添加-iPATH公司对于的每个包含路径自由及其(可传递的)依赖性。

  • 没有明确的--图书馆标志,并且当前项目根(正在加载的Agda文件的)或其父目录之一包含一个.agda-磅定义库的文件自由。此库是用作--库=LIB已经给出了选项,但没有库必须列在AGDA_DIR/库文件。

  • 没有明确的--图书馆flag和no.agda-磅项目中的文件根目录。在这种情况下,文件AGDA_DIR/默认值已读取并且所有库将列出的添加到路径中。这个默认值文件应包含库名称,每行一个。在这种情况下,当前目录是添加到路径中。

    要禁用默认库,可以指定标志--没有默认库。要完全禁用使用库,请使用--无放射性物质标志。

默认库

如果您想经常使用各种库,最简单的方法是列出它们全部在中AGDA_DIR/默认值文件。它有格式

标准实验室图书馆2图书馆3

当然在哪里图书馆2图书馆3是您常用的库。虽然可以安全地列出所有库图书馆,请注意列表名称冲突的库默认值可能会导致困难,而且应该小心行事(即除非你真的必须避免这样做)。

版本号

库名称可以以版本号结尾(例如,mylib-1.2.3型).解析库名称(在--图书馆标记,或列为默认库或库依赖项)遵循以下规则:

  • 如果你不给出版本号,任何版本都可以。
  • 如果您给出了版本号,则需要精确匹配。
  • 如果有多个匹配项,则首选完全匹配项,否则选择最新的匹配版本。

例如,假设您安装了以下库:聚酯纤维,mylib-1.0型,其他库-2.1、和其他2.3在这种情况下,除了你也可以说完全匹配--library=其他库得到其他2.3.

正在升级

如果您从Agda的2.5之前版本升级,请注意您可能已经在您的首选项中保留了以前的库管理系统。特别地,如果您收到有关的警告agda2包括目录,您需要找到它的位置定义。这可能埋得很深.el型文件,其位置都在运行取决于系统和emacs版本。