As simple as an interpreted language. As fast as a compiled one.
fn main() {
print("Hello, World!")
}
Lamo compiles down to plain C — no virtual machine, no bytecode, no interpreter sitting in the hot path. Just readable source in, optimized native machine code out.
|
⚡ Native performance Transpiles to C, then compiles with GCC/Clang — real executables, no VM overhead. 🧠 Clean syntax Optional semicolons, Python-like truthiness, and a small, readable grammar. 🧬 Generics
Generic functions, structs, |
🏷️ Tagged-union enums
📦 Batteries included Built-in package manager, formatter, test runner, and REPL. 🌐 Real-world builtins Native HTTP server support and GUI backends (Win32 / X11). |
| Repository | What it is |
|---|---|
| ⚡ LamoLanguage | The core compiler, standard library, package manager, formatter, REPL & tests |
| 🖼️ LamoImage | Reference implementation of the .lamo image container format |
| 🧩 LamoLanguageVscode | VS Code extension for Lamo syntax & tooling support |
| 🤖 LamoLLM | LLM-assisted tooling and workflows for the Lamo language |
🗄️ LamoPacketManager archived |
Original standalone package manager, since folded into the core compiler |
struct Player {
name: string,
hp: int
}
impl Player {
fn damage(amount: int) {
self.hp -= amount
}
}
let hero = Player { name: "Arthur", hp: 100 }
hero.damage(25)
print(hero.hp) // 75
🧬 Generics, expanded
fn pick<T>(a: T, b: T) -> T {
if (1 < 2) { return a }
return b
}
struct Stack<T> {
items: array<T>,
top: int
}
impl<T> Stack<T> {
fn push(x: T) {
self.items.push(x)
self.top += 1
}
}
let s: Stack<int> = Stack<int> { items: [], top: 0 }
s.push(10)
print(pick("left", "right")) // "left"
git clone https://github.com/LamoLanguage/LamoLanguage
cd LamoLanguage
make # build the compiler → produces the `lamo` binary
make test # run the full regression suite
./lamo run examples/main.lamo| Command | Description |
|---|---|
lamo run <file.lamo> |
Compile and run a source file |
lamo build <file.lamo> -o <name> |
Compile to a binary without running it |
lamo check <file.lamo> |
Parse and semantic-check only — great for CI |
lamo fmt <file.lamo> |
Normalize source formatting in place |
lamo test |
Run the test suite |
lamo eval / lamo repl |
Fast-feedback interpreter, no C compile step |
Full docs live in docs/, including the language spec, type system, and memory model.
As simple as an interpreted language, as fast as a compiled one.
Lamo stays deliberately small. Every new construct ships with defined semantics, compiler validation, and tests — syntax never outruns meaning.
Contributions are welcome across every repo in this org — compiler internals, standard library, editor tooling, or docs. Open an issue or PR to get started, and check docs/SPEC.md before changing language behavior.
Released under the MIT License