v0.8.0
Sushi 0.8.0 is a milestone release centered on self-hosting enablers: a foreign function interface, three forms of variadic functions, generic instantiation across library boundaries, and first-class functions — alongside a hardened test suite, asserted diagnostics, and a large batch of correctness fixes.
Highlights
- Foreign Function Interface —
unsafe external "C"blocks with namespaced C calls (libc.strlen(s)), an opaque unmanagedptrtype, auto-marshalledstringarguments, variadic externs (printffamily), and a fullptrquarantine (CW5001, CE5001–CE5012). - Variadic functions — native homogeneous
...Tarrays, heterogeneous parameter packs...Tswith a compile-time-unrolledexpand, and packs that monomorphize across.sliblibrary boundaries. - Cross-library generics — generic functions, structs/enums, concrete perk implementations, and the private-symbol export closure all instantiate across
.slibboundaries. - First-class functions — function types
fn(P) -> T [| E]and function values: reference a top-level function, store it in a variable/struct field/List, pass it, and call through it (no closures in v1). - Quality — runtime validation is the default for tests, a
pytestlayer covers compiler internals, error codes are asserted on the compilation path, and fixes span i64 width, unsigned//%, RAII leaks, and several internal-compiler-error crashes.
Documentation
The full guide and tutorial are live at bigwhale.github.io/sushi-lang:
- Getting Started — install the compiler and build your first program
- Tutorial — a guided, 17-chapter course; every example is compiled and run
- New in 0.8.0: the First-Class Functions guide and Tutorial Chapter 17
- Variadic Functions and the Foreign Function Interface guides
Install
pip install https://github.com/BigWhale/sushi-lang/releases/download/v0.8.0/sushi_lang-0.8.0-py3-none-any.whlThe sushic compiler and the nori package manager are both installed.
See the full changelog for the complete list of changes.