Self-hosting compiler
Rewrite the Havran compiler in Havran itself — the ultimate proof that the language is ready for serious work. Still in the research phase while the core stabilizes.
Goals for each part of the Havran stack — what's shipped, what's in progress, and what's next. Honest and updated as we go.
The Havran compiler — a clean, type-safe language that transpiles to the smallest possible TypeScript.
Rewrite the Havran compiler in Havran itself — the ultimate proof that the language is ready for serious work. Still in the research phase while the core stabilizes.
Sub-second rebuilds for large projects via a persistent compilation cache and a first-class hvc --watch . Faster feedback is the single biggest quality-of-life win we can ship.
A Language Server Protocol implementation powering autocomplete, inline diagnostics, hover types, and refactors in VS Code and JetBrains IDEs.
val user = User("Ann", 30)
user. // ← completions, hover types, go-to-definition suspend functions, asyncScope { } , and cancellation that compiles to clean async / await with lifecycle tracking — no zones, no runtime overhead.
Tiered lowering shipped: data classes erase to interfaces, sealed interfaces to discriminated unions, and enums to string-literal unions — promoted to real classes only when behavior demands it.
The foundation: String? → string | undefined , ?. / ?: / !! , and compile-time bans on JavaScript's weird comparisons. The reason Havran exists.
Havran Mark — a concise markup language that transpiles to clean, semantic HTML.
Reusable, typed markup components with slots and props — authored in Havran, rendered to plain HTML with zero client runtime.
The first milestone: a parser and emitter that turns Havran Mark into semantic, accessible HTML, with attribute checking and Havran string interpolation.
Pinning down the surface syntax — how elements, attributes, and expressions read — so it feels like a natural sibling of the Havran language.
Havran Mark is early. Want to shape it? The grammar is still up for debate.
HavranStyle — a Sass-inspired styling language that transpiles to modern, optimized CSS.
First-class, type-checked design tokens — colors, spacing, typography — shared between HavranStyle and the Havran UI framework so themes stay consistent and refactorable.
The Sass-like ergonomics developers expect — nesting, mixins, and pure functions — compiled to flat, modern CSS with custom properties where it helps.
A parser and emitter that turns HavranStyle into optimized, minification-friendly CSS, with helpful compile-time errors for invalid properties.
Defining the syntax and how it interoperates with the rest of the Havran toolchain.
A signals-based UI framework where Havran, Havran Mark, and HavranStyle come together.
The end goal: one cohesive stack — Havran for logic, Havran Mark for structure, HavranStyle for style — with a single build, fully interoperable with the existing web ecosystem.
A signals-based reactivity model that maps naturally onto Havran's by delegation and operator functions, compiling to efficient, minimal DOM updates.
var count by signal(0)
count++ // updates only what depends on itA throwaway prototype to validate the rendering model and the binding contract before any public commitment.
The UI framework is the most ambitious — and the furthest out. Ideas welcome.