This repository contains an experimental Verona compiler and runtime toolchain. VC lowers Verona source to Verona Intermediate Representation (VIR), and VIRC validates and analyzes VIR before the VBC emitter produces Verona Bytecode (VBC).
Current: VBC is the supported output and runs on VBCI. VIRC's compilation model is output-neutral so additional emitters can be added separately.
Migration: The main branch preserves the development history of
sylvanc/verona-bc, independently of the
original Verona history. The original code is archived on old_main.
The Project Verona website is retained in docs/ alongside the toolchain
documentation.
Configure and build in the build directory, then run the test suite:
cmake -S . -B build -G Ninja
ninja -C build install
ctest --test-dir build --output-on-failureBuild and run the hello fixture through the default VBC path:
cd build
dist/vc/vc build ../testsuite/v/hello
dist/vbci/vbci hello.vbcSee Toolchain Usage for standalone VIRC commands.
| Component | Responsibility |
|---|---|
| VC | Verona frontend and source-to-VIR lowering |
| VIRC | Shared VIR validation, analysis, and output-neutral compilation state |
| VBCI | VBC loader and interpreter runtime |
| Interchange formats | VIR and VBC contracts and compatibility |
| Testsuite | Source, VIR, VBC, and VBCI test pipelines |
The current architecture and accepted decisions are indexed in Architecture. Verona language documentation is under VC Language Documentation, and documentation ownership is defined by the Documentation Policy. The complete contributor and user documentation map is in Documentation.