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

Core model

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 type-based ADTs, lower snake case nominal names, ret, elif, # 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 closed for its recorded rows: Windows x86-64 passes under required Wine, and macOS x86-64 closed by required native Intel execution. The canonical matrix is compiler/llvm/tests/GATE14_TARGET_MATRIX.tsv, whose macOS arm64 row remains cross-link-only; that baseline states it must not be presented as executed until a trusted arm64 runner passes the suite. Object support is not the same as executable hosted support.

Start here