1# Ix
2
3Ix (*I*nferable E*x*pression) is a high-level, general purpose programming
4language. It features a mix of Rust, Zig, and JavaScript's great points.
5
6For a guide on how to use Ix, see the manual included in the binary
7distribution. Additionally, the latest commit of the manual is hosted online at
8[language-manual.pages.dev](https://language-manual.pages.dev).
9
10## Building
11
12The primary dependency of the Ix compiler is a Zig compiler. If one is not
13available, the `./build` and `.\build.cmd` scripts can substitute for running
14`zig build` on POSIX and Windows systems, respectively. With a Zig compiler, a
15release build can be produced in a single command:
16
17 zig build --release
18
19To run the standard packaging procedure, which builds the compiler for all
20officially supported targets:
21
22 zig build package
23
24## Development
25
26Continuous integration is provided via a `./ci` (script for POSIX), which is run
27by [self hosted Buildkite runners][ci]. This script uses the [`typos`][typos]
28CLI to check spelling mistakes and [`dprint`][dprint] for code formatting. It is
29recommended to setup editor integration with these two tools to prevent pushing
30broken commits.
31
32[ci]: https://buildkite.com/paperclover/compiler
33[typos]: https://github.com/crate-ci/typos
34[dprint]: https://dprint.dev