- Fix MIR v0 shape in lowers: functions[] + name="main" + blocks.id * lower_return_int_box.hako * lower_return_binop_box.hako - runner_min: adopt LowerReturnBinOpBox before ReturnInt - Add PRIMARY no-fallback canaries (all PASS): * return-binop / array-size / load-store / return-logical (OR) - Fix phase2043 runner_min canary alias (Runner -> BuilderRunnerMinBox) - Update docs: phase-20.45 README (PRIMARY reps), CURRENT_TASK progress Ancillary: keep builder/provider/canary files in sync; no unrelated behavior changes.
Hakorune Lang Line — Rust-less Kernel (C ABI)
Scope
- This
lang/tree hosts the script-driven C ABI kernel artifacts for Phase 20.9+. - Goal: keep the runtime data plane callable without Rust on the hot path (Hakorune → LLVM → C ABI).
Principles
- Separation: do not mix Rust crates or cargo-specific layout under this tree.
- Ownership & ABI:
- Any
char*returned across the ABI is owned by the callee and must be freed viahako_mem_free(). - Do not mix CRT
free()across boundaries.
- Any
- Fail‑Fast: no silent fallbacks. Missing symbols must be observable via short diagnostics.
Layout (initial)
c-abi/— C shim(s) and headers for the minimal kernel surfaceREADME.md— responsibilities, build notes, platform caveatsinclude/— public headers (mirrored or thin wrappers)shims/— libc-backed shim(s) for canaries and local testing
Build & Link (dev)
- C shim: build a shared library to satisfy symbols for the LLVM line canaries.
- Link flags example:
- Linux:
-L$(pwd)/target/release -Wl,-rpath,$(pwd)/target/release -lhako_kernel_shim
- Linux:
Non‑Goals
- Plugin loader, HostBridge router, Box/Type system — kept in Rust.
Selfhost Launcher (AOT)
- Build:
lang/build/build_runner.sh→ produceslang/bin/hakorune - Requirements: LLVM 18 dev (
llvm-config-18) - Run:
lang/bin/hakorune
Notes
- The launcher is minimal and prints a stable line
[lang-launcher] hello. - This binary is a stepping stone towards a full selfhosted CLI built from Hakorune scripts.