ItsWA项目到0.0.3版本的开发路线图
ItsWA项目计划在2024/06/1前发布0.0.3版本。在这之前,ItsWA将会发布多个预发布版本,供测试错误使用。
核心目标
- 实现ItsWA OJ
- 并实现代码的安全运行
- 将ItsWA OJ接入XYUAN
- 多种比较器
- Special Judge的支持
- Grader交互
- 提交答案题
- 通信题
次级目标
以下功能尽量在本版本内完成,不能完成的将会在下一版本完成:
- 超时时间模拟2
- Pascal、C语言的支持
- 发行为单文件,方便传输
- 发行到pypi,方便安装
以下功能尽可能在本版本完成,不能完成的可能会在下三个版本内完成:
- 原生Windows支持(安全运行时将不可用)
- 分布式评测(将源代码文件发送到其他评测姬编译、运行,加快评测速度)
- ItsWA SPJ API(采用C++编写,同Special Judge程序一起编译。用于给Special Judge程序提供更多的的交互方式,例如获取选手程序内容、获取题目信息等功能)
社区发展
- 尽可能推广ItsWA,发展第一批用户
- 尝试发展第一批开发者
- 在部分场景下尝试使用(比如我校只有3个人的信奥队ψ(._. )>)。
预版本目标
[Working] 0.0.3-alpha.2
需要实现OJ的大部分功能,包括如下几点:
- 题目提交
- 比赛评分并排名
- OI赛制支持
- IOI赛制支持
除此之外,还需要实现代码的安全运行,我们需要做到如下几点:
- 评测运行采用
lrun
,限制程序访问网络、读取CCF文件1、使用CPU Time计算运行时间、对程序内存消耗的监测 - 题目超时时间、题目内存限制的自定义
[Closed] 0.0.3-alpha.1
需实现了OJ的基本功能,包括如下几点:
- 用户管理
- 从Manager中注册比赛到OJ
- 读取题目
除此之外,修复大部分已知的Bug。
-
暂停该项的工作,因为ItsWA目前的开发主要在ArchWSL上进行,而lrun的文件相关功能无法在ArchWSL上正常工作,开发团队已向
lrun
反映该问题在ArchWSL上无法对挂载点使用fopen-filter · Issue #39 · quark-zju/lrun (github.com)。 ↩ -
CCF统一评测时的机器配置为Inter3(R) Core(TM) i7-8700K CPU @3.70GHz,但我们自己的评测姬并不一定有性能相似的CPU。本功能将通过在本地运行一个跑分程序,将其的结果与标准值(即i7-8700k上得到的结果)进行比较,求出一个
offset
值,将题目时间限制延长(或所见)。 ↩ -
典中典打错字(见CSP-J2022复赛考卷) ↩