Skip to content

YaoXiang RFC (Request for Comments) Index ​

RFC (Request for Comments) is the formal submission format for YaoXiang language feature design proposals.

Contents ​


Template ​

FileDescription
RFC_TEMPLATE.mdRFC standard template
EXAMPLE_full_feature_proposal.mdComplete example (Pattern Matching Enhancement)

Draft RFCs ​

NumberTitleAuthorCreation DateStatus
RFC-002RFC-002: libuv-Based Resource Type IO Implementation Layer晨煦2026-01-05Draft
RFC-019RFC-019: Type-Level Homoiconicity - Syntax as Types晨煦2026-02-20Draft
RFC-028RFC-028: JIT Compiler — Multi-Level Execution Engine in VM晨煦2026-06-11Draft
RFC-031RFC-031: Optimization Levels & Pass Manager晨煦2026-06-16Draft
RFC-033RFC-033: ^^ Reflection Operator晨煦2026-06-16Under Review
RFC-034RFC-034: Unified Debugging Toolchain晨煦2026-07-06Draft
RFC-035RFC-035: MCP Server Support (AI Agent Integration)晨煦2026-07-11Draft
RFC-027aRFC-027a: Termination Check Proof Function Fallback晨煦2026-09-14Draft
RFC-029aRFC-029a: Module Cache & Incremental Recompilation晨煦2026-09-07Draft

RFCs Under Review ​

NumberTitleAuthorCreation DateStatus
RFC-032RFC-032: spawn Unified Expression Modifier — Eliminating spawn for Special Case晨煦2026-06-16Under Review

Accepted RFCs ​

NumberTitleAuthorCreation DateStatus
RFC-004RFC-004: Multi-Position Union Binding Design for Curried Methods晨煦2025-01-05Accepted
RFC-006RFC-006: Documentation Site Construction晨煦2025-01-05Accepted
RFC-007RFC-007: Function Definition Syntax Unification沫郁酱2025-01-05Accepted
RFC-008RFC-008: Runtime Concurrency Model and Scheduler Decoupling Design晨煦2025-01-05Accepted
RFC-009RFC-009: Ownership Model Design晨煦2025-01-08Accepted
↳ RFC-009aRFC-009a: Token Lifetime Analysis — Hoare Proof Pipeline晨煦2026-06-13Accepted
RFC-010RFC-010: Unified Type Syntax - name: type = value Model晨煦Accepted
↳ RFC-010aRFC-010a: Tail Expression Evaluation and return Semantics晨煦2026-09-15Accepted
↳ RFC-010bRFC-010b: Pattern Matching Completion (Variant Destructuring and Exhaustiveness)晨煦2026-09-03Draft
RFC-011RFC-011: Generic Type System Design - Zero-Cost Abstraction and Macro Substitution晨煦Accepted
↳ RFC-011aRFC-011a: Interface Implementation and Dynamic Dispatch晨煦2026-06-14Accepted
↳ RFC-011bRFC-011b: Operator Overloading and Interface-Driven Operators晨煦2026-09-22Accepted
RFC-012RFC 012: F-String Template StringsChen Xu2025-01-27Accepted
RFC-013RFC 013: Error Code Specification晨煦2026-02-02Accepted
RFC-014RFC-014: Package Management System Design晨煦2026-02-12Accepted
↳ RFC-014aRFC-014a: Registry Protocol Specification晨煦2026-06-11Under Review
↳ RFC-014bRFC-014b: Build System and Binary Distribution晨煦2026-06-11Under Review
↳ RFC-014cRFC-014c: Workspace Support晨煦2026-06-11Under Review
RFC-015RFC-015: YaoXiang Configuration System Design晨煦2026-02-12Accepted
RFC-017RFC-017: Language Server Protocol (LSP) Support Design晨煦2026-02-15Implemented
RFC-018RFC-018: LLVM AOT Compiler Design晨煦2026-02-15Accepted
RFC-024RFC-024: spawn-Based Concurrent Runtime Semantics晨煦2026-06-05Accepted (Revised)
RFC-026RFC-026: FFI Core Mechanism晨煦2026-07-03Accepted
↳ RFC-026aRFC-026a: Extensible FFI Mechanism System晨煦2026-06-05Under Review
↳ RFC-026bRFC-026b: yx-bindgen Toolchain晨煦2026-06-05Draft
RFC-027RFC-027: Compile-Time Predicates and Unified Static Verification晨煦2026-06-07Accepted
RFC-029RFC-029: Module Semantics System晨煦2026-06-13Accepted
RFC-030RFC-030: assert Assertion Mechanism晨煦2026-06-15Accepted
RFC-036RFC-036: std.test Testing Framework and yaoxiang test Command晨煦2026-07-26Accepted
RFC-037RFC-037: Industrial Distribution Solution — cargo-dist-based Compiler/Toolchain PackagingChenXu2332026-07-26Accepted
RFC-038RFC-038: Statement Termination & Newline RulesChenXu2332026-08-05Accepted
RFC-029fRFC-029f: Compilation Target Role and Import Surface Semantics晨煦2026-09-12Accepted

Deprecated RFCs ​

NumberTitleAuthorCreation DateStatus
RFC-001RFC-001: spawn Model and Error Handling System晨煦2025-01-05Deprecated (Replaced by RFC-024)
RFC-020RFC-020: Dynamic Modules and FFI Integration晨煦2026-03-14Deprecated
RFC-021RFC-021: Library-Driven FFI Extension and Cross-Language Call Support晨煦2026-03-14Deprecated
RFC-022RFC 022: Hoare Logic Static Verification Support (Specification Annotations and Specification Types)晨煦2026-03-16Deprecated (Replaced by RFC-027)
RFC-023RFC-023: Closure Capture Model晨煦2026-05-29Deprecated

Rejected RFCs ​

NumberTitleAuthorCreation DateStatus
RFC-003RFC-003: Version Planning晨煦2025-01-05Rejected
RFC-005RFC-005: Automated CVE Security Scanning System晨煦2025-01-05Rejected
RFC-016RFC 016: Quantum-Native Support and Multi-Backend Integration晨煦2026-02-13Rejected
RFC-025RFC-025: Extensible Primitive Type Mechanism晨煦2026-06-05Rejected

RFC Lifecycle ​

Draft → Under Review → Accepted → Deprecated (Replaced)
                            ↓
                       Rejected (Not Approved)

Status Description ​

StatusLocationDescription
Draftrfc/draft/Author's draft, awaiting submission for review
Under Reviewrfc/review/Open community discussion and feedback
Acceptedrfc/accepted/Becomes an official design document, entering the implementation phase
Deprecatedrfc/deprecated/Previously accepted, replaced by a new design
Rejectedrfc/rejected/Rejected RFC documents

Document Revision Rules ​

RFC documents must only contain correct information. When design changes occur, directly modify the original text to express the current correct semantics; Do not retain incorrect content and add an "errata" block to correct it.

Retaining "original text + errata" is the worst approach: readers discover halfway through that everything before is voided, the prior reading effort is wasted, and it becomes easy to mistakenly quote deprecated sections as current semantics. An errata block may seem cautious, but it actually shifts the organizational cost onto the reader.

Correct Approach ​

SituationApproach
Implementation does not match the original text, or the original text has been overturnedDirectly rewrite the paragraph with correct content, delete the original wording
Example code no longer runsDirectly modify it to a runnable form; do not retain the old example
Need to let readers know "what it used to be"Only retain incorrect content when deliberately making an error comparison, and label it directly with "This writing is incorrect" and the reason
Need to trace design evolutionRecord it in Git commit messages or issues, not in the RFC body

Exceptions ​

The following incorrect information may be retained:

  • Deliberate contrastive teaching: Clearly marked as a correct/incorrect comparison, with the incorrect side immediately followed by an explanation of "why it is wrong"
  • Deprecated RFCs (rfc/deprecated/): Kept as historical records, but should note which RFC replaced them

Auxiliary Methods ​

  • The status / updated fields at the top of the RFC reflect the latest revision time; there is no need to write "what was revised this time" in the body
  • Use ✅ / ❌ in tables to express implementation status, avoiding status narration interspersed in the body
  • View the complete revision history using git log -- <file>

Submitting an RFC ​

  1. Read RFC_TEMPLATE.md to understand the format requirements
  2. Refer to EXAMPLE_full_feature_proposal.md to learn how to write
  3. Create a new file named number-descriptive-title.md
  4. Place the file in the docs/reference/rfc/draft/ directory
  5. Update this index file to add the new RFC entry
  6. Submit a PR to enter the review process

Contribution Guidelines ​

Please refer to CONTRIBUTING.md for contribution guidelines.