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