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
2.6 KiB
2.6 KiB
Clojure/Nim Документация
Clojure диалект, който се компилира до Nim → C → native бинарни файлове. Единствената самостоятелна Clojure имплементация, напълно независима от Java екосистемата.
Избор на език / Choose Language
| 🇧🇬 Български | 🇬🇧 English |
|---|---|
| Българска Документация | English Documentation |
Бързи връзки
- GitHub/GitLab: lisp-nim
- Build:
make build && make check - Тестове: 276+ теста в 8 тестови пакета
- AI Интеграция: DeepSeek API, OpenAI-compatible, Xiaomi MiMo
- Test Suite: Съвместимост с Clojure Test Suite — между-диалектно тестване за съответствие
Защо Clojure/Nim?
За разлика от всеки друг Clojure диалект, Clojure/Nim има нула зависимост от Java екосистемата — нито JVM, нито GraalVM, нито Google Closure Compiler, нито Java стандартна библиотека.
| Диалект | Зависимост от Java екосистемата |
|---|---|
| Clojure (JVM) | Пълна — работи върху JVM |
| ClojureScript | Голяма — Google Closure Compiler |
| Babashka | Средна — GraalVM native-image |
| Clojure/Nim | Никаква — напълно самостоятелен |
Уникални предимства
- Native HAMT Persistent структури от данни — Изградени от нулата в Nim (Persistent Vector, Map, Set със структурно споделяне)
- Множество таргети — Native бинарен файл, shared library (.so/.dll), WASM и JavaScript от един codebase
- AOT Компилатор — Clojure → Nim → C → native, работи със скоростта на C
- Nim/C Interop — Директен FFI без overhead от JVM bridging
- AI-Native Tooling — Вградена AI интеграция за генериране на код, оптимизация и дебъгване
- Конкурентност без JVM — Atoms, Agents и core.async channels без Java нишки
- Миниатюрни бинарни файлове — Единични изпълними файлове под 1MB без runtime зависимости