SLUL
Safe Lightweight Usable Language

This is a work in progress!

Source code: git repo (codeberg.org), backup repo

Goals

And of course combinations of these. E.g. memory safety should still be guaranteed even if dependencies are upgraded to newer versions.

Target audience

Free/Open Source software (FOSS) developers who want a safe and simple programming language that works with low-end devices (e.g. single-board computers, old hardware, etc.).

Sample code

Not working yet!

\slul 0.0.0
\name example
\type cli
\depends thing 0.2

func arena Application.start() -> ExitStatus {
    ref var Thing t = .new(this)
    if t.get_color() == .red {
        t.paint(.color = .green)
    }
    return .success
}

Language taxonomy

Note: The language is very far from finished, and there is not even a working compiler!

Safety features (The "S" in SLUL)

NOTE: Most things in this section are not yet checked.

🔒 Memory safety will be enforced by the compiler:

🔒 API stability will be enforced by the compiler (and loader):

🔒 Principle of least privilege / Sandboxing / Capabilities:

🔒 Type safety:

🔒 Platform-indpendent by default:

🔒 Pure by default:

🔒 No loopholes/unsafe:

Lightweightness (The "L" in SLUL)

ðŸŠķ Low complexity/bloat:

ðŸŠķ Memory allocation:

ðŸŠķ Language:

ðŸŠķ Fast compilation:

Usable (The "U" in SLUL)

😃 Syntax:

😃 Semantics:

😃 Memory safety:

😃 Build system:

Related programming languages

Thanks to

Status

A lot remains to be done! The first milestone is to have a PoC (proof of concept) for GNU/Linux.