a9ad83c509
- 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
1.9 KiB
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 | Българска Документация |
Quick Links
- 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
- Native HAMT Persistent Data Structures — Built from scratch in Nim (Persistent Vector, Map, Set with structural sharing)
- Multiple Targets — Native binary, shared library (.so/.dll), WASM, and JavaScript from one codebase
- AOT Compiler — Clojure → Nim → C → native, running at C speed
- Nim/C Interop — Direct FFI without JVM bridging overhead
- AI-Native Tooling — Built-in AI integration for code generation, optimization, and debugging
- Concurrency Without JVM — Atoms, Agents, and core.async channels without Java threads
- Tiny Binaries — Single executables under 1MB with no runtime dependencies