# 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+