2.5 KiB
2.5 KiB
CHECKLIST — Phase 20.33 (Stage‑B)
- Stage‑B 専用エントリ(
lang/src/compiler/entry/compiler_stageb.hako)を追加。--prefer-cfgを受理。 ParserBox.parse_program2→ AST JSON を取得(Quiet: 1行)。Stage‑A map parser は空/空白/エスケープに対応。- FlowEntry.emit_v0_from_ast_with_context(using/extern メタを統合)。
- selfhost canary(return/binop/if/index)を Stage‑B でも PASS(opt‑in
SMOKES_ENABLE_STAGEB=1で緑)。 - v1→v0 降格(MirJsonV1Adapter)経路を整備(
--v1-compat/selfhost_stageb_v1_compat_vmopt-in)。 - tools/smokes/v2/profiles/quick/core/selfhost_* を追加(opt‑in)。配列ネスト/境界ケースを含む。
- ドキュメント更新(README/PLAN/CHECKLIST)。
-— 未完(本フェーズ内で進める) —
- Gate‑C(Core) v1→MIR Interpreter 実行(
HAKO_NYVM_CORE=1/最小ブリッジ)。 - NyVmDispatcher 直行(別タスク・将来対応)。
- v1→v0 最小ダウングレード(任意・
HAKO_NYVM_V1_DOWNCONVERT=1)。未対応命令は Fail‑Fast。 - Bridge 正規化:
HAKO_BRIDGE_INJECT_SINGLETON実装(Array/Map len → Method 化、Fail‑Fast 付き)。 - Bridge 正規化:
HAKO_BRIDGE_EARLY_PHI_MATERIALIZE実装(φ をブロック先頭へ移動、順序保護)。 - 静的Boxメソッドの self 先頭統一(LLVM 命令Boxを含む)。互換が必要な経路は
HAKO_BRIDGE_INJECT_SINGLETON=1で補完。 - Gate‑C file/pipe × Plugins ON/OFF の対称性スモーク(数値出力=終了コード)。
- Stage‑A map リテラルの堅牢化(エスケープ/Unicode/{}/不正形診断)。
- スモーク実行権限(core/* に chmod +x 反映)。
- 参照の古い表記整理(apps/selfhost-compiler → lang/src/compiler/* に統一。履歴注記は残す)。
- ランナー子環境ヘルパーの集約(selfhost 経路の ENV を helper へ)。
- Extern SSOT(VM/AOT 共通ローダ、既定OFF)。
▼ 付記(ワークログ)
- 2025‑11‑01: Runner の Gate‑C v1 直行(子プロセスで Hako controller 起動)を配線。ただし Hako 側で
call("…")解決に失敗→直行NG。v1→MIR Interpreter(最小ブリッジ const/copy/ret)は動作。 - 2025‑11‑01: Bridge トグル(len 変換/φ 先頭化)実装。Gate‑C v1 parity スモーク(file/pipe、plugins ON/OFF)と Stage‑A map 境界スモークを追加(opt‑in)。