Files
hakorune/docs/private/roadmap/phases/phase-20.19/README.md

57 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Phase 20.19 — BridgeB強化と脱Rust前進P0/P1
Status: Completed (20251030)
目的
- BridgeBNy/Core 直行をファイル入力まで完成execute_via_bridge_b
- Core 側の FailFast を戻り値last_error_tagへ寄せ、Runner 整形を薄くする。
- GateC(Core) の file/pipe の対称性を維持しつつ、TTL を計画的に撤去。
- 次フェーズ以降に向け、自給自足ラインHakorune compiler → Koarune をコンパイル)へ道を開く。
背景(前フェーズの到達点)
- Core dispatcher canaryoptin4/4 緑。タグ/rc整形の安定化済み。
- BridgeB は include 方式で安定。タグ行優先・数値→rc=(val&0xFF)。
- SSOTArray/Map/Stringを docs に集約し、GateC/Core と Runner 整形の役割分担を明確化。
スコープ(本フェーズ)
- 実装P0
- execute_via_bridge_b(file_path): .hako → selfhost emit(JSON) → try_lang_core_dispatch_json | .json → try_lang_core_dispatch_json
- Core: last_error_tag の適用拡大Array/Map のFail系
- Runner: BridgeB フォールバックのタグ合成ヒューリスティックを段階撤退last_error_tag が揃い次第)。
- テスト/ドキュメント
- BridgeBfile/pipecanary 2本成功時 rc/出力とタグの整合)。
- SSOT に追補clear()/delete() の振る舞い、構文制限注記)。
- CURRENT_TASK/CHECKLIST の更新と TTL 明記。
除外(本フェーズではやらない)
- Rust Parser/AST の即時撤去(段階撤退方針を維持)。
- Optimizer 大規模移行 / LLVM 外部化(計画のみ)。
受入れ基準
- BridgeB: .hako 入力 → emit(JSON) → Core 実行が file/pipe の両方で PASS。
- last_error_tag: String/Array/Map の代表Fail系が戻り値にタグを載せ、Runner 側がヒューリスティック無しでも整形可能(段階)。
- quickoptinで BridgeB 追加 canary 緑。既存Coreカナリア4本は引き続き緑。
Koarune 自給自足ライン(位置づけ)
- 目標: 「GoがGoをコンパイル」にならい、Hakorune compiler で Koarune をコンパイルする構図へ段階移行。
- 進め方: まずは Ny/Hakorune compiler をSSOT化Core/Emit/BridgeBを安定化。Koaruneは言語面の最小サブセットからMIR(JSON)出力を得て、GateC/Core で実行確認。以降、文法・型・標準ライブラリを薄く拡張。
- ガード: 既定挙動や公的仕様は揺らさず、常に optin で進める。
関連資料
- docs/development/architecture/collection_semantics.mdSSOT
- docs/development/architecture/core_diagnostics.md安定タグ/rc整形
- docs/development/architecture/self_hosting_roadmap.mdKoarune 方向性)
---
実績(ハイライト)
- GateC(Core) 直行の FailFast 化BridgeB 無応答時は静かなフォールバックを禁止し、安定タグで失敗)
- BridgeB タイムアウト既定を 8s に調整(`HAKO_BRIDGE_B_TIMEOUT_MS` で上書き可能)
- Core mir_call に ArrayBox.clear/0ModuleFunction エイリアス)を追加(メタデータのみクリア)
- quick プロファイルはグリーン維持Core カナリアはオプトイン化)
- BridgeB カナリアはオプトイン継続(デフォルトの緑を崩さない方針)
メモ(今後の扱い)
- BridgeB は TTL 的に維持需要を見て緑化を後追い。Core 直行JSON→Interpreterを主経路とする。
- last_error_tag は代表 Fail 系をカバー済みString.indexOf bang / Array.set OOB / Map.set invalid 等)。不足があればケース追加で拡張する。