phase: 20.49 COMPLETE; 20.50 Flow+String minimal reps; 20.51 selfhost v0/v1 minimal (Option A/B); hv1-inline binop/unop/copy; docs + run_all + CURRENT_TASK -> 21.0
This commit is contained in:
@ -21,11 +21,11 @@
|
||||
|
||||
## 構成(新規 Ny ファイル)
|
||||
- `apps/selfhost-runtime/`
|
||||
- `mir_loader.nyash`: MIR(JSON v0) ローダ
|
||||
- `ops_core.nyash`: const/binop/compare/branch/jump/ret/phi
|
||||
- `ops_calls.nyash`: call/externcall/boxcall(MVP)
|
||||
- `boxes_std.nyash`: String/Array/Map/Console の最小メソッド
|
||||
- `runner.nyash`: エントリ/ディスパッチ/ステップガード/TRACE
|
||||
- `mir_loader.hako`: MIR(JSON v0) ローダ
|
||||
- `ops_core.hako`: const/binop/compare/branch/jump/ret/phi
|
||||
- `ops_calls.hako`: call/externcall/boxcall(MVP)
|
||||
- `boxes_std.hako`: String/Array/Map/Console の最小メソッド
|
||||
- `runner.hako`: エントリ/ディスパッチ/ステップガード/TRACE
|
||||
|
||||
Rust ランナー側は PyVM 経路にて `NYASH_SELFHOST_EXEC=1` を検出した場合のみ Ny Executor に MIR(JSON) を渡す(既定は従来どおり PyVM)。
|
||||
|
||||
@ -36,18 +36,18 @@ Rust ランナー側は PyVM 経路にて `NYASH_SELFHOST_EXEC=1` を検出し
|
||||
- 受け入れ: ビルド緑・既定挙動不変・フラグONで no-op 実行可。
|
||||
|
||||
### Stage 1 — MIR ローダ(2–3日)
|
||||
- `mir_loader.nyash` で JSON v0 を読み込み、関数/ブロック/命令の構造体に展開(最初は要約のみ)。
|
||||
- `mir_loader.hako` で JSON v0 を読み込み、関数/ブロック/命令の構造体に展開(最初は要約のみ)。
|
||||
- 依存: Nyash 製 JSON ライブラリ(`NYASH_JSON_PROVIDER=ny`)で DOM を提供(既定OFF、開発時のみON)。
|
||||
- 受け入れ: ロードのみのスモーク(構文要素の個数検証)。
|
||||
- 備考: 立ち上げ初期は PyVM ハーネス用 MIR JSON(`{"functions":…}`)も受理し、要約(functions数)だけ行う(既定OFF)。
|
||||
|
||||
### Stage 2 — コア命令(3–5日)
|
||||
- `ops_core.nyash` で `const/binop/compare/branch/jump/ret/phi` を実装。
|
||||
- `runner.nyash` にステップ budget と TRACE を実装。
|
||||
- `ops_core.hako` で `const/binop/compare/branch/jump/ret/phi` を実装。
|
||||
- `runner.hako` にステップ budget と TRACE を実装。
|
||||
- 受け入れ: 小さな MIR プログラム群で PyVM と stdout/exit code が一致。
|
||||
|
||||
### Stage 3 — call/externcall/boxcall(4–7日)
|
||||
- `ops_calls.nyash` で関数呼び出し/外部呼び出し/Box メソッド呼び出し(MVP)を実装。
|
||||
- `ops_calls.hako` で関数呼び出し/外部呼び出し/Box メソッド呼び出し(MVP)を実装。
|
||||
- String/Console の最小メソッド揃え。未知 extern は STRICT=1 で拒否。
|
||||
- 受け入れ: 既存の小スモーク(文字列・print 系)でパリティ緑。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user