28 lines
1014 B
Markdown
28 lines
1014 B
Markdown
# Phase‑33 — Execution Plan (Native LLVM AOT)
|
||
|
||
## Milestones
|
||
|
||
1) Skeleton & Contract (this phase)
|
||
- Add C ABI header + stub implementation returning NYI
|
||
- CMake project in `c/llvm-native/` without LLVM linkage
|
||
- Document API and error policy; keep defaults unchanged (llvmlite)
|
||
|
||
2) Minimal Codegen
|
||
- Implement JSON→IR→OBJ for: const i64 / ret / binop / compare+branch
|
||
- Target: Linux x86_64 only; opt-level configurable
|
||
- Add canaries mirroring existing AOT tests (return/binop/if)
|
||
|
||
3) Linking
|
||
- Implement `.o + libhako_kernel.a → exe`
|
||
- Provide flags for relocation model / LTO (optional)
|
||
- Add canaries to assert rc/last-line parity with VM/llvmlite
|
||
|
||
4) Packaging & Toggle
|
||
- Provide `--aot-engine native` / `HAKO_AOT_ENGINE=native`, fall back to llvmlite if native unavailable
|
||
- Doc: system LLVM vs. bundled releases; size/perf trade-offs
|
||
|
||
## Acceptance (Phase 33)
|
||
- C ABI skeleton present and isolated; repository builds unchanged by default
|
||
- Plan/README written; follow-up work scoped to Phase 34+
|
||
|