Hew 0.6.2: safer values, steadier services
Edit parsed configuration without changing its source value, then see how Hew 0.6.2 carries the same actor reference across local and remote services.
20 posts
Edit parsed configuration without changing its source value, then see how Hew 0.6.2 carries the same actor reference across local and remote services.
Check deployment settings at build time, reuse generic closures and give an actor access to one directory.
Start with a small file tool, then follow the language features that let it grow into a service with owned resources, workers and typed protocols.
Build a small file tool with fork, await and typed failures, then see what changes when work suspends or is cancelled.
LSP transitive goto-definition, module search-path documentation, eval WASM coverage, URL percent-encoding, and a binary-safe fs.try_read_bytes.
Structural trait bounds now work without explicit impl declarations. Plus an in-process REPL, Rc<T>, typed network errors, SMTP one-shot helpers, and a large stdlib surface expansion.
hew-observe auto-discovers running programs over unix sockets. Plus a codegen fix that eliminated a class of actor crashes, and WebSocket server support in the stdlib.
hew-codegen is gone: the compiler is a single binary now. Plus a major runtime hardening pass, generic channels, and 562 E2E tests.
The self keyword is gone: actors use this, impl methods use named receivers, and generic impl<T> blocks finally work.
No new language features — just making Hew build and run on FreeBSD, which meant writing a kqueue poller and unifying the linker flags.
The type system does more work so you do less — range-checked literal coercion, recursive enums, and generators that use real coroutines.
Two features and a Docker fix — you can finally step through Hew programs in a debugger.
What started as "add machine types" turned into 64 PRs, a wire system redesign, and 1,344 lines removed from codegen.
I wrote some algorithm examples, profiled the generated code, and discovered the codegen had problems I'd been ignoring.
False warnings, deleted abstractions, and a Windows build that finally works. Five releases in three days.
I actually tried installing what I built. Most of it was broken.
A small one — two build system fixes that only matter if you're packaging Hew, not writing it.
I removed the alpha suffix and immediately had to build a release pipeline that could actually ship the thing.
The first release worked well enough to reveal the next layer of problems. This one fixes them.
Removed the alpha suffix, ran the pipeline, watched it turn green. That's v0.1.0.