Этот план показывает приоритеты и степень готовности, а не обещанные даты.
Сейчас
- Текущий публичный продукт включает устанавливаемый Stock Binary Media Kernel Application Loop.
- Компилятор, среда выполнения, установочный пакет npm, артефакты, документация и Playground обозначают один текущий продукт.
- Установленные нативные продукты и продукты Python работают автономно, управляемые браузерные продукты владеют своим статическим комплектом и границей локальных данных, а сгенерированные сервисы — ограниченными полномочиями входящего HTTP, изоляцией, сроками выполнения, наблюдением и завершением.
- Изменяемый
ByteBufferфиксированной длины поддерживает непрерывную двоичную обработку, а неизменяемыйBytesостаётся снимком и транспортным значением для поддерживаемых целей нативной генерации, Python, Web и Web Worker. - Поддерживаемое многомодульное ядро CodeImage собирается установленным штатным Топазом, показывает, что нативная специализация применяется только к формам, допустимость которых установлена проверкой, и сохраняет точные байты и ошибки в артефактах Web и Worker, работающих без исходного пакета Топаза.
- При изменении связанной реализации выполняются целевые дифференциальные проверки. Полные кроссплатформенные и дифференциальные кампании остаются для RC публичного минорного выпуска, которому они принадлежат.
Далее
- Прежде чем переносить логику компилятора, сделать его этапы детерминированными и сравнимыми и сохранить восстанавливаемую исходную реализацию на Rust.
- Поэтапно перенести на проверяемый Топаз ядро компилятора — от лексического анализа до генерации исходного кода Rust. Rust остаётся реализацией по умолчанию до достижения фиксированной точки и завершения периода официальной поддержки двух реализаций.
- Сохранять без регрессий циклы HTTP-сервиса, локальных данных, браузера, нативного исполнения, Python и двоичных медиа.
- Не создавать отдельный диалект или удобный синтаксис только для компилятора. Даже подтверждённая нагрузкой проблема требует отдельного решения об изменении языка или границы возможностей.
Граница выпуска
Штатный компилятор, поддерживаемая проверка CodeImage, устанавливаемые продукты и все видимые пользователю идентификаторы вместе переходят к имени «Топаз 5.11.0». Внутренние этапы, создавшие эту границу, остаются в Истории.
Позже
- Сделать самокомпилируемое ядро реализацией по умолчанию лишь после воспроизводимых результатов Stage 1 и Stage 2, согласия двух установленных реализаций и независимой проверки пути восстановления через Rust.
- Считать самокомпиляцию этапом реализации, а не автоматическим основанием для новой основной версии. Для неё по-прежнему нужен реальный несовместимый пользовательский контракт.
- Не включать в этот этап общую нативную раскладку составных значений, произвольный FFI к среде выполнения, новый Web ABI, SIMD, браузерные сетевые запросы, исходящую сеть, удалённую публикацию пакетов, каркасы маршрутизации и промежуточной обработки, общее состояние сервера, базы данных, завершение TLS, WebSocket и новый синтаксис.
- Сохранять старые режимы языка как явные входы совместимости, а не параллельные текущие продукты.
Ограниченные интеграционные свидетельства
Записи интеграции LIT и Lispex остаются полезными внутренними свидетельствами совместимости и регрессий. Они не определяют очередь выпусков, не делают LIT публичным бэкендом Топаза и не доказывают эквивалентность всего языка. Крупные кампании LIT, N-way, мутационной и дифференциальной проверки запускаются лишь при изменении принадлежащей им семантики или когда они нужны конкретному кандидату выпуска.
Исследования
- Расширять дифференциальное тестирование и фаззинг, которые находят неверное понимание языка генераторами кода.
- Рассматривать проверку моделей и механизированные доказательства только для конкретных и воспроизводимых результатов.
- Оставить широкую оптимизацию, асинхронный синтаксис, перехват ошибок выполнения, API графем и пользовательские шаблоны исследовательскими темами до отдельного решения по языку.