Ash is an experimental programming language and runtime. It checks programs before running them.
Ash is released under the MIT or Apache-2.0 license.
Ash is alpha software. The language, commands, and installation process can change.
From a checkout, build Ash:
cargo build --releaseInstall a local Ash toolchain with Ashgrove:
./target/release/ashgrove install --from source --path . --switchAshgrove puts ash and ashgrove in ~/.local/bin. Add that directory to your PATH if needed:
export PATH="$HOME/.local/bin:$PATH"Check an existing example:
ash check examples/10-testing-helpers/testing_helpers.ashRun a program after saving the example below as hello.ash:
ash run hello.ashYou can also use Ash directly from a checkout without installing it:
cargo run -p ash-cli -- check examples/10-testing-helpers/testing_helpers.ash
cargo run -p ash-cli -- run hello.ashThis small program exits successfully:
use result::Result
use runtime::RuntimeError
fn main() -> Result<(), RuntimeError> {
Ok { value: {} }
}More checked examples are listed in examples/README.md.