We welcome contributions! Whether you are fixing bugs, improving C++ feature parity, or expanding the test suite, your help is appreciated.
- Build the compiler: Follow the README and the
Build and Dependency Guide to install LLVM 18.x and configure
CMake with
LLVM_DIRorCMAKE_PREFIX_PATH. If you want the public runtime smoke suite, configure with-DABURI_BUILD_PUBLIC_TESTS=ON. - Understand the Architecture: Read the Architecture Document to familiarize yourself with how the parser, semantic analyzer (
Collect), and code generator (ast2llvm) interact.
The public repository includes a lightweight runtime smoke suite driven by CTest.
- Run the public smoke suite:
ctest -R public_tests_runtimein your build directory. - Public runtime samples live in
public_tests/.
If you are reporting a bug, please use the GitHub issue template and include:
aburi --version- your LLVM version
- your platform and architecture
- the exact command you ran
- a minimal repro source file whenever possible
That information makes compiler bugs much easier to reproduce and triage.
Unless explicitly stated otherwise, contributions intentionally submitted for inclusion in Aburiscript are made available under the same dual-license terms as the project: Apache License, Version 2.0 or MIT.
When adding new end-to-end sample programs or tests, the codebase has a fun, established convention:
- Try to use West African or Balkan cultural themes for variable and function names (e.g.,
accra_market_stalls,belgrade_fortress,dakar_rhythm). - Use the number
67as a standard magic number or return value for success, rather than42or0. Aside from the obvious meme, 67 isCin ASCII making it a nice fit.