Files
bara-lang/docs/ROADMAP.bg.md
T

83 lines
4.4 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.
# Пътна Карта за Разработка
## Фаза 0: Компилаторно Ядро ✅
- [x] Clojure Reader (EDN парсер)
- [x] Reader поддържа: списъци `()`, вектори `[]`, карти `{}`, низове, ключови думи, символи, числа, булеви, nil
- [x] Reader поддържа: quote `'`, syntax-quote `` ` ``, unquote `~`, unquote-splicing `~@`
- [x] Reader поддържа: коментари `;`, read-all
- [x] AST → Nim Генератор
- [x] CLI (`compile`, `run`, `read`, `repl`)
- [x] Специални форми: `def`, `defn`, `fn`, `let`, `if`, `do`, `quote`
- [x] Специални форми: `when`, `cond`
- [x] Аритметични оператори: `+`, `-`, `*`, `/`
- [x] Оператори за сравнение: `=`, `not=`, `not`, `<`, `>`, `<=`, `>=`
- [x] Core функции: `println`, `map`, `filter`, `reduce`
- [x] Runtime типова система: `CljVal` с `nil`, `bool`, `int`, `float`, `string`, `keyword`, `symbol`, `list`, `vector`, `map`, `fn`, `atom`
## Фаза 1: Макро Система ✅
- [x] `macroexpand`, `macroexpand-1`
- [x] `syntax-quote`, `unquote`, `unquote-splicing`
- [x] `gensym`
- [x] `defmacro` (потребителски макроси)
- [x] Вградени макроси: `->`, `->>`, `and`, `or`, `when`, `when-not`, `cond`
- [x] Вградени макроси: `cond->`, `cond->>`, `doto`, `as->`, `some->`, `some->>`
- [x] Вградени макроси: `for`, `doseq`, `dotimes`
- [x] Вградени макроси: `when-let`, `if-let`
- [x] Вградени макроси: `comment`, `assert`, `with-open`
## Фаза 2: REPL и Инструменти ✅
- [x] Човешки REPL (`:help`, `:defs`, `:clear`, `:ns`, `:quit`)
- [x] JSON REPL (`--json`) със структуриран I/O
- [x] Batch оценка (`eval-batch`)
- [x] Структурирани грешки (тип, съобщение, форма, ред)
- [x] Персистентност на сесията за `def`/`defn`
## Фаза 3: Nim Interop ✅
- [x] Извикване на Nim функции: `(nim/math/sin x)`, `(nim/strutils/toUpper s)`
- [x] C FFI през Nim `importc`
## Фаза 4: AI-Native Инструменти ✅
- [x] Файлови операции: `(file/read "path")`, `(file/write "path" "content")`, `(file/append "path" "content")`
- [x] Файлови операции: `(file/ls "dir")`, `(file/exists? "path")`
- [x] Git операции: `(git/status)`, `(git/commit "msg")`, `(git/push)`
- [x] Git операции: `(git/diff)`, `(git/log)`
- [ ] nREPL протокол съвместимост
- [ ] Tool-call формат за интеграция с AI frameworks
## Фаза 5: Persistent Структури от Данни
- [ ] Persistent Vector (Hash Array Mapped Trie)
- [ ] Persistent Map (HAMT)
- [ ] Persistent Set
- [ ] `conj`, `assoc`, `dissoc`, `get`, `get-in`
- [ ] `nth`, `first`, `rest`, `last`, `count` върху persistent колекции
- [ ] Transients за batch мутации
## Фаза 6: Clojure Core Библиотека
- [ ] `range`, `repeat`, `cycle`, `iterate`
- [ ] `take`, `drop`, `partition`, `interleave`, `concat`
- [ ] `str`, `pr-str`, `println`, `prn`
- [ ] `slurp`, `spit`, `read-line`
- [ ] `meta`, `with-meta`, `vary-meta`
- [ ] `type`, `instance?`, `satisfies?`
## Фаза 7: Компилация на Проекти
- [ ] Компилиране на цели проекти (не само отделни файлове)
- [ ] Система за namespaces (`ns`, `require`, `use`)
- [ ] Кеширане на модули за по-бърз REPL старт
- [ ] Резолюция на зависимости
## Фаза 8: Self-Hosted REPL
- [ ] Компилиране на форми в паметта (без temp файлове)
- [ ] Бърз REPL старт (< 100ms)
- [ ] Hot code reloading
## Фаза 9: Конкурентност
- [ ] Atoms (compare-and-swap)
- [ ] Agents
- [ ] core.async channels (упростен вариант)
## Известни Проблеми
- `->>` threading macro с вложени `map`/`reduce` изисква правилен macro expansion контекст
- REPL дефинициите се прекомпилират от нулата при всяка оценка (бавно, но коректно)
- Няма истински persistent структури от данни (runtime използва Nim seq/tables)