Contribute to WeaveC
WeaveC is developed in the weavefoundry/weavec repository. Contributions can improve diagnostics, supported C patterns, test coverage, performance, or the documentation itself.
Set up the compiler
Section titled “Set up the compiler”Follow the developer guide to install LLVM, configure the dev preset, and run unit and integration tests.
cmake --preset devcmake --build --preset devctest --preset devThe architecture guide explains the three libraries: Core owns the model, Analysis bridges Clang to Core, and Frontend orchestrates the driver, program analysis, and diagnostics.
Read the design before changing it
Section titled “Read the design before changing it”Ownership semantics, checker rules, annotations, diagnostic identifiers, and serialized cross-unit contracts are specified by RFCs. Read the relevant accepted RFC before changing those areas. Propose a new RFC for a new design decision; a bug fix that restores the specified behavior does not need one.
Start with the RFC process and RFC library. Core must remain independent of Clang and LLVM headers.
Make a reviewable change
Section titled “Make a reviewable change”- Add meaningful unit and integration coverage for changed behavior.
- Every new diagnostic needs a stable ID, an annotation-reference entry, a unit test, and a lit test pinning its exact message.
- Use Conventional Commit titles and update the relevant user guide.
- Run formatting and required checks. Generated build outputs are not source files.
- Leave
CHANGELOG.mdto semantic-release; document earlier historical context in the development history only when appropriate.
Improve these docs
Section titled “Improve these docs”Use the edit link on any page to find its maintained source. Some reference pages are generated from existing repository guides, so their edit link points to that guide. The website guide covers local preview, content generation, tests, and GitHub Pages deployment.
For larger changes, open an issue describing the problem and proposed scope before investing in the implementation.