About this project

sysl is a general-purpose systems language designed to provide the control of a systems language while remaining accessible. It utilizes reference counting for memory management instead of a borrow checker or garbage collector. Memory is managed through explicit type modes: `T` for value/stack, `&T` for ARC reference-counted heap, and `*T` for raw pointers, complemented by `ref` for local bindings. The language compiles to native binaries via LLVM IR and links using clang. It features a comprehensive standard library and a robust foreign function interface (FFI) that allows it to link with C libraries or be linked into C projects as a static archive. Key technical features include: - Compilation through LLVM to native binaries. - Reference-counted memory management (ARC). - Strong C interoperability via `@export` and `@link` directives. - A compiler implemented in Scala 3, available both as a CLI tool and a library via Maven Central. - Integrated testing support using `@test` attributes within the source code.