Skip to main content

Building Hew

Explore the design of Hew, from actor isolation and supervision to native compilation and developer tools.

Hew Notes

Language development, engineering articles, releases and community projects. About once a month, with an extra issue for a significant release. Written in English.

Subscribe to Hew Notes

All Posts

October 2026

June 2026

May 2026

Two ways to be generic: monomorphisation, and the day abstract types lowered without one Abstract type parameters with value witnesses, and a receive ABI that can borrow No GC, no double-free: ownership, copy-on-write strings, and fail-loud traps String Becomes Copy-on-Write and the Last Legacy Dispatch Path Is Retired Collections get a real ABI, closures get capture inference, and dispatch goes through one authority Hardening the Seams Instead of Adding Surface Talking between nodes: the CBOR wire envelope and a SWIM cluster that gossips Generators get a state machine, the cluster learns to gossip, and the wire format flips to CBOR State as a type: how machine declarations become tagged-union dispatch Generic Enums End-to-End and the Day for and while Finally Lower State Machines Reach Codegen and Closures Become First-Class Values Supervisors That Wire Themselves and Crash Hooks With Real Trap Codes Sends are method calls, crashes carry codes: the actor and supervision model WASM parity for free, almost: four targets from one MIR and the seams that weren't free From Parse Tree to Running Actor Retiring the C++ Backend and Teaching the Compiler to Monomorphise Decide in MIR, carry in nothing: why we deleted the MLIR backend before shipping a binary Making integers honest and making failure loud: widths, records, and trap-on-overflow Deleting the Send Operator to Make the Actor Model Honest Launching Hew The Double-Free and the Sized Integers Releasing v0.4.0 — LSP goto-definition, stdlib fixes, and WASM coverage

April 2026

March 2026

February 2026

Releasing v0.1.5 — Static Linking and Benchmarks Type System Improvements After the Initial Release Releasing v0.1.4 — False Warnings, Over-Engineering, and Windows Releasing v0.1.3 — Packaging and Signing Fixes Releasing v0.1.2 — Build System Fixes Tagging v0.1.0 and Building the Release Pipeline Releasing v0.1.1 — Codegen Fixes and FFI Linking Releasing v0.1.0 — Initial Public Release Fixing Generics and Adding Verification Pre-Alpha Syntax Cleanup Running Valgrind on Everything Closing the Gaps Replacing FlatBuffers with MessagePack Grammar Tooling and the MLIR Dialect Overhaul Testing the Language on Myself Generators and Actor Mailboxes Removing Six Syntax Redundancies How Fast Is It, Actually Throwing Away the First Compiler Three Spec Revisions in Three Days Building the Actor Runtime From cargo init to a Running Compiler Writing a Spec Before Writing Code