The official compiler implementation for the Ovum Programming Language, written in C++. This compiler transforms Ovum source code (.ovum files) into executable bytecode for the Ovum Virtual Machine.
Ovum is a strongly statically typed, single-threaded programming language focused on safety, clarity, and performance. It features:
- Memory safety via garbage collection
 - Immutability by default with explicit mutation using 
var - Pure functions (
pure) that are side-effect free and cacheable - Interface-based polymorphism (no class inheritance)
 - Kotlin-like syntax with minimal, predictable constructs
 - JIT compilation with garbage collection for performance
 
- CMake 3.12 or higher
 - C++17 compatible compiler (GCC, Clang, or MSVC)
 - Git (for dependency management)
 
The easiest way to build and install the compiler:
./install.shThis script will:
- Configure CMake with Release build settings
 - Build the 
ovumcexecutable - Create a symbolic link in your home directory
 - Optionally install to 
/usr/bin(Linux) or provide Windows instructions 
- 
Configure the build:
cmake -S . -B build - 
Build the compiler:
cmake --build build --target ovumc
 - 
Build and run tests:
cmake --build build --target ovumc_tests ctest --test-dir build
 
Once built, the ovumc compiler can be used to compile Ovum source files:
# Compile an Ovum source file
ovumc input.ovum -o output.bytecode
# Show help
ovumc -hFor development builds with debug information:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build buildThe project includes comprehensive tests using Google Test:
# Run all tests
ctest --test-dir build
# Run specific test executable
./build/ovumc_tests.exe  # Windows
./build/tests/ovumc_tests  # Linux/macOSThe project includes:
- Clang-format configuration (
.clang-format) - Clang-tidy configuration (
.clang-tidy) - CI/CD pipeline with automated testing
 
We welcome contributions! Please see our Contributing Guidelines for details on:
- Code style and formatting
 - Testing requirements
 - Pull request process
 - Issue reporting
 
- OvumLanguage - Main language repository with documentation and specifications
 - OvumVM - Virtual Machine implementation (planned)
 
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
- Issues: Report bugs and request features on GitHub Issues
 - Documentation: Visit the Ovum Language Documentation for language documentation or view it online.