Documentation

Contributing to IRx

Contributing to IRx

IRx lives in packages/irx and owns semantic analysis, lowering, native runtime features, and LLVM-backed artifact generation. Parser syntax belongs in the relevant frontend; reusable node definitions belong in ASTx.

Setup

git clone https://github.com/arxlang/arx.git
cd arx
mamba env create --file conda/dev.yaml
conda activate arx
poetry install

Architecture rules

Runtime type checking and docstrings

IRx applies irx.typecheck.typechecked to concrete public and internal implementation boundaries. Class decorators cover methods, so method-level decorators are normally unnecessary.

All Python symbols, including private helpers, use repository-style Douki docstrings. Clearly document any typing-only Protocol exemption and update packages/irx/tests/test_typechecked_policy.py when the policy changes.

Tests

Add semantic tests for validation and resolved metadata, translation tests for LLVM shape, and build/run tests when behavior depends on native linking.

makim irx.test-analysis
makim irx.unittests
makim irx.typecheck
makim irx.lint
makim irx.build

Arrow runtime changes should cover ownership, error handling, native build integration, and PyArrow interoperability where applicable.

Use Conventional Commit syntax in pull request titles; the repository uses squash merge and semantic-release.

Search documentation

Type to search.