Skip to content

v0.8.0

Choose a tag to compare

@BigWhale BigWhale released this 11 Jun 20:06
8baf1ad

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 Interfaceunsafe external "C" blocks with namespaced C calls (libc.strlen(s)), an opaque unmanaged ptr type, auto-marshalled string arguments, variadic externs (printf family), and a full ptr quarantine (CW5001, CE5001–CE5012).
  • Variadic functions — native homogeneous ...T arrays, heterogeneous parameter packs ...Ts with a compile-time-unrolled expand, and packs that monomorphize across .slib library boundaries.
  • Cross-library generics — generic functions, structs/enums, concrete perk implementations, and the private-symbol export closure all instantiate across .slib boundaries.
  • 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 pytest layer 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:

Install

pip install https://github.com/BigWhale/sushi-lang/releases/download/v0.8.0/sushi_lang-0.8.0-py3-none-any.whl

The sushic compiler and the nori package manager are both installed.

See the full changelog for the complete list of changes.