struct Point:
x: i32
y: i32
def length_sq(self) -> i32:
return self.x * self.x + self.y * self.y
def main() -> i32:
p = Point(3, 4)
print(f"sere {p.length_sq()}")
return 0Clean syntax: defs, lists, f-strings, and indentation. Read it once and you can start writing.
LLVM 22 backend. Sere compiles to a native binary — no interpreter and no VM between you and the machine.
Systems control when you need it: Unique and Shared pointers, structs, enums, and macros.
i8–i64, f32/f64, list[T], dict[K, V], Unique[T], and copy-by-value structs. Types are checked, not guessed at runtime.
quote bodies and name!(...) invocation. Expand code at compile time without leaving the language.
unique, shared, alloc, and free. Plug in mark-sweep, arena, or your own collector.
Errors are labeled TypeError, NameError, AttributeError — clear names that match what actually went wrong.
LSP for Cursor and VS Code: highlighting, go-to-definition, hover, rename, and # type: ignore.
Pack a project into a .slib and drop it in libs/. Native C in the library compiles into the same file.
Portable Pre-release v0.1.0 is up. Download the zip, or read how to install it.