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上创建拉请求。如果没有人响应你的请求,就纠缠主要的开发人员。
祝你好运!