Show HN: Axe - A Systems Programming Language with Builtin Parallelism and No GC
16 points| death_eternal | 3 months ago |axelang.org
The language is now capable of compiling a substantial portion of its own source code to tokens using a single-pass C back-end. The self-hosted compiler includes a handwritten lexer and a parser, with an arena-based allocator to support fast compilation and eliminate GC complexity.
The primary goals for the project are: First-class parallel and concurrent constructs built directly into the language, strong static memory and type guarantees, and a toolchain suitable for building high-performance software
Example:
def main() {
parallel local(mut arena: Arena) {
arena = Arena.create(1024);
val tid = Parallel.thread_id();
val result = worker(ref_of(arena), tid);
println $"Thread {tid} computed {result}";
Arena.destroy(ref_of(arena));
}
}
You can find the repository here: https://github.com/axelang/axe
Panzerschrek|3 months ago
Does it have destructors and RAII?
Does it have type and function templates?
death_eternal|3 months ago
2. Axe does not use C++-style RAII. It employs deterministic cleanup through defer, which allows resources to be released predictably. Also, objects allocated inside an arena are freed as a group when the corresponding arena is destroyed.
3. Not yet. There is an overload system currently:
surajssc1232|3 months ago
death_eternal|3 months ago