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
40 lines
1.9 KiB
Markdown
40 lines
1.9 KiB
Markdown
# 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](en/index.md) | [Българска Документация](bg/index.md) |
|
|
|
|
## Quick Links
|
|
|
|
- **GitHub/GitLab:** [lisp-nim](https://gitlab.com/balvatar/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](07-clojure-test-suite.md) — 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
|