Files
bara-lang/experiments/native-lib/native_wrappers.nim
T
dimgigov 79cd9c08d8 chore: rebrand Clojure/Nim → Bara Lang across codebase
- Bulk replace Clojure/Nim → Bara Lang in src/, lib/, examples/, benchmarks/,
  experiments/, books/, LICENSE, cljnim.nimble, PLAN.md, AI_AGENT.md
- Rename book chapters: 05-clojure-nim.md → 05-bara-lang.md (en + bg)
- Update all chapter index links and anchors
- Replace project-specific 'Clojure' references with 'Bara Lang' in
  experiments/, src/ai_assist.nim, src/tui_screens.nim, src/emitter.nim,
  src/reader.nim, src/types.nim, lib/cljnim_runtime*.nim
- Keep legitimate JVM Clojure/ClojureScript/Clojure CLR references intact
2026-05-11 12:23:29 +03:00

24 lines
666 B
Nim

# C-friendly wrappers around Bara Lang-generated code
# Exports plain C types (int, char*) instead of CljVal
import cljnim_runtime
# Import the generated Bara Lang functions
include build/math
proc c_square*(x: cint): cint {.exportc, dynlib.} =
let r = square(cljInt(x.int64))
return r.intVal.cint
proc c_factorial*(n: cint): cint {.exportc, dynlib.} =
let r = factorial(cljInt(n.int64))
return r.intVal.cint
proc c_add*(a, b: cint): cint {.exportc, dynlib.} =
let r = add(cljInt(a.int64), cljInt(b.int64))
return r.intVal.cint
proc c_greet*(name: cstring): cstring {.exportc, dynlib.} =
let r = greet(cljString($name))
return r.strVal.cstring