Files
hakorune/lang
nyash-codex 96ea3892af phase-20.45: PRIMARY no-fallback reps + MIR v0 shape fixes
- 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.
2025-11-05 18:57:03 +09:00
..

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 via hako_mem_free().
    • Do not mix CRT free() across boundaries.
  • FailFast: no silent fallbacks. Missing symbols must be observable via short diagnostics.

Layout (initial)

  • c-abi/ — C shim(s) and headers for the minimal kernel surface
    • README.md — responsibilities, build notes, platform caveats
    • include/ — 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

NonGoals

  • Plugin loader, HostBridge router, Box/Type system — kept in Rust.

Selfhost Launcher (AOT)

  • Build: lang/build/build_runner.sh → produces lang/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.