Skip to content

Индекс YaoXiang RFC (Запрос на комментарии) ​

RFC (Request for Comments) — это формальный формат подачи предложений по дизайну возможностей языка YaoXiang.

Содержание ​


Шаблон ​

ФайлОписание
RFC_TEMPLATE.mdСтандартный шаблон RFC
EXAMPLE_full_feature_proposal.mdПолный пример (усиление pattern matching)

Черновые RFC ​

НомерЗаголовокАвторДата созданияСтатус
RFC-002RFC-002: Слой реализации IO для типов ресурсов на основе libuv晨煦2026-01-05Черновик
RFC-019RFC-019: Типизированная гомоиконичность (Typed Homoiconicity) — синтаксис как тип晨煦2026-02-20Черновик
RFC-028RFC-028: JIT-компилятор — многоуровневый движок исполнения внутри VM晨煦2026-06-11Черновик
RFC-031RFC-031: Уровни оптимизации и менеджер Pass晨煦2026-06-16Черновик
RFC-033RFC-033: Оператор рефлексии ^^晨煦2026-06-16На рассмотрении
RFC-034RFC-034: Унифицированный набор инструментов отладки晨煦2026-07-06Черновик
RFC-035RFC-035: Поддержка MCP Server (интеграция AI Agent)晨煦2026-07-11Черновик
RFC-027aRFC-027a: Резервная функция доказательства для проверки завершения晨煦2026-09-14Черновик
RFC-029aRFC-029a: Кэш модулей и инкрементальная перекомпиляция晨煦2026-09-07Черновик

RFC на рассмотрении ​

НомерЗаголовокАвторДата созданияСтатус
RFC-032RFC-032: Унификация выражений spawn — устранение особого случая spawn for晨煦2026-06-16На рассмотрении

Принятые RFC ​

НомерЗаголовокАвторДата созданияСтатус
RFC-004RFC-004: Дизайн мультипозиционного совместного связывания для каррированных методов晨煦2025-01-05Принят
RFC-006RFC-006: Создание сайта документации晨煦2025-01-05Принят
RFC-007RFC-007: Унификация синтаксиса определения функций沫郁酱2025-01-05Принят
RFC-008RFC-008: Дизайн разделения модели параллелизма Runtime и планировщика晨煦2025-01-05Принят
RFC-009RFC-009: Дизайн модели владения晨煦2025-01-08Принят
↳ RFC-009aRFC-009a: Анализ времени жизни токенов — конвейер доказательств на основе логики Хоара晨煦2026-06-13Принят
RFC-010RFC-010: Унифицированный синтаксис типов — модель name: type = value晨煦Принят
↳ RFC-010aRFC-010a: Вычисление хвостовых выражений и семантика return晨煦2026-09-15Принят
↳ RFC-010bRFC-010b: Полнота pattern matching (деконструкция вариантов и исчерпываемость)晨煦2026-09-03Черновик
RFC-011RFC-011: Дизайн системы обобщений — абстракции с нулевой стоимостью и замена макросов晨煦Принят
↳ RFC-011aRFC-011a: Реализация интерфейсов и динамическая диспетчеризация晨煦2026-06-14Принят
↳ RFC-011bRFC-011b: Перегрузка операторов и операторы на основе интерфейсов晨煦2026-09-22Принят
RFC-012RFC 012: F-String шаблонные строкиChen Xu2025-01-27Принят
RFC-013RFC 013: Спецификация кодов ошибок晨煦2026-02-02Принят
RFC-014RFC-014: Дизайн системы управления пакетами晨煦2026-02-12Принят
↳ RFC-014aRFC-014a: Спецификация протокола Registry晨煦2026-06-11RFC на рассмотрении
↳ RFC-014bRFC-014b: Система сборки и бинарное распространение晨煦2026-06-11RFC на рассмотрении
↳ RFC-014cRFC-014c: Поддержка рабочих пространств晨煦2026-06-11RFC на рассмотрении
RFC-015RFC-015: Дизайн системы конфигурации YaoXiang晨煦2026-02-12Принят
RFC-017RFC-017: Дизайн поддержки Language Server Protocol (LSP)晨煦2026-02-15Реализовано
RFC-018RFC-018: Дизайн LLVM AOT-компилятора晨煦2026-02-15Принят
RFC-024RFC-024: Семантика параллельного runtime на основе spawn晨煦2026-06-05Принят (ревизия)
RFC-026RFC-026: Основные механизмы FFI晨煦2026-07-03Принят
↳ RFC-026aRFC-026a: Расширяемая система механизмов FFI晨煦2026-06-05RFC на рассмотрении
↳ RFC-026bRFC-026b: Инструментарий yx-bindgen晨煦2026-06-05Черновик RFC
RFC-027RFC-027: Предикаты времени компиляции и унифицированная статическая верификация晨煦2026-06-07Принят
RFC-029RFC-029: Семантическая система модулей晨煦2026-06-13Принят
RFC-030RFC-030: Механизм утверждений assert晨煦2026-06-15Принят
RFC-036RFC-036: Тестовый фреймворк std.test и команда yaoxiang test晨煦2026-07-26Принят
RFC-037RFC-037: Промышленная схема распространения — упаковка компилятора/инструментария на основе cargo-distChenXu2332026-07-26Принят
RFC-038RFC-038: Завершение операторов и правила перевода строк (Statement Termination & Newline Rules)ChenXu2332026-08-05Принят
RFC-029fRFC-029f: Роли целей компиляции и семантика импортируемой поверхности晨煦2026-09-12Принят

Устаревшие RFC ​

НомерЗаголовокАвторДата созданияСтатус
RFC-001RFC-001: Модель spawn и система обработки ошибок晨煦2025-01-05Устарело (заменено RFC-024)
RFC-020RFC-020: Интеграция динамических модулей и FFI晨煦2026-03-14Устарело
RFC-021RFC-021: Расширение FFI на основе библиотек и поддержка межъязыковых вызовов晨煦2026-03-14Устарело
RFC-022RFC 022: Поддержка статической верификации на основе логики Хоара (аннотации спецификаций и типы спецификаций)晨煦2026-03-16Устарело (заменено RFC-027)
RFC-023RFC-023: Модель захвата замыканий晨煦2026-05-29Устарело

Отклонённые RFC ​

НомерЗаголовокАвторДата созданияСтатус
RFC-003RFC-003: Планирование версий晨煦2025-01-05Отклонено
RFC-005RFC-005: Автоматизированная система проверки безопасности CVE晨煦2025-01-05Отклонено
RFC-016RFC 016: Квантовая нативная поддержка и интеграция множественных бэкендов晨煦2026-02-13Отклонено
RFC-025RFC-025: Расширяемый механизм примитивных типов晨煦2026-06-05Отклонено

Жизненный цикл RFC ​

Черновик → На рассмотрении → Принято → Устарело (заменено)
                              ↓
                          Отклонено (не прошло)

Описание статусов ​

СтатусРасположениеОписание
Черновикrfc/draft/Черновик автора, ожидает отправки на рассмотрение
На рассмотренииrfc/review/Открыто для обсуждения сообществом и обратной связи
Принятоrfc/accepted/Стал официальным проектным документом, переходит в фазу реализации
Устарелоrfc/deprecated/Был принят, но заменён новым дизайном
Отклоненоrfc/rejected/Документ отклонённого RFC

Правила ревизии документов ​

Документ RFC может содержать только корректную информацию. При изменении дизайна просто измените исходный текст, чтобы он отражал текущую правильную семантику; не сохраняйте ошибочное содержимое с добавлением блока «исправлений».

Сохранение «оригинала + исправления» — наихудший подход: читатель, дойдя до середины, обнаруживает, что всё ранее написанное устарело, потраченное на чтение время оказывается напрасным, а отменённые абзацы легко ошибочно принять за действующую семантику. Блок исправлений выглядит осторожным, но на деле перекладывает затраты на упорядочивание на читателя.

Правильный подход ​

СитуацияДействие
Реализация не соответствует оригиналу, оригинал отвергнутПерепишите абзац правильным содержанием, удалите исходную формулировку
Примеры кода больше не запускаютсяИзмените их на запускаемую форму, не сохраняйте старые примеры
Нужно дать читателю знать, «как было раньше»Сохраняйте ошибочное содержимое только при намеренном сравнении ошибок и сразу помечайте «эта запись ошибочна» с указанием причины
Нужно отследить эволюцию дизайнаЗаписывайте это в сообщениях Git-коммитов или issues, а не в основном тексте RFC

Исключения ​

Следующая ошибочная информация может быть сохранена:

  • Намеренные обучающие сравнения: явно помечены как сопоставление правильного и неправильного, при этом ошибочная сторона сопровождается объяснением «почему неправильно»
  • Устаревшие RFC (rfc/deprecated/): как историческая запись, но должно быть указано, кем заменён

Вспомогательные средства ​

  • Поля status / updated в верхней части RFC отражают время последней ревизии; нет необходимости писать в основном тексте «что было изменено в этой ревизии»
  • Статус реализации выражайте с помощью таблиц ✅ / ❌, избегайте вплетения описаний статуса в основной текст
  • Полную историю ревизий смотрите через git log -- <файл>

Подача RFC ​

  1. Прочитайте RFC_TEMPLATE.md, чтобы узнать требования к формату
  2. Обратитесь к EXAMPLE_full_feature_proposal.md, чтобы изучить стиль написания
  3. Создайте новый файл с именем номер-описательное-название.md
  4. Поместите файл в каталог docs/reference/rfc/draft/
  5. Обновите этот индексный файл, добавив новую запись RFC
  6. Отправьте PR для входа в процесс рассмотрения

Руководство по участию ​

См. CONTRIBUTING.md для получения руководства по участию.