1.6 KiB
1.6 KiB
Plan — Phase 20.18(Null/Void 固定+Result ケース別+糖衣)
- Null/Void の固定(P0)
- 言語: 予約語
null/voidをリテラルとして受理 - MIR JSON v0: ConstValue に
Null/Voidを追加 - VM:
VMValue::Nullを追加(boolean/equality/stringify 対応) - Singletons:
NullBox/VoidBoxを Lazy static に(to_nyash_box() で変換)
- API 最小追加(Core/Gate‑C 実装→Hakorune VM 委譲)
- Array.try_get/1, Array.try_pop/0, Map.try_get/1
- String.to_i64/0, String.to_f64/0
- 糖衣の受理と Lowering(ゼロアロケーション)
- Parser:
let a?=/a!=とif let ok(..)を受理 - Builder:
?→select(ok,value,Void),!→br ok/ trap, if-let→br ok/else
- 例外タグの安定化
- E_OOB / E_EMPTY / E_NOT_FOUND / E_PARSE を固定
- スモーク(opt‑in, quick)
- try_get/try_pop(ok/err)+
?/!/if-let ok - to_i64/to_f64(ok/err)
- Gate & Docs
- Gate:
HAKO_TRY_API=1(既定OFF) - Docs: result-semantics(case-by-case)/ optional-semantics(link更新)/ testing-guide 補足
- Docs: vm-core に Null/Void/rc 規則を追記、phase-20.18 README/TASKS を同期
- Plugins(互換-段階更新)
- Map/Array の意味論を SSOT に揃える(get/pop 欠落→Null、push/set/clear→Void、delete→値 or Null、set の不正→Fail)
- HostHandleRouter/内蔵ルーターで未更新プラグインを回避できる経路を優先(Core先行)
- 後段(20.19+ 任意)
- Result を“値版”へ({i1 ok, payload})。最適化の効果測定とゼロコストの検証。