Lanius is a systems programming language that compiles on the GPU. That is, it compiles on the GPU and targets the CPU.
Lanius is designed around GPU-resident compilation for fast iteration. The current compiler is still early alpha; published benchmark claims need checked local evidence before they should be treated as production numbers.
Lanius is intended to be embeddable, including future web/Wasm-style hosts, but the current production backend work is focused on native x86_64.
Lanius is explicit, but more than that Lanius is honest. Lanius code does what it says it does. There is no operator overloading, all usages of typeclasses are explicit. Nothing is "auto-wired" or otherwise transforms the control flow graph in a way that you could not expect.
Lanius is in an extremely early alpha. I would not recommend using it for any purpose.
laniusc --version outputs the compiler version.
laniusc doctor will output a JSON report whether laniusc can run or not.
There are only two targets, x86_64 and wasm. x86_64 is the default.
Those correspond to x86_64-unknown-linux-gnu and wasm32-unknown-unknown.
You can control the diagnostics output using --diagnostic-format=<json|lsp-json>
laniusc lsp serve --stdio starts an LSP server (work in progress).
laniusc fmt [--check] <file> [<file> ...] runs a formatter on the given files, and edits them. --check only checks without editing the file.
laniusc check runs frontend checks like lexing, parsing, and typechecking, but it doesn't validate whether the backend accepts that code yet.
TODO
python3 tools/lanius_perf.py serveLanius is looking to add formally verified semantics, capabilities, algebraic effects, graded modal types, tree borrows, mixin modules, row/rank polymorphism, first class property testing, compilation to ARM and RISC-V, polyhedral compilation, and more in the future.