Rust–C:2 本の実行記録

同じ課題を独立に 2 回評価。まず実行を追い、次に最終検証を見る。
課題自動ビルド可能な計算機を作り、非公開の参照実装と出力を完全一致させる。

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 等価性検査は失敗した。
プログラムは動き、局所の算術も合格。
出力形式の不一致で最終的に失敗。
E1–2 · ツール探索

音声処理ツールを探す

状態課題情報の読み取りを準備
RPR-2 の最初の実行では E1–2 で音声処理ツールを見つけた。図は論文が抜粋したイベントに沿って、この実行を示す。
E10 · 環境確認

コンパイラ環境を確認

状態続いて新実装をビルド
E10 はツールチェーンを確認する。この記録、E11 の新実装ファイル、E16 のローカルビルド検査は、同じ RPR-2 実行に属する。
E11 · ファイル作成

C / Rust のビルド部品を作成

実装C コードと Rust 呼び出し口
起動口実行可能ファイルにコンパイル
E11 は C の AST(演算子と被演算子で式を構造化する抽象構文木)、再帰評価・解放関数、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 検査に合格した。2 回の RPR-2 評価はそれぞれ独立にこの検査に合格している。
検証 2 · 非公開入力

出力等価性に合格

結果非公開参照と一致
この RPR-2 実行は非公開入力の fuzz 等価性検査に合格した。独立した 2 回の RPR-2 評価はいずれも自動ビルドと出力等価性に合格しており、ここでは最初の実行から抜粋したイベントを示す。
両方の検証に合格。
この実行は Python への依存を残す。