图书馆管理
Agda有一个简单的包管理系统,可以支持多个不同位置的库。核心概念是图书馆.
示例:使用标准库
在我们深入讨论细节之前,这里有一些针对不耐烦者的快速信息如何使用图书馆管理系统。
假设您已将标准库下载到一个目录中将由引用AGDA_STDLIB公司
(作为绝对路径)。库文件标准库.agda-lib
应该存在于该目录中,并且以下内容:
要在Agda项目中默认使用标准库,您需要做两件事:
创建文件AGDA_DIR/库
其内容如下:
(当然,更换AGDA_STDLIB公司
按实际路径。)
这个AGDA_DIR公司
默认为~/.agda
关于类unix系统和C: \Users\USERNAME\AppData\Roaming\agda
或在Windows上类似。(更多信息请参见AGDA_DIR公司
(见下文)
备注:图书馆
文件通知Agda您想要它知道的库关于。
创建文件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
是您常用的库。虽然可以安全地列出所有库图书馆
,请注意列表名称冲突的库默认值
可能会导致困难,而且应该小心行事(即除非你真的必须避免这样做)。
版本号
库名称可以以版本号结尾(例如,mylib-1.2.3型
).解析库名称(在--图书馆
标记,或列为默认库或库依赖项)遵循以下规则:
- 如果你不给出版本号,任何版本都可以。
- 如果您给出了版本号,则需要精确匹配。
- 如果有多个匹配项,则首选完全匹配项,否则选择最新的匹配版本。
例如,假设您安装了以下库:聚酯纤维
,mylib-1.0型
,其他库-2.1
、和其他2.3
在这种情况下,除了你也可以说完全匹配--library=其他库
得到其他2.3
.
正在升级
如果您从Agda的2.5之前版本升级,请注意您可能已经在您的首选项中保留了以前的库管理系统。特别地,如果您收到有关的警告agda2包括目录
,您需要找到它的位置定义。这可能埋得很深.el型
文件,其位置都在运行取决于系统和emacs版本。