seed Overview
seed is a statically typed, imperative, expression-oriented systems language. It targets straightforward Python-like readability where possible while retaining C/Rust-class control over layout, execution, linkage, and low-level hardware access.
The language has no GC, lifetime syntax, exception unwinding, hidden async runtime, or mandatory libc. Costs such as allocation, deep clone, reference- count retain, blocking, syscalls, and dynamic loading are explicit.
Current identity
- language name:
seed - source extension:
.sd - source encoding: UTF-8
- text: owned
stringand borrowedstr, both valid UTF-8 - identifiers: ASCII lower snake case, including type names
- constants: ASCII upper snake case
- compiler: operational clean LLVM compiler under
compiler/llvm
Core model
- copy scalars;
- move owned resources;
- borrow read-only views allocation-free;
- clone explicitly;
- clean live managed values exactly once on structured exits;
- use
linear tfor exactly-once obligations; - use
unsafeonly around audited raw operations; - use ADTs,
result/option, exhaustivematch, and?for recoverable flow; - use structured
spawnand ordinary task/channel libraries instead of async/await.
Small core and ecosystem
Files, networking, processes, serialization, formatting, collections, and synchronization live in separately compiled libraries. Hosted libraries are shared dynamically by default; static linkage is explicit. Freestanding, kernel, driver, and boot programs use the same language under restricted runtime profiles.
Current limits
The clean compiler implements phase-1 and phase-2 f-strings for text, bool,
integers, IEEE-754 floats, format specifiers, and static display/debug traits.
It does not
implement legacy enum, capitalized nominal names, return, # comments, built-in
chan<t>/send/recv, detached spawn, macros, or a language-level handle
returned directly by spawn. The task library provides typed structured
results. Reproducible packages, LSP, doc/lint, and exact incremental artifacts
are implemented by Gate 15 tooling.
Gate 14 portability is still in progress: Windows x86-64 has required Wine execution evidence; macOS x86-64 awaits native Intel execution and macOS arm64 remains explicitly cross-link-only.