Files
bara-lang/PLAN.md
T
dimgigov ba0b300917 feat: add fullscreen TUI and project updates
- New TUI screens: Main Menu, Compile, Run, REPL, AI Generator, AI Settings, Help
- AI configuration persisted in ~/.config/cljnim/config.json
- Added illwill dependency for terminal UI
- Updated experiments, examples, docs, and core modules
2026-05-09 01:53:23 +03:00

4.8 KiB
Raw Blame History

План за Clojure/Nim — Ден на Победата Edition 🎖️

Направено (8-9 май 2026)

Ядро (Compiler Core)

  • loop/recur вече работи в компилиран код (критичен бъг оправен)
  • compile-lib режим — експортирани функции за library generation
  • 20+ компилаторни предупреждения изчистени
  • make check — build + test + всички примери

AI Интеграция (Phase AI-1 до AI-4) — 9 май 2026

  • AI-Assisted Errors — error cache, Reader/Emitter/Nim error coverage
  • AI Code Generation(ai/generate "...") в REPL, :ai команда, JSON REPL ai-generate
  • AI Optimization Hints(ai/optimize "..."), buildOptimizationPrompt
  • AI Debugging(ai/debug expr), buildDebugPrompt, JSON REPL ai-debug

Тестове

  • tests/test_macros.nim — 30 теста за макроси
  • tests/test_eval.nim — +30 нови теста (math, collections, agents, channels)
  • tests/test_emitter.nim — +3 теста за loop/recur

Документация

  • README.md, ROADMAP.bg.md, ARCHITECTURE.md синхронизирани
  • LICENSE файл добавен

Нови Target-и

  • experiments/web-target/ — Clojure → Nim → JS
  • experiments/native-lib/ — Clojure → Nim → C shared library
  • experiments/wasm-target/ — WASM skeleton

План за 9 май — AI Интеграция (DeepSeek / Xiaomi MiMo)

Phase AI-1: AI-Assisted Error Messages

Цел: Когато cljnim compile fail-не, AI анализира грешката и дава обяснение на български/английски.

Имплементация:

  • src/ai_assist.nim — Error cache за чести грешки (in-memory, 50 записа, TTL 1 час)
  • ReaderError/EmitterError coverage — AI обяснения за грешки на всички нива (reader, emitter, Nim compiler)
  • Интеграция с DeepSeek API (вече беше)
  • Cache за чести грешки

Phase AI-2: AI Code Generation в REPL

Цел: Генериране на Clojure функции от описание.

user> (ai/generate "функция за бързо сортиране на вектор")
" (defn quicksort [v] ...)"

Имплементация:

  • ai/generate builtin в eval.nim (interpreter)
  • :ai <desc> в human REPL (вече беше)
  • ai-generate op в JSON REPL

Phase AI-3: AI Optimization Hints

Цел: Компилаторът използва AI за избор на алгоритми.

user> (ai/optimize "(defn sum [nums] (reduce + nums))")
"Consider using transients for large collections..."

Имплементация:

  • ai/optimize builtin в eval.nim
  • :optimize <code> в human REPL
  • ai-optimize op в JSON REPL
  • buildOptimizationPrompt в ai_assist.nim

Phase AI-4: AI Debugging

Цел: REPL команди за анализ на runtime поведение.

user> (ai/debug (factorial 5))
🤖 AI Analysis:
- factorial(5) = 120 (коректно)
- Време: O(n) рекурсия

Имплементация:

  • ai/debug special form в eval.nim (raw expression pre-evaluation)
  • :debug <expr> в human REPL
  • ai-debug op в JSON REPL
  • buildDebugPrompt в ai_assist.nim

Технически детайли за AI интеграция

DeepSeek API

  • Endpoint: https://api.deepseek.com/v1/chat/completions
  • Model: deepseek-chat или deepseek-coder
  • Български език: поддържа

Xiaomi MiMo

  • Endpoint: зависи от deployment
  • Може да се self-hostва

Архитектура

User Input → Clojure/Nim → Error/Request → AI Module → DeepSeek/MiMo API
                                            ↓
                                    Cached Response → User

Следващи стъпки (ядро)

  1. Обединяване на CljVal типоветеsrc/types.nim + lib/cljnim_runtime.nim + src/runtime.nim + lib/cljnim_runtime_js.nim — всички 4 файла вече имат идентичен CljKind enum (15 стойности)
  2. try/catch/finally — пълна имплементация в emitter — exception type вече се използва, binding e cljMap с :type и :message
  3. swap!/reset! в interpreter-а — вече беше имплементирано
  4. Reader edge cases-.5 negative floats, scientific notation 1e5/1.5e-3, unterminated string tests, negative float tests — 13 нови теста