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

28 lines
2.1 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.11 — AOT FFI + AotBox Plugin + Runner Decision脱Rust/配布前進)
目的
- AOT の実用導線を「小ライブラリ + プラグインAotBox」で公開し、将来は「プロセス → インプロセス(FFI)」へ段階移行。
- UsingResolver の“本配線”へ一歩前進(挙動不変のまま runner→ModuleFunction 決定導線を細く接続)。
- EXE 配布 UX を整える(ユーザーが自作ハコルネスクリプトを簡単に exe 化できる導線)。
範囲(変更は小差分・既定不変)
- AOT: 入口は AotBox プラグインcompile/2, link/3を優先。内部で CABI 小ライブラリ → FFI(native/harness/rust) を委譲。
- 直結の小ライブラリ経路は後方互換として温存(プラグイン未ロード時のフォールバック)。
- Runner: UsingResolver.resolve/1 の結果JSONを受け取り、Rust 側は検証/整流へ寄せるためのフックをゲート配下に追加。
- 配布: bin ランチャと dist レイアウトの雛形を整備。OS 別アーティファクトの配置規約を固定。
ゲート
- `HAKO_AOT_USE_FFI=1`既定OFF: ny-llvmc を inprocess で呼ぶ FFI 経路に切替(現時点スタブ)。
- `HAKO_AOT_USE_PLUGIN=1`既定OFF: emit-exe 経路を AotBox 経由に切替(段階導入・挙動不変)。
- `HAKO_CODEGEN={llvm|cranelift}`(既定=llvm: 将来の Cranelift 実験を optin で許可。
- `HAKO_USING_DECISION_FROM_LANG=1`既定OFF: runner→ModuleFunction の決定を使用(失敗は FailFast・短文
受け入れ基準(概要)
- AOT: 小ライブラリ・プラグイン・CLI の3経路が依存あり環境で PASS従来のプロセス版も PASS
- Runner: 決定フック ON でも挙動不変(短文観測のみ)。負例は FAIL を短文で観測できる。
- 配布: dist テンプレがビルドで生成可能、bin ランチャで OS 自動委譲が動作。
参照
- phase-20.10Runner/UsingResolver 観測、c-abi-aot.md、runner-facade.md、env-variables.md
- plugins/AotBox の配置・ビルド方針)