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

66 lines
4.2 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 — Tasks & Checklist
Status: Completed (docs pass); small follow-ups optional
Objectives
- AOT FFI 経路の導入既定OFFと短文診断の維持
- Runner → ModuleFunction 決定フック(挙動不変・ゲート)
- 配布レイアウトbin/dist`--emit-exe` UX の明文化
Deliverables
- [x] AotBox プラグインcompile/2, link/3— 内部は libhako_aot を呼び出し(共有コア)
- [x] AotBox スモークquick/plugins — 代表 PASS.o/.exe の生成確認)
- [x] AOT FFI既定OFF`HAKO_AOT_USE_FFI=1` で FFI 選択(最小命令→段階拡張)
- [x] UNSUPPORTED stub + 代表スモーク(期待=非ゼロ・短文観測)
- [x] dist/lib 既定探索libhako_llvmc_ffi.*と代表スモークSKIP基準
- [x] RustBackend const/binop/retAdd/Sub/Mul/Div/Mod+ aarch64 64bit 即値
- [x] RustBackend 負例スモークunsupported binop / malformed JSON
- [x] Runner 決定フック: `HAKO_USING_DECISION_FROM_LANG=1` ゲート実装(短文観測)
- [x] Runner 決定採用(最小): `HAKO_USING_DECISION_APPLY=1` 実装OK/NOOP/FAIL 短文)
- [x] Runner 決定フック: quick 代表スモーク PASS成功/負例)
- [x] AOT console ライン: リンク環境未整備は [SKIP]link unavailable方針整備時は PASSdocs 追記)
- [x] 配布: dist テンプレ構成bin/lib/include/docsを生成するタスクshape-only
- [x] tools/dist/make.sh 追加shape-only; WARN運用
- [x] CLI: `--emit-exe` 実装と docs 反映emit-onlyFailFast方針
- [x] CLI: `--emit-exe` 代表スモークquick/llvm
- [x] emit-exe PreflightFailFast— ny-llvmc/NyRT/libs の事前検証
- [x] Runner plugin init: HAKO_PLUGIN_CONFIG エイリアス対応+二重初期化の早期 return観測ログの安定化
— LLVM Script Builder計画に追加・optin
- [x] lang 側の箱化Module/Function/Builder/Types/Emit— README + LAYER_GUARD を含む
- [x] MVP v0const/binop/ret— 最小 JSON 直構築Facade/Wrapperで exe=0 を確認IR直構築は後続
- [x] v0 スモーク2本const_ret/binop— 生成→リンク→実行=0 を確認Facade/Wrappers
- [x] compare/branch/phiv1 最小)— 代表スモークPASSFacade/Builder
- [ ] call/externv2— hako_* C-ABI のみ受理、FailFast維持
- [x] extern 代表time.now_ms / JSON.stringify— Builder/Facade/スモーク追加
- [x] Builder: program_call_time_now_ms_ret0 / program_call_json_stringify_ret0
- [x] Facade: compile_link_call_time_now_ms / compile_link_call_json_stringify
- [x] Smokes: rust-aot wrappers 2本time.now_ms / JSON.stringify
- [x] Facade→Builder 委譲ret_i64— HAKO_LLVM_SCRIPT_BUILDER=1 で委譲
- [x] JsonShapeToMap.parse の実装lang/meta 最小スモーク
- [x] SSOT 消費の縮退fallbackの削減: env.console.log の重複を撤去)
- [ ] ドキュメント: guides/llvm-script-builder.mdSSOT/型/命令対応/ENV/責務境界/制限)
Implementation Checklist
1) Structure & Contracts
- [x] 入口=AotBoxプラグイン優先、小ライブラリ直結はフォールバック
- [x] 既定挙動不変FFIはopt-in、Runner 決定はゲートOFF
- [x] FailFastemit-exe preflight: ny-llvmc/NyRT/libs を即時検証)
- [x] dist/bin/lib/include/docs の責務分離と最小テンプレ生成
2) Docs & Smokes20.11 最終)
- [x] c-abi-aot.md: プラグイン優先/FFI探索/ENVnative/harness/rust/ENTRY/export追記
- [x] distribution.md: dist/lib 既定探索・起動例・短文診断を追記
- [x] getting-started.md: AOTはAotBox経由のガイドを追加
- [x] quick/rust-aot: emit-exe 代表、FFI dist/lib 既定探索、ENTRY観測のスモーク
- [x] quick/rust-aot: RustBackend 代表binop addと負例unsupported binop / malformed JSON
- [x] Runner 決定(正/負)スモーク一式(観測)
3) CI (shape-only)
- [x] run_local_checks: dist テンプレ生成WARN/ externs SSOT 生成STRICT時のみFAIL
Notes
- Cranelift 路線は実験Phase 20.11 では入口のみ議論/オプション設置)。
- Windows: MinGW/clang 依存時は SKIP/短文の方針を継続。