Skip to content

Latest commit

 

History

167 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Lanius Programming Language

Lanius is a systems programming language that compiles on the GPU. That is, it compiles on the GPU and targets the CPU.

Lanius Values

1) Iteration speed

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.

2) Embeddadbility

Lanius is intended to be embeddable, including future web/Wasm-style hosts, but the current production backend work is focused on native x86_64.

3) Honesty

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.

Stability

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.

Benchmarks

TODO

Performance viewer

python3 tools/lanius_perf.py serve

Future

Lanius 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.

About

Lanius is a programming language that compiles at the speed of light.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages