Files
bara-lang/ROADMAP.md
T

109 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Пътна Карта: Clojure/Nim (AI-First Edition)
## Фаза 0: Компилаторно Ядро ✅
- [x] Clojure Reader (EDN парсер)
- [x] AST → Nim Emitter
- [x] CLI (`compile`, `run`, `read`)
- [x] Специални форми: `def`, `defn`, `fn`, `let`, `if`, `do`, `quote`
- [x] Оператори: `+`, `-`, `*`, `/`, `=`, `<`, `>`
- [x] Функции: `println``echo`
- [x] Примери: `hello.clj`, `math.clj` (факториел)
## Фаза 1: AI-First REPL 🔄
**Цел:** REPL, който AI може да ползва през терминал без редактор.
### 1.1 Структуриран REPL
- [ ] JSON/EDN режим (`cljnim repl --json`)
- [ ] Batch evaluation (`cljnim run-batch script.clj --format json`)
- [ ] Структурирани грешки (line, column, type, message, trace)
- [ ] Метаданни в отговора (ms, ns, form, type)
### 1.2 Self-Describing Система
- [ ] `(doc fn)` — връща структурирани метаданни
- [ ] `(apropos "str")` — търсене на функции
- [ ] `(source fn)` — изходен код на функция
- [ ] `(ns-publics 'clojure.core)` — листване на публични символи
### 1.3 File Operations
- [ ] `(file/read "path")` — четене на файл
- [ ] `(file/write "path" "content")` — запис на файл
- [ ] `(file/append "path" "content")` — добавяне
- [ ] `(file/ls "dir")` — листване на директория
- [ ] `(file/exists? "path")` — проверка
### 1.4 Git Operations (вградени)
- [ ] `(git/status)` — текущ статус
- [ ] `(git/diff)` — разлики
- [ ] `(git/add "file")` — stage
- [ ] `(git/commit "msg")` — commit
- [ ] `(git/push)` — push
- [ ] `(git/log)` — история
## Фаза 2: Persistent Структури от Данни
**Цел:** Истински Clojure immutable структури.
- [ ] **Persistent Vector** (Hash Array Mapped Trie)
- [ ] **Persistent Map** (HAMT)
- [ ] **Persistent Set**
- [ ] `conj`, `assoc`, `dissoc`, `get`, `get-in`
- [ ] `nth`, `first`, `rest`, `last`, `count`
## Фаза 3: Clojure Core Библиотека
**Цел:** Достатъчно функции за реални скриптове.
### 3.1 Seq функции
- [ ] `map`, `filter`, `reduce`
- [ ] `take`, `drop`, `partition`
- [ ] `concat`, `interleave`
- [ ] `range`
### 3.2 Низове и IO
- [ ] `str`, `pr-str`, `println`, `prn`
- [ ] `slurp`, `spit`
- [ ] `read-line`
### 3.3 Мета
- [ ] `meta`, `with-meta`, `vary-meta`
- [ ] `type`, `instance?`
## Фаза 4: Макро Система
**Цел:** `defmacro` да работи.
- [ ] `macroexpand`, `macroexpand-1`
- [ ] `syntax-quote`, `unquote`, `unquote-splicing`
- [ ] `gensym`
- [ ] Core макроси: `->`, `->>`, `and`, `or`, `when`, `cond`
## Фаза 5: Nim Interop
**Цел:** Достъп до целия Nim ecosystem.
- [ ] `(nim/import "strutils")` — import на Nim модул
- [ ] `(nim/ffi "math.h" :functions [["sin" :double [:double]]])` — C FFI
- [ ] `(nim/call "strutils.join" ", " ["a" "b"])` — извикване
## Фаза 6: AOT Компилация + REPL
**Цел:** Бързо стартиране на скриптове.
- [ ] AOT компилация на цели проекти
- [ ] Кеширане на компилирани модули
- [ ] REPL в self-hosted режим (като ClojureScript)
## Фаза 7: Многонишковост
- [ ] **Atoms** (CAS)
- [ ] **Agents**
- [ ] **core.async** channels (упростен вариант)
## Текущ Фокус
**Фаза 1 — AI-First REPL**
Следваща задача: `cljnim repl --json` с batch evaluation и структурирани отговори.