簡體   English   中英

防止開發 agda 破壞基本標准庫的使用?

[英]Preventing development agda from breaking basic standard library usage?

我正在使用 agda 的開發版本,它現在與基本標准庫版本 1.3 不兼容。

wmacmil@w:~/.agda$ agda --version
Agda version 2.6.2-41b6b25

一個基本的 failure.agda 文件,

module failure where 

open import Data.String 

失敗:

Checking failure (/home/wmacmil/agdaFall2019/constructiveTypeTheoriesNLSem/TT_course/agda_files/failure.agda).
 Checking Data.String (/home/wmacmil/agdaStdLib/agda-stdlib-1.3/src/Data/String.agda).
  Checking Data.String.Base (/home/wmacmil/agdaStdLib/agda-stdlib-1.3/src/Data/String/Base.agda).
   Checking Data.List.Extrema (/home/wmacmil/agdaStdLib/agda-stdlib-1.3/src/Data/List/Extrema.agda).
    Checking Data.List.Membership.Propositional.Properties (/home/wmacmil/agdaStdLib/agda-stdlib-1.3/src/Data/List/Membership/Propositional/Properties.agda).
     Checking Data.List.Membership.Setoid.Properties (/home/wmacmil/agdaStdLib/agda-stdlib-1.3/src/Data/List/Membership/Setoid/Properties.agda).
Killed

如何一次運行兩個版本? 以及如何運行 stdlib 的實驗版本來避免這種情況? 有人會建議其他任何技巧嗎?

另外,聲譽大於 1500 的人會將 agda-stdlib 標記為標簽嗎?

如標准庫的描述中所述,如果您使用的是 Agda 的master分支,則需要使用該庫的experimental分支。 您可以通過在https://github.com/agda/agda-stdlib克隆 github 存儲庫並執行git checkout experimental Experimental 來獲取它。

要在切換 Agda 版本時自動切換庫版本,您可以擁有多個libraries文件,如用戶手冊中所述

要被 Agda 找到,必須在庫文件中列出庫文件(及其完整路徑)

AGDA_DIR/libraries-VERSION,或者如果不存在 AGDA_DIR/libraries

其中 VERSION 是 Agda 版本(例如 2.5.1)。 AGDA_DIR 在類 Unix 系統上默認為 ~/.agda,在 Windows 上默認為 C:\\Users\\USERNAME\\AppData\\Roaming\\agda 或類似的,並且可以通過設置 AGDA_DIR 環境變量來覆蓋。

或者,您可以擁有一個libraries文件,並在切換 Agda 版本時檢查libraries的正確版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM