Files
bara-lang/.gitlab-ci.yml
T
dimgigov 87d6028487 Phase 1-4: Reader, Runtime, Macros, Nim Interop — 543x faster than JVM Clojure
- 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)
2026-05-08 16:34:39 +03:00

33 lines
645 B
YAML

image: nimlang/nim:2.0.0
stages:
- test
- build
test:
stage: test
script:
- nim c -o:cljnim src/cljnim.nim
- nim c -r tests/test_reader.nim
- nim c -r tests/test_emitter.nim
- ./cljnim compile examples/hello.clj /tmp/hello.nim
- nim c -r /tmp/hello.nim
- ./cljnim compile examples/math.clj /tmp/math.nim
- nim c -r /tmp/math.nim
artifacts:
paths:
- cljnim
expire_in: 1 week
build-release:
stage: build
only:
- main
script:
- nim c -d:release -o:cljnim src/cljnim.nim
- nim c -d:release -o:/tmp/bench_hello.nim
artifacts:
paths:
- cljnim
expire_in: 1 month