О Топазе

План развития

Текущие приоритеты продукта и граница следующего публичного выпуска.

Этот план показывает приоритеты и степень готовности, а не обещанные даты.

Сейчас

  • Текущий публичный продукт включает явный Self Front-end Preview поверх Bootstrap Foundations и установленных прикладных циклов.
  • Компилятор, среда выполнения, установочный пакет npm, артефакты, документация и Playground обозначают один текущий продукт.
  • Компилятором по умолчанию остаётся точно восстанавливаемый Rust Stage 0. Установленный Self Front-end Preview выполняет полный встроенный фронтенд, написанный на Топазе, до фазы Typed и без исходной программы сравнивает наблюдение с Rust Stage 0.
  • Явно выбираемый установленный Stage 1 Compiler Preview потребляет путь производства на Топазе до созданного Rust, фиксирует полное происхождение и не скрывает откат целевой программы.
  • Явный выбор --compiler self поддерживается через установленный C2 на объявленных маршрутах компилятора текущего режима. Rust остаётся компилятором по умолчанию и для восстановления, а неподдерживаемые маршруты отклоняются до чтения исходников и создания результата.
  • C2 выдаёт полный версионированный семантический продукт с профильными решениями, пониженным представлением, созданным Rust и детерминированным происхождением; адаптер среды только проверяет и декодирует его.
  • Установленные нативные продукты и продукты Python работают автономно, управляемые браузерные продукты владеют своим статическим комплектом и границей локальных данных, а сгенерированные сервисы — ограниченными полномочиями входящего HTTP, изоляцией, сроками выполнения, наблюдением и завершением.
  • Изменяемый ByteBuffer фиксированной длины поддерживает непрерывную двоичную обработку, а неизменяемый Bytes остаётся снимком и транспортным значением для поддерживаемых целей нативной генерации, Python, Web и Web Worker.
  • Поддерживаемое многомодульное ядро CodeImage собирается установленным штатным Топазом, показывает, что нативная специализация применяется только к формам, допустимость которых установлена проверкой, и сохраняет точные байты и ошибки в артефактах Web и Worker, работающих без исходного пакета Топаза.
  • При изменении связанной реализации выполняются целевые дифференциальные проверки. Полные кроссплатформенные и дифференциальные кампании остаются для RC публичного минорного выпуска, которому они принадлежат.

Далее

  • Готовить Self-hosted Default только после доказательства того, что поддерживаемый self-компилятор сохраняет гарантии установленного продукта, восстановления, ресурсов и отката.
  • На всём протяжении перехода сохранять Rust Stage 0 независимо установленным и выбираемым.
  • Сохранять без регрессий циклы HTTP-сервиса, локальных данных, браузера, нативного исполнения, Python и двоичных медиа.
  • Не создавать отдельный диалект или удобный синтаксис только для компилятора. Даже подтверждённая нагрузкой проблема требует отдельного решения об изменении языка или границы возможностей.

Граница выпуска

Bootstrap Foundations, Self Front-end Preview до Typed, явный производитель Stage 1 и фиксированная точка Stage 2 доступны в Топазе 5.15.0 / topaz-5.15. Stage 1 запускается командой topaz compiler preview [entry] --producer stage1 --terminal rust-source --out-dir <directory>. Установленный маршрут фиксирует полное происхождение производителя и созданного кода, работает без исходников компилятора, сохраняет независимое восстановление Rust Stage 0 и не скрывает откат целевой программы. Завершённые этапы остаются в Истории. Явный маршрут Stage 2 запускает отдельный образ C2 и создаёт свежий R2 из встроенного набора исходников компилятора. Проверка фиксированной точки фиксирует равенство декодированной семантики компилятора, ограниченных канонических наблюдений и исходных байтов R1/R2, сохраняя явные различия происхождения. Проверка установленного продукта без исходников и ограниченные двухдвижковые регрессии Application Loop, границы компилятора и стандартной библиотеки, LIT, CodeImage и изолированного Lispex завершены; полная таблица маршрутов и точные ворота публичного кандидата также зафиксированы. Rust Stage 0 остаётся движком по умолчанию и независимого восстановления; Stage 2 — явно выбираемый Preview, а не самокомпилируемая реализация по умолчанию.

Топаз 5.15.0 / topaz-5.15 — результат Supported Dual Toolchain. Следующий условный публичный результат — Топаз 5.16.0 / topaz-5.16 Self-hosted Default; он открывается только после собственного доказательного рубежа. Подробные этапы 5.15.x ещё не выбраны, поэтому это граница результата, а не обещанный график или очередь реализации.

Позже

  • Сделать самокомпилируемое ядро реализацией по умолчанию лишь после воспроизводимых результатов Stage 1 и Stage 2, согласия двух установленных реализаций и независимой проверки пути восстановления через Rust.
  • Считать самокомпиляцию этапом реализации, а не автоматическим основанием для новой основной версии. Для неё по-прежнему нужен реальный несовместимый пользовательский контракт.
  • Не включать в этот этап общую нативную раскладку составных значений, произвольный FFI к среде выполнения, новый Web ABI, SIMD, браузерные сетевые запросы, исходящую сеть, удалённую публикацию пакетов, каркасы маршрутизации и промежуточной обработки, общее состояние сервера, базы данных, завершение TLS, WebSocket и новый синтаксис.
  • Сохранять старые режимы языка как явные входы совместимости, а не параллельные текущие продукты.

Ограниченные интеграционные свидетельства

Записи интеграции LIT и Lispex остаются полезными внутренними свидетельствами совместимости и регрессий. Они не определяют очередь выпусков, не делают LIT публичным бэкендом Топаза и не доказывают эквивалентность всего языка. Крупные кампании LIT, N-way, мутационной и дифференциальной проверки запускаются лишь при изменении принадлежащей им семантики или когда они нужны конкретному кандидату выпуска.

Исследования

  • Расширять дифференциальное тестирование и фаззинг, которые находят неверное понимание языка генераторами кода.
  • Рассматривать проверку моделей и механизированные доказательства только для конкретных и воспроизводимых результатов.
  • Оставить широкую оптимизацию, асинхронный синтаксис, перехват ошибок выполнения, API графем и пользовательские шаблоны исследовательскими темами до отдельного решения по языку.

Связанная документация