Files
hakorune/docs/予定/native-plan/issues/phase6_box_ops_minimal.md

1.3 KiB
Raw Blame History

Phase 6: Box ops minimal in MIR/VM (RefNew/RefGet/RefSet, WeakNew/WeakLoad)

Summary

  • MIR/VM に Box 参照操作の最小セットを導入。Barrier はダミーで開始。

Scope

  • MIR 命令追加: RefNew, RefGet, RefSet, WeakNew, WeakLoad, BarrierRead/BarrierWrite(no-op)
  • Lowering: New/FieldAccess/MethodCall の最小対応(BoxCall は後続でも可)
  • VM: 上記命令の最小実行(参照テーブル/マップでOK

Tasks

  • src/mir/instruction.rs: 命令追加 + printer/verification 対応
  • src/mir/builder.rs: lowering最小ケース
  • src/backend/vm.rs: 命令実装
  • サンプル/スナップショットの追加

Acceptance Criteria

  • 新規サンプルで --dump-mir/--backend vm が成功Ref/Weak の基本動作)
  • weak の自動 null と fini() 後使用禁止の不変を壊さない

References

  • docs/nyash_core_concepts.mdweak/fini の不変条件)
  • Phase 5/5.1/5.2 Issuescontrol flow/exception/static Main lowering

Copilot Notes

  • まず RefNew/RefGet/RefSetWeakNew/WeakLoad の順で実装。Barrier は no-op でOK。
  • サンプルはトップレベル/関数内で回せる形から。BoxDeclaration 依存は避けても良い。