Repository navigation
Lupus V0.2
🐺 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.gzlupus-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