Ash
A Java-like language, built from scratch in C.
One front end, two engines: a VM or a native binary.
Get StartedPre-releaseWhy Ash?
Java-like and typed
Packages, classes, generics, T? null safety, checked exceptions and lambdas.
One front end, two engines
ashvm is a bytecode VM with a REPL. kiln compiles the same code to a native ELF or PE binary.
Memory safety you can turn off
On by default. Moves, & and &mut borrows, use-after-move errors, compile-time overflow and bounds checks, and freeing at scope exit. A design goal, not a Rust-equivalent guarantee.
Hello, Ash
Packages, classes and a main method. This is examples/HelloWorld.ash from the repo.
package examples;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Ash!");
}
}Built from scratch in C
No external dependencies.
Bytecode VM with a REPL.
Native ELF or PE compiler. No VM and no libc. Windows targets and --link=shared.
Package manager with new, add, check, license and run.
The Rust memory-safety engine.
Get started
There are no packaged installs or releases yet. Build it from source.
git clone https://github.com/lennoxrose/ash.git && cd ash tools/install.sh make bin/ashvm run Main.ash bin/kiln Main.ash -o main
make builds bin/ashvm, bin/kiln and apm. ashvm runs the source, kiln turns it into a native binary.
View on GitHub