Files
hakorune/docs/private/roadmap/phases/phase-20.18/TASKS.md

1.9 KiB
Raw Blame History

Phase 20.18 — Tasks & Checklist

P0 — Null/Void 固定(言語+VM+Core+Docs

  • Parser: null/void を予約語として受理AST: NullLiteral/VoidLiteral
  • MIR: ConstValue に Null/Void を追加emit/reader/verifier/print
  • VM: VMValue::Null 追加、to_bool_vm/eq_vm/to_string_vm に Null を追加
  • Singleton: NullBox/VoidBox の Lazy static 化to_nyash_box で変換)
  • Core: Array/Map の SSOT へ収束get/pop→Null、set/clear/push→Void、delete→値 or Null、set 不正→Fail
  • Smokes: null/void identity/boolean、array/mapget/pop/delete/invalid set
  • Docs: vm-core / gate-c-core-routing / INDEX / phase-20.18 README を更新

Core/API

  • Array.try_get/1ok=value, err=E_OOB
  • Array.try_pop/0ok=value, err=E_EMPTY
  • Map.try_get/1ok=value, err=E_NOT_FOUND
  • String.to_i64/0ok=i64, err=E_PARSE
  • String.to_f64/0ok=f64, err=E_PARSE

Parser/Lowering

  • let a?=/a!= の受理
  • if let ok(v) = … の受理
  • Lowering: ? → select, ! → branch+trap, iflet → branchallocなし

Verifier/Diagnostics

  • 例外タグE_OOB/E_EMPTY/E_NOT_FOUND/E_PARSEの固定
  • HAKO_TRY_API=1 gate での動作保証

Plugins段階更新

  • MapBox: get 欠落→Null、delete→値 or Null、clear→Void、set→Void不正→E_INVALID_*
  • ArrayBox: get/pop 欠落→Null、push/set/clear→Void、set OOB→E_OOB
  • HostHandleRouter: Core 先行経路の優先(未更新プラグインの影響を遮断)

Smokesquick, optin

  • try_get: ok/err + a?/a!/if-let ok
  • try_pop: ok/err + a?/a!
  • map.try_get: ok/err + 糖衣
  • string.to_i64/to_f64: ok/errstdout/rc/タグ)

Docs

  • result-semantics.mdcase-by-case
  • optional-semantics.md に 20.18 方針リンク追記
  • guides/testing-guide.md に観測方法stdout/rc/タグ)補足