来自Agda Wiki

开发人员手册:错误修复

2011年4月8日Andreas AIM XIII

2014年5月22日Andreas AIM XIX

2016-04-20安德里亚斯AIM XXIII

修复Agda中的错误

0获取Agda

git克隆git@github.com:agda/agda源代码位于src/full/Agda/如果您正在进行更改以提交请求*github上的fork agda*克隆你的叉子

1个fix-agda-空白程序

这个固定白色面该程序修复了空白问题。它位于

src/fix-agda-空白

当您

进行测试

要安装它,请运行

makeinstallfix-agda-whitespace

来自agda存储库的根。

2 Agda的总体结构

源文件.agda==交互/导入.hs==>==语法/Parser/Parser.y==>语法/Concrete.hs==范围检查:Syntax/Translation/ConcreteToAbstract.hs==>语法/摘要.hs==类型检查:TypeChecking/Rules/==>语法/Internal.hs<==终止检查:终止/==覆盖检查,转换为案例树:TypeChecking/Coverage.hs==>类型检查/编译条款.hs==类型检查/序列化.hs==>接口.agdai

2问题跟踪

  https://github.com/agda/agda/issues

3个错误修复工具

a) 测试套件,请参阅

测试/成功/测试/失败/测试/交互/

等。使用(频繁)运行

进行测试

但在你承诺之前。

b) 标签

制作标签创建src/full/TAGSM-。转到定义C-u M-。备用位置M-*返回

c) 穷人的标签:更新源文件

包含内容的脚本“findhs”#!/垃圾桶/垃圾桶gfind-name“*hs”-exec grep-H“$1”{}\;2> /dev/null然后,在src/full/Agda中,例如。findhs获取交互获取.hs文件中“getInteraction”的所有匹配项。替代方法:在emacs中使用M-x rgrep。

d) 调试消息

在ScopeM或TCM中使用报告调试消息reportSLn“class.of.message”<详细级别>“文本”reportSDoc“class.of.message”<verbosity level>$prettyTCM-expr

4测试用例

每个固定问题都被转化为(a)个测试用例,放在其中一个测试/成功测试/失败测试/交互测试用例应包含注释日期作者以前的错误行为当前预期行为

5提交补丁

确保包含测试/失败中的所有测试用例和所有更改的.err文件并更改了测试/交互的.out文件。在提交消息头中提及问题编号(例如#2134)。在github上创建拉请求。如果没有人响应你的请求,就纠缠主要的开发人员。

祝你好运!

检索自https://wiki.portal.calmers.se/agda/DevelopersManual/BugFixing
最后一次修改日期为2017年3月18日下午05:19