Compiler Contributing
Prerequisites
- Rust + Cargo
- Node.js (for default JS run/test/bench paths)
- LLVM toolchain (for native and LLVM IR paths)
Local Build and Test
cd compiler
cargo build
cargo test
Run CLI:
cargo build -p klar-compiler
./target/debug/klar --help
./target/debug/klar check examples/demo.klar
Recommended Change Order
When changing language behavior:
- Lexer (if token changes are needed)
- AST (if model changes)
- Parser
- Type checker
- Codegen backend(s)
- CLI integration
- Docs updates