knurl. · Languages + tooling

A compiler should expose the important decisions.

Typed information flow gives ownership, effects and authority a place in the compiler and its tooling.

A graph around ordinary computation

knurl. treats a program as a typed information-flow network, while keeping local computation recognisable: expressions, bindings, branches, loops and calls. The purpose is to make movement, state access and authority explicit without turning every line into graph notation.

One semantic model, several consumers

The compiler pipeline moves from syntax and project binding through a typed semantic graph and Flow IR to native emission. Semantic queries expose that model to the IDE and agent tooling. The current native path emits C and headers; backend choice remains an architectural boundary rather than a language promise.

Self-regeneration is a specific milestone

The knurl.-written compiler has executed native-seeded regeneration, producing matching generated C and headers across generations. That exercises the native compiler on its own source. It does not prove full equivalence with the broader C#/.NET bootstrap checker or every ownership and authority rule.

An application finds different gaps

knurlbench. forces the language to handle actual text, files, process jobs and desktop interaction. This gives compiler and runtime changes an application-scale consumer instead of relying entirely on small syntax fixtures.

Current limits: Experimental. Bootstrap semantic authority, full diagnostic parity, ownership/lifetime enforcement and production optimisation remain open. Performance targets are not benchmark results.