87d6028487
- Reader: maps, sets, syntax-quote, dispatch macros, metadata - Runtime: CljVal type system, 80+ core functions (collections, strings, math, IO) - Emitter: full CljVal-based code generation, macro expansion, inline fns - Macros: defmacro with compile-time evaluator, ->, ->>, and, or, when, cond, for, doseq - Nim Interop: nim/module/function syntax, auto-import, type mapping - CLI: cljnim -e '<code>' for quick evaluation - Tests: 60 unit tests (reader + emitter) - Benchmarks: AOT suite showing 543x startup, 679x factorial vs JVM Clojure - CI: GitLab CI pipeline - Runtime library: lib/cljnim_runtime.nim (1070+ lines)
34 lines
618 B
Makefile
34 lines
618 B
Makefile
.PHONY: build test clean run-example bench bench-aot
|
|
|
|
NIMCACHE = nimcache
|
|
|
|
build:
|
|
nim c -o:cljnim src/cljnim.nim
|
|
|
|
test:
|
|
nim c -r tests/test_reader.nim
|
|
nim c -r tests/test_emitter.nim
|
|
|
|
test-reader:
|
|
nim c -r tests/test_reader.nim
|
|
|
|
test-emitter:
|
|
nim c -r tests/test_emitter.nim
|
|
|
|
run-example: build
|
|
./cljnim run examples/hello.clj
|
|
|
|
bench:
|
|
bash benchmarks/run_benchmarks.sh
|
|
|
|
bench-aot:
|
|
bash benchmarks/run_aot_benchmarks.sh
|
|
|
|
clean:
|
|
rm -f cljnim
|
|
rm -rf $(NIMCACHE)
|
|
find . -name "*_generated.nim" -delete
|
|
find . -name "*_generated" -delete
|
|
find . -name "test_reader" -delete
|
|
find . -name "test_emitter" -delete
|