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:
nyash-codex
2025-11-06 15:41:52 +09:00
parent 2dc370223d
commit 77d4fd72b3
1658 changed files with 6288 additions and 2612 deletions

View File

@ -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/boxcallMVP
- `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/boxcallMVP
- `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 ローダ23日
- `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 — コア命令35日
- `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/boxcall47日
- `ops_calls.nyash` で関数呼び出し/外部呼び出し/Box メソッド呼び出しMVPを実装。
- `ops_calls.hako` で関数呼び出し/外部呼び出し/Box メソッド呼び出しMVPを実装。
- String/Console の最小メソッド揃え。未知 extern は STRICT=1 で拒否。
- 受け入れ: 既存の小スモーク文字列・print 系)でパリティ緑。