google / google/codeworld

Requirements: Runtime testing

未关闭
#778 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
discussion
主要语言
Haskell
星标
1.3k
派生
201
PR 合并指标
30 天内没有已合并 PR

描述

It would be great to be able to define runtime tests that must be passed as part of the requirements checker. This would involve a severe change in the way the requirements checker works, but my plan is this:

1. Implement the requirements checker as a GHC source plugin rather than a separate CodeWorld build step.
2. For static rules (all of those currently implemented), the result is computed at compile time and hard-coded into the generated code. For dynamic rules (like runtime tests), code is generated to check the result at runtime.
3. Code for reporting (and evaluation, in the dynamic case) of rules is injected at the beginning of `main`, to run as the first action of the compiled code before anything else.

贡献指南

打开贡献指南

调研方向

首先定位 requirements checker 和单独的 CodeWorld build step,然后阅读当前 static rules 的评估方式。当 checker 成为一个 GHC source plugin,能够在编译时处理 static rules、在生成的代码中处理 dynamic runtime tests,并在 main 执行其他操作之前进行 reporting 时,所提出的工作即告完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
haskell
领域
compilers, testing-qa
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
基本清楚
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。