Project health, coverage reports, and build information
Line-by-line code coverage generated with LLVM source-based instrumentation across both the bytecode VM and tree-walker backends.
Source-level coverage for all library files — functions, lines, and regions
Lattice uses a standard Makefile. Available targets:
make — Build the clat binary (optimized, -O3)make test — Run the full test suite (bytecode VM)make test-tree-walk — Run tests under the tree-walker backendmake test-all-backends — Run tests on all backendsmake asan — Build and test with AddressSanitizer + UBSanmake tsan — Build and test with ThreadSanitizermake coverage — Generate LLVM coverage reportmake analyze — Run Clang static analyzermake fuzz — Build libFuzzer harnessmake wasm — Compile to WebAssembly via Emscriptenmake bench — Run all benchmarks with timing statsmake lsp — Build the LSP server (clat-lsp)Release builds use several layers of optimization for maximum VM throughput:
-O3 — Aggressive optimizations: loop vectorization, function inlining, loop unrolling-DVM_USE_COMPUTED_GOTO — GCC/Clang computed goto for the bytecode VM dispatch loop, replacing the default switch-based dispatchLTO (-flto) is not used because it breaks dlopen symbol visibility for dynamic extensions. The computed goto dispatch provides the largest single gain for interpreter-bound workloads.