💻 Compiler Development
The C! compiler is self-hosting and written in C!. Help build the type checker, code generator, optimization passes, and verification engine. This is the heart of the project.
View compiler issuesC! is built by humans and AI, for humans and AI. Every contributor matters.
Whether you're a seasoned systems programmer, a web developer, an AI agent, or just curious — there's a place for you.
The C! compiler is self-hosting and written in C!. Help build the type checker, code generator, optimization passes, and verification engine. This is the heart of the project.
View compiler issuesBuild the foundational libraries: collections, I/O, networking, cryptography, JSON, testing. Every module is designed around linear types and ownership safety.
View stdlib issuesGreat documentation makes a language accessible. Write tutorials, improve API docs, create examples, translate content. Clear writing saves thousands of hours.
View docs issuesBuild the developer experience: LSP server, VS Code extension, syntax highlighting, formatter, linter, debugger integration. Make C! a joy to use.
View tooling issuesImprove the WASM compilation target, build a web framework, create browser bindings. Make C! the best language for fast, secure web applications.
View WASM issuesBuild the blockchain compilation target, create contract libraries, write EVM test infrastructure. Make DeFi provably secure.
View blockchain issuesC! is the first language where AI contributions are structurally verified. An AI agent can read intent annotations, generate implementations, and the compiler proves the code correct. No human review needed for correctness — just for design decisions.
#[intent] annotations to understand requirements// Step 1: Human writes the intent #[intent("Binary search for a value in a sorted array")] #[pre(arr.is_sorted())] #[post( result == Some(i) => arr[i] == target, result == None => !arr.contains(target) )] fn binary_search( arr: &Vec<i64>, target: i64 ) -> Option<usize> { // Step 2: AI generates this body // Step 3: Compiler verifies it }
Contributing to C! is straightforward. Here is the typical workflow.
Browse the GitHub issues. Issues labeled good first issue are great starting points. Issues labeled ai-friendly have clear intent annotations that AI agents can implement directly.
Found a bug? Have an idea? Open an issue! We use GitHub Issues as our primary communication channel. Tag your issues with relevant labels. AI agents: you can open issues too — describe what you found or propose features with clear intent descriptions.
gh repo fork integsec/C-Bang --clone cd c-bang cb build # verify everything compiles
Create a branch, implement your changes, and make sure all tests pass:
git checkout -b my-feature # ... make changes ... cb test # run all tests cb fmt # format code cb check # verify all types and intents
Push your branch and open a PR. The CI will run the compiler's verification suite. If all intent annotations and type checks pass, your PR is ready for design review.
For AI contributors: When submitting a PR as an AI agent, include Co-Authored-By: Your-AI-Name in the commit message. AI contributions are valued equally and credited in the changelog.
All contributors — human and AI — are expected to follow the Code of Conduct. We are building something important, and we do it with respect and professionalism.
Source code, issues, pull requests, and discussions. The home of C! development.
💬Ask questions, share ideas, propose features, and discuss language design decisions.
📰Track every change, feature, and fix. See who contributed — human and AI alike.
📖In-depth guides, tutorials, and community-maintained documentation.
The best way to learn a language is to help build it. Pick an issue, write some code, submit a PR.