Repository navigation
v0.1.0: first tagged release
First tagged release. The compiler can lex and parse a chain manifest into an AST. No codegen or runtime yet; those land in subsequent milestones.
Added
- Repository scaffolding: README, LICENSE (Apache-2.0), DESIGN.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, issue and PR templates, CHANGELOG.
- Brand assets in
.github/: mark + wordmark lockup, light and dark variants. - Example
.cvfiles inexamples/: minimal chain manifest, multi-VM chain, counter module, token module, custom consensus protocol. - Compiler bootstrap in C11 (
compiler/): Makefile,cleavecbinary with--version,--help,--tokens <file.cv>, and--ast <file.cv>commands. - Lexer covering keywords, identifiers, integer literals (decimal, hex, binary, with
_separators), string and character literals, single and multi-character punctuation,//line and/* */block comments, source line and column tracking, error recovery on unknown characters. Lexes allexamples/*.cvwith zero ERROR tokens. - AST node definitions (
compiler/include/ast.h): tagged-unionAstNodecovering 28 kinds across declarations, types, expressions, and statements. Source spans on every node. Memory is malloc-and-leak by design for v0; documented incompiler/src/ast.c. ast_dumppretty-printer producing readable indented output.- Recursive-descent parser (
compiler/src/parser.c) for thechain { }block: subsystem assignments, named and generic types, keyword and positional type parameters, and anonymous set literals like{cpu, storage, witness}. Error reporting with source line and column on missing tokens. - Hand-rolled testing harness (
compiler/tests/test.h, ~60 lines). Three test binaries:lexer_test.c(224 assertions),ast_test.c(58 assertions),parser_test.c(47 assertions). 329 total assertions across 60 tests. - Microbenchmark harness (
compiler/bench/bench.h). Lexer and parser benches with baseline numbers documented incompiler/bench/README.md. - CI workflow building the compiler, running the test suite, and running benchmarks on every push and PR. Bench results visible in workflow logs.
- Branch protection ruleset on
main: required PR review, required CI check, linear history, signed commits, no force push, no deletion. OrganizationAdmin bypass for emergency direct pushes. - GitHub Discussions enabled. Milestones (v0.1, v0.2, v0.3, v0.4). Labels (
compiler,stdlib,tooling,design). 14 tracking issues across milestones.
Notes
- The compiler does not yet produce executable output.
cleavec --tokensprints token streams;cleavec --astprints parsed AST. Codegen lands in v0.3. - Standard library protocol designs (consensus, gas, state, effects, DA) are open RFCs in the v0.2 milestone.
.cvis the canonical file extension. Switched from.cleaveduring early bootstrap; no public history of the older extension.