Rust–C:两条真实执行轨迹
同一道任务,两次独立评测。先看执行,再看最终验收。
任务交付能自动构建的计算器,输出须逐字匹配隐藏参考实现。
Base独立执行 A · 局部成功,最终未通过
最终验收
RPR-2独立执行 B · Terminal-RSI-27B
最终验收
E60 · 本地测试测试嵌套表达式与大整数
观察本地算术检查通过
状态能算出结果;尚未最终验收
Base 的 E60 测试了嵌套表达式和大整数;一次加法输出 1000000001。本地算术测试通过后,最终验收还要检查隐藏输入下的逐字输出。
E62 · 清理后重建删除构建产物,再调用入口
观察自动编译成功
状态本地入口脚本检查通过
Base 的 E62 删除构建产物,检验入口能否自行编译。该本地 wrapper 检查成功,说明构建路径已能运行。
验收 1 · 入口脚本自动构建通过
结果可执行入口可用
最终验证器的 wrapper 门通过。构建验收和输出等价验收是两个不同检查。
验收 2 · 隐藏输入逐字比对失败
实际23
参考23.0
论文 Figure 16 明确给出整数值除法输出 23 而参考输出 23.0。数值意义接近仍未满足精确字符串输出契约,隐藏 fuzz 等价验收失败。
程序能运行,局部算术也通过。
最后仍因输出格式未对齐而失败。
E11 · 写入文件创建 C / Rust 构建组件
实现C 代码与 Rust 调用接口
入口编译成可运行程序
E11 写入 C AST(抽象语法树,把表达式组织成运算符与运算对象的结构)、递归求值与释放函数,以及 Rust 外部函数声明(Rust 调用 C 的接口)。C 归档使用 -fPIC(生成位置无关代码的编译选项),入口脚本请求 musl(一个 C 标准库实现)目标。后续表达式求值通过 Python 调用完成。
E11–16 · 检查并运行检查跨语言调用,再用 Python 求值
观察本地测试输出 14、256
状态原样返回 Python 计算结果
第一条 RPR-2 执行先做 C 链接冒烟测试(快速检查跨语言组件能否连接并运行),再由 Rust 入口调用 Python 计算表达式并原样输出。E16 显示 static-pie(可重定位的静态链接可执行文件)链接,表达式求值依赖 Python 运行时。
验收 1 · 入口脚本自动构建通过
结果可执行入口可用
RPR-2 的受保护 wrapper 检查通过。两次 RPR-2 评测均独立通过这道检查。
验收 2 · 隐藏输入输出等价通过
结果匹配隐藏参考实现
该 RPR-2 执行通过隐藏输入的 fuzz 等价检查。两次 RPR-2 独立评测都通过自动构建与输出等价验收;这里展示第一条执行的选摘事件。
两道验收都通过。
这条执行仍保留 Python 运行时依赖。