Zirric Evolution Proposals (ZE)
This directory contains Zirric Evolution Proposals. Each proposal documents a change
or addition to the Zirric language or ecosystem. Take care to notice the status of each proposal.
- Draft: The proposal is in an early stage and may undergo significant changes.
- In Progress: The proposal is being actively worked on and refined.
- Implemented: The proposal has been implemented in the Zirric language or ecosystem.
- Rejected: The proposal has been reviewed and decided against implementation.
Proposals
| Proposal | Title | Status | Author |
|---|---|---|---|
| ZE-001 | Base Language | In Progress | @vknabel |
| ZE-002 | The Cavefile | In Progress | @vknabel |
| ZE-003 | Named Data Construction | Rejected | @vknabel |
| ZE-004 | Variadic Arguments | Draft | @vknabel |
| ZE-005 | Mixin Type Declarations | Draft | @vknabel |
| ZE-006 | Attribute-Based Parsing System | Draft | @vknabel |
| ZE-007 | Attribute Binding | Draft | @vknabel |
| ZE-008 | Error Handling | In Progress | @vknabel |
| ZE-009 | Option Values | In Progress | @vknabel |
| ZE-010 | Iterable | In Progress | @vknabel |
| ZE-011 | Zirric CLI | In Progress | @vknabel |
| ZE-012 | Type and Returns Sugar | In Progress | @vknabel |
| ZE-013 | Mutability and Constants | In Progress | @vknabel |
| ZE-014 | Attribute and Declaration Keywords | Implemented | @vknabel |
| ZE-015 | Extern Type Constructors | Draft | @vknabel |
Submitting Proposals
To create a new proposal:
- Copy ZE-000-template.md.
- Rename the file to follow the scheme
ZE-000-name-of-the-proposal.md. - Link the proposal in this index file.
- Add an entry to the
tasks/docmd/docmd.config.js. - Fill out the template and open a pull request.
Caveats
Please note that proposals are subject to change and may not be implemented as initially described.
The presented EBNF grammar snippets are only used for illustration purposes and may not reflect the final syntax of the language. They are intended to convey the general structure and ideas of the proposals, rather than serving as exact specifications. In the end, the parser implementation is the single source of truth for the language syntax, while the tree-sitter grammar serves as a more compact reference for the structure of the language, while not being an exact specification.
When Zirric undergoes significant changes, existing proposals will most likely not be updated.
Only in rare cases, existing proposals might be updated to avoid confusion. This effort will only be made for important or related proposals.
In the end, proposals are a witness of their time and should be treated as such. They provide insight into the evolution of the language and the rationale behind certain design decisions, but they are not necessarily indicative of the current state or future direction of the language.