Files
bara-lang/docs/en/index.md
T
dimgigov a9ad83c509 fix: general equality (=) for all types, add type predicates & collection fns, test suite docs
- Fix: = now uses cljEqual/cljMultiEqual instead of numeric-only cljNumEq,
  so (= :a :a), (= "a" "a"), (= [1 2] [1 2]), (= nil nil) etc return true
- Fix: ns forms inside unwrapped (do ...) are skipped instead of emitting
  broken Nim comments inside cljRepr()
- Fix: defmacro forms go to defs section, not wrapped in discard cljRepr()
- Add 18 type predicates: keyword?, symbol?, string?, number?, integer?,
  float?, vector?, map?, set?, list?, seq?, coll?, sequential?, fn?,
  boolean?, true?, false?, some?
- Add collection fns: second, ffirst, nfirst, peek, pop
- Add keyword/symbol ops: keyword, symbol, name, namespace, key, val
- Update eval interpreter = to handle structural collection equality
- Add test_single.py + test_vals.clj for Clojure test suite runner
- Add docs/en/07 and docs/bg/07 for cross-dialect test suite compatibility
- Update README with test suite documentation link
2026-05-09 12:17:10 +03:00

1.9 KiB

Clojure/Nim Documentation

A Clojure dialect that compiles to Nim → C → native binaries. The only standalone Clojure implementation completely free from the Java ecosystem.

Choose Language / Избор на език

🇬🇧 English 🇧🇬 Български
English Documentation Българска Документация
  • GitHub/GitLab: lisp-nim
  • Build: make build && make check
  • Tests: 276+ tests across 8 test suites
  • AI Integration: DeepSeek API, OpenAI-compatible, Xiaomi MiMo
  • Test Suite: Clojure Test Suite Compatibility — cross-dialect compliance testing

Why Clojure/Nim?

Unlike every other Clojure dialect, Clojure/Nim has zero dependency on the Java ecosystem — no JVM, no GraalVM, no Google Closure Compiler, no Java standard library.

Dialect Java Ecosystem Dependency
Clojure (JVM) Full — runs on JVM
ClojureScript Heavy — Google Closure Compiler
Babashka Medium — GraalVM native-image
Clojure/Nim None — completely standalone

Unique Advantages

  1. Native HAMT Persistent Data Structures — Built from scratch in Nim (Persistent Vector, Map, Set with structural sharing)
  2. Multiple Targets — Native binary, shared library (.so/.dll), WASM, and JavaScript from one codebase
  3. AOT Compiler — Clojure → Nim → C → native, running at C speed
  4. Nim/C Interop — Direct FFI without JVM bridging overhead
  5. AI-Native Tooling — Built-in AI integration for code generation, optimization, and debugging
  6. Concurrency Without JVM — Atoms, Agents, and core.async channels without Java threads
  7. Tiny Binaries — Single executables under 1MB with no runtime dependencies