Интегрированная дорожная карта разработки Wave + Whale v2
Все этапы
предварительная альфа → предварительная бета → альфа → бета → rc → релиз
Этап предварительной беты
Цель: завершение фронтенда языка Wave + реализация всех функций с использованием LLVM бэкенда
Основные особенности
-
Используется только LLVM (Whale отсутствует)
-
Добавления к грамматике отсутствуют, реализованы только существующие спецификации
-
Стабилизация структуры с фокусом на фронте: сообщения об ошибках, проверка типов, области видимости переменных и т.п.
Область реализации
-
Объявление переменных, вывод, операции
-
Определение и вызов функций
-
if / else if / else
-
while / break / continue
-
Вывод формата, указание типа
-
Проектирование указателей (в формате
ptr<T>
) -
Проектирование массивов (в формате
array<T, N>
) -
Проверка типов и структурное AST
Используемые технологии
-
Rust (весь компилятор Wave)
-
LLVM (генерация IR, выполнение AOT)
-
inkwell / llvm-sys
Этап альфа
Цель: начало внедрения Whale, параллельное использование с LLVM / начало реализации бэкенда на базе Whale
Основные особенности
-
LLVM является бэкендом по умолчанию
-
Whale - опциональный бэкенд
-
При выполнении кода Wave можно использовать опцию
--backend
для переключения
wavec run main.wave --backend=whale
wavec run main.wave --backend=llvm
Работы, связанные с Whale
-
Проектирование и определение структуры Whale IR (инструкции, значения, блоки и т.д.)
-
Реализация IR генератора для Whale
-
Генератор кода Whale (ассемблерный или бинарный)
-
Реализация типов, возможных только в Whale (
i1024
, продвинутые указатели и т.д.)
Контрольная точка
-
Вывод 'Hello World' с помощью Whale
-
Объявление/присвоение переменных в Whale
-
Реализация инструмента отладки Whale IR
-
Обработка типов указателей в Whale
-
Преобразование Wave в Whale IR
Этап бета-версии
Цель: полный переход на Whale, удаление LLVM. Оптимизация комбинации Whale + Wave
Основные характеристики
-
Используется только Whale
-
Полное удаление LLVM (зависимости и модули)
-
Фокус на оптимизации кода
-
От IR до выполнения быстро и эффективно
Область оптимизации
-
Проектирование оптимизационного прохода Whale IR
-
Улучшение скорости генерации кода Whale
-
Полная поддержка всей грамматики Wave в Whale