- Rust 1.96.0 (
rust-toolchain.tomlpins the version; runrustup updateifrustc --versionis older) - GCC or Clang (MinGW on Windows for generated C)
- Git Bash on Windows for integration tests
cargo build --release --bin ion-compiler --bin ion-build --bin ion-lspAfter compiler codegen changes, rebuild before tests/test_runner.sh or rebuilding examples. A stale target/release/ion-compiler can produce misleading harness results.
Install CLI tools into your Cargo bin directory:
cargo install --path . --bin ion-compiler --bin ion-buildion-lsp is built with the release command above; point the editor extension at target/release/ion-lsp (see README IDE Support).
CI (.github/workflows/ci.yml) builds all three binaries on Linux, runs integration tests, ASan/UBSan smoke on generated C, and the full integration harness under -Wall -Wextra -Werror on Linux. The Windows job builds ion-compiler and ion-build only. Build ion-lsp locally for IDE work.
Unit tests:
cargo testIntegration tests (from Git Bash):
cd tests && ./test_runner.shLint:
cargo clippy -- -D warningsFormat check:
cargo fmt --check- Keep diffs focused; match existing style in the module you touch.
- Add or update integration tests in
tests/test_*.ionandtests/test_expectations.tsvwhen behavior changes. - Update
ION_SPEC.mdwhen language or stdlib semantics change. - CI must pass (see
.github/workflows/ci.yml).