Skip to content

Kiln 2.0.0

Choose a tag to compare

@AxDSan AxDSan released this 16 Sep 02:51
· 35 commits to main since this release

Kiln 2.0 — Kiln 2 is the language: C#-shaped, still one native binary.

Kiln 2.0 is the release where Kiln 2 is Kiln. A program is C#-shaped source —
namespaces, classes and records with methods, generics, lambdas, T?,
Result<T> and no exceptions — compiled to one native binary with no runtime,
no metadata in the binary and no interpreter inside. A 1.x program still builds,
with a deprecation note; kiln migrate converts one.

This release invalidates 1.x source and the C ABI. KILN_ABI_VERSION is 5:
event handlers carry an environment pointer, so a support library must be
rebuilt against it. The versioning promise starts here — 2.x will not break a
Kiln 2 program that compiles today.

Language

  • Namespaces, static class/class/record/enum/interface, methods and
    constructors, visibility, const, var/let.
  • Generics, methods and types: monomorphised, where constraints enforced.
  • Lambdas and capturing closures, Func<>/Action<>, Where/Select/Any/
    First/OrderBy/Sort over List<T>.
  • Result<T> with ? and ??, T? with null-check narrowing, x! and x?..
  • switch expressions, defer, $"…{x}…" interpolation.
  • [Table]/[Column]/[Auto] compile-time SQL, [Packed] binary layouts,
    [Dll] and c-function-pointer interop, [CLayout] records.

The RAD half

  • form blocks and partial form, components and properties, Click += …
    wired to a method group or a lambda written at the wiring site.
  • Studio opens, edits, saves and wires Kiln 2 forms through kiln inspect and
    kiln edit — the CLI is the only reader and the only writer.

Targets

  • Console and GUI programs, sharedlib and staticlib with a C header, on
    Linux x86-64, plus Windows x64/x86 cross builds.

Tooling

  • kiln fmt (fixed point, comments carried) and kiln migrate (1.x → K2).
  • Language server: diagnostics, outline, formatting, hover, completion.
  • DWARF debug info: a K2 binary is steppable, and records, classes, lists,
    dictionaries, sets, Result<T>, string and T? all read as the shapes
    they are.

Runtime

  • The collector reclaims memory while the program runs, including values held
    only in a module variable and environments held by handlers wired at run
    time.

Bundles: kiln-2.0.0-linux-x86_64.tar.gz and
kiln-2.0.0-windows-x86_64.zip, with .sha256 checksums beside them.