d763e25638
- Add lib/cljnim_pvec.nim: 32-way HAMT Persistent Vector with structural sharing - Migrate ckVector from seq[CljVal] to PersistentVector[CljVal] in runtime - Fix recursive pushLeaf bug (nil nodes at depth > 2) - Fix defn/if return value bug: replace discard with result = in proc bodies - Fix cljNth to accept CljVal index - Add len and [] overloads for PersistentVector seq compatibility - Add tests/test_pvec.nim (14 tests) - Update .gitlab-ci.yml to nim:2.2.10 and add test_pvec - Update docs/ROADMAP.md and add PHASE5_HAMT.md
Clojure/Nim
Диалект на Clojure, който се компилира до Nim, после до C, и накрая до native бинарен файл.
Какво е това?
Clojure/Nim е AI-first имплементация на езика Clojure за екосистемата на Nim. Вместо да работи върху JVM или JavaScript, компилира Clojure код директно до Nim, оттам до C, и накрая до native бинарен файл.
Защо?
- Native Performance: Компилира се до C през Nim. Без JVM warmup, без GC паузи.
- Малки Бинарни Файлове: Единични изпълними файлове, често под 1MB.
- Nim Ecosystem: Директен достъп до Nim и C библиотеки през FFI.
- AI-Native: Построен за AI агенти, работещи в терминал — структуриран JSON REPL, batch evaluation, git интеграция.
Бърз Старт
# Клониране
git clone https://gitlab.com/balvatar/lisp-nim.git
cd lisp-nim
# Изграждане
make build
# Изпълнение на файл
./cljnim run examples/hello.clj
# Човешки REPL
./cljnim repl
# AI REPL (JSON режим)
./cljnim repl --json
Примери
Hello World
;; examples/hello.clj
(println "Здравей, Nim свят!")
(println (+ 1 2 3))
$ ./cljnim run examples/hello.clj
Здравей, Nim свят!
6
Функции и Рекурсия
;; examples/math.clj
(defn square [x]
(* x x))
(defn factorial [n]
(if (= n 0)
1
(* n (factorial (- n 1)))))
(let [a 5]
(println (square a))
(println (factorial a)))
$ ./cljnim run examples/math.clj
25
120
AI-First REPL
Clojure/Nim е построен за AI агенти. JSON REPL предоставя структуриран I/O, идеален за програмно взаимодействие.
$ ./cljnim repl --json
{"status":"ready","ns":"user","mode":"json"}
> {"op":"eval","form":"(+ 1 2 3)"}
{"status":"ok","result":{"printed":"6"},"meta":{"ms":861}}
> {"op":"eval","form":"(defn square [x] (* x x))"}
{"status":"ok","result":{"type":"var","name":"square"}}
> {"op":"eval","form":"(square 5)"}
{"status":"ok","result":{"printed":"25"}}
> {"op":"quit"}
{"status":"ok","bye":true}
Документация
| Документ | Описание |
|---|---|
GUIDE.bg.md |
Ръководство за потребителя |
ARCHITECTURE.bg.md |
Архитектура и дизайн |
AI_FIRST.bg.md |
AI-first философия |
API.bg.md |
REPL API референция |
ROADMAP.bg.md |
Пътна карта за разработка |
Лиценз
MIT License — вижте LICENSE.