Skip to content

Lupus V0.2

Choose a tag to compare

@KUARU-dotcom KUARU-dotcom released this 09 Sep 17:25
· 6 commits to prototype since this release
68a7da6

🐺 Lupus V0.2 — The Rust Rewrite

Lupus V0.2 — это первый стабильный релиз интерпретатора, полностью переписанный на Rust. Мы отказались от Python-прототипа в пользу производительности, строгой типизации и модульной архитектуры.

Этот релиз знаменует переход от "эксперимента в одном файле" к полноценному языковому ядру.

🚀 Что нового

⚡ Полная переписка на Rust

Интерпретатор теперь работает на Rust. Это дало нам:

  • Мгновенный запуск: Никаких накладных расходов на старт Python VM.
  • Безопасность памяти: Строгая типизация на этапе компиляции интерпретатора.
  • Модульность: Код разделен на логические компоненты (lexer, parser, ast, interpreter, environment), что упрощает поддержку и развитие.

🧠 Результаты бенчмарка (LLM Coding)

Мы протестировали дообученную модель Qwen 2.5 (merged-lupus-2bV2) на наборе из 100 алгоритмических задач.

  • Общий Pass Rate: 81% (81/100 задач решены верно).
  • Арифметика и Логика: 100% (идеальное понимание базовых операций).
  • Циклы и Списки: ~85-90% (уверенная работа с while, list, nth).
  • Рекурсия: ~80% (факториалы, Фибоначчи, GCD работают стабильно).

Сравнение: Базовая модель без дообучения (Qwen 3.5 2B) показывала ~45% на тех же задачах. Дообучение на датасете Lupus дало прирост +36%.

🛠 Технические детали реализации

  • Tree-Walk Interpreter: Классическая архитектура обхода AST.
  • Lexical Scoping: Корректная работа замыканий (lambda) и областей видимости.
  • Error Handling: Понятные сообщения об ошибках с указанием строки и колонки (на русском языке).
  • Built-ins: Реализованы все базовые функции спецификации V1.0 (print, int->str, string-append, list, nth, length, арифметика).

📦 Установка и запуск

Готовые бинарники

Скачайте архив для вашей ОС в разделе Assets ниже:

  • lupus-v0.2.0-linux-x86_64.tar.gz
  • lupus-v0.2.0-windows-x86_64.zip
# Linux
tar -xzf lupus-v0.2.0-linux-x86_64.tar.gz
./lupus hello.lupus

# Windows
Expand-Archive lupus-v0.2.0-windows-x86_64.zip
.\lupus.exe hello.lupus

Сборка из исходников

Требуется установленный Rust toolchain.

git clone https://github.com/KUARU-dotcom/Lupus.git
cd Lupus
cargo build --release
./target/release/lupus examples/hello.lupus

📝 Пример кода (Lupus)

;; Факториал с рекурсией
(define (factorial n)
  (if (= n 0)
    1
    (* n (factorial (- n 1)))))

(print (int->str (factorial 5))) ;; Вывод: 120

;; Работа со списками и циклами
(define-mutable sum 0)
(define-mutable i 1)
(while (<= i 10)
  (set! sum (+ sum i))
  (set! i (+ i 1)))

(print (int->str sum)) ;; Вывод: 55

🔜 Что дальше? (Roadmap)

В следующих версиях (V0.3+):

  • Расширение стандартной библиотеки (map, filter, fold).
  • Поддержка модулей и импортов.
  • Оптимизация хвостовой рекурсии.
  • FFI (вызов функций C/Rust).

Полная спецификация языка: Lupus V1.0 Specification