///
Thank you for your interest in contributing to the Zen Programming Language! This document outlines the guidelines and principles for making contributions.
80 views
~80 views from guests
Guest views are estimated from total page views. These include anonymous visitors and users who weren't logged in when they viewed the page.
Thank you for your interest in contributing to the Zen Programming Language! This document outlines the guidelines and principles for making contributions.
The Zen language is founded on a unique philosophy of "No keywords. Pure expression. Allocator-driven concurrency." All contributions must align with the core design principles:
?: Utilize the ? operator for all conditional logic.async/await keywords or function coloring.Ptr<>, MutPtr<>, RawPtr<> for all pointer manipulations.Option<T> for potentially absent values..raise() for Error Propagation: Propagate errors explicitly using .raise() instead of exceptions.The absolute source of truth for the language is LANGUAGE_SPEC.zen. All changes to the compiler or standard library must reflect and conform to this specification. If you believe the specification needs alteration, please initiate a discussion before implementing changes.
For a broader overview of the language, please refer to the [Zen Programming Language Overview].
The Zen language has achieved significant progress, with core features working well and a strong test suite. The project is actively moving towards a complete implementation of its zero-keywords design. For the latest development status, including working, partially working, and not yet implemented features, please see STATUS.md.
Before writing any code, thoroughly read and understand LANGUAGE_SPEC.zen. This is paramount to ensure your contributions align with the language's fundamental design.
The Zen compiler is written in Rust.
To get started, clone the repository and build the compiler:
To familiarize yourself with the language and verify your setup, run the showcase example and the test suite:
The test suite is critical; all tests must pass for any pull request to be considered.
We welcome contributions in the following areas:
STATUS.md, ensuring adherence to LANGUAGE_SPEC.zen.
Ptr<T>, MutPtr<T>, RawPtr<T> support.module.exports and module.import functionality.build.zen for project compilation.inline.c() and FFI capabilities.stdlib/io.zen, stdlib/collections.zen) with new functions and types, always adhering to the zero-keyword principle.If you find a bug, have a feature request, or suggest an improvement:
lantos1618/zenlang repository on GitHub.main with a descriptive name (e.g., feature/add-actors, bugfix/fix-type-inference).tests/ directory and pass reliably.python3 scripts/run_tests.py) to confirm all tests pass.README.md, LANGUAGE_SPEC.zen, STATUS.md, or docs/ files if they existed).main branch of the lantos1618/zenlang repository.LANGUAGE_SPEC.zen.All pull requests will be reviewed by the project maintainers. Be open to feedback and willing to iterate on your changes. The goal is to ensure high-quality contributions that align with the project's vision.
By contributing to the Zen Programming Language, you agree that your contributions will be licensed under the MIT License, as specified in the repository's LICENSE file.