titzerbl.bsky.social
@titzerbl.bsky.social
I submitted a PR to add Wizard to the features page for the official WebAssembly site:

webassembly.org/features/

(cached preview doesn't seem to show that new column, though)
Feature Status - WebAssembly
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the...
webassembly.org
November 21, 2025 at 12:44 AM
Reposted
Haven't tried myself yet, but this VSCode extension for customisable debug visualisations looks absolutely amazing. marketplace.visualstudio.com/items?itemNa...
November 12, 2025 at 5:00 PM
Reposted
new bloggery: a look back on the last couple years of developments in v8's garbage collector

wingolog.org/archives/202...
the last couple years in v8's garbage collector — wingolog
wingolog: article: the last couple years in v8's garbage collector
wingolog.org
November 13, 2025 at 3:22 PM
Today I presented to the Wasm CG a proposal for fine-grained dynamic code generation as a core WebAssembly feature. The proposal is now at phase 1!

github.com/WebAssembly/...

Also immortalized in song: suno.com/song/19e0679...
GitHub - WebAssembly/jit-interface: WebAssembly specification, reference interpreter, and test suite for the jit-interfaces proposal.
WebAssembly specification, reference interpreter, and test suite for the jit-interfaces proposal. - WebAssembly/jit-interface
github.com
October 29, 2025 at 9:49 PM
Reposted
It’s live! "@graalvm.org meets #WebAssembly” from @devoxx.com: compile JVM apps to Wasm (Web Image) and run Wasm in Java or Kotlin at near‑native speed (GraalWasm). Lots of live demos included!
www.youtube.com/watch?v=uefc...
GraalVM meets WebAssembly by Fabio Niephaus
YouTube video by Devoxx
www.youtube.com
October 10, 2025 at 12:54 PM
How I'm feeling about data layout / protocol description languages right now.

...except none of them even ending up becoming standard!

xkcd.com/927/
Standards
xkcd.com
September 17, 2025 at 3:35 PM
@dubroy.com alerted me to the Safari release notes (developer.apple.com/documentatio...) say version 26 ships an in-place interpreter for WebAssembly, which is in part based on the Wizard design, but adapted for Safari's use cases.

This is cool!

Wasm brings all the VMs to tiers!
developer.apple.com
September 16, 2025 at 1:44 PM
Today I finished implementing the last of the relaxed-simd proposal (now Phase 4). That completes Wizard's support for all of the Wasm 3.0 features, which includes all the good things like exception handling, function references, garbage collection, and tail calls!

github.com/titzer/wizar...
GitHub - titzer/wizard-engine: Research WebAssembly Engine
Research WebAssembly Engine. Contribute to titzer/wizard-engine development by creating an account on GitHub.
github.com
August 6, 2025 at 7:49 PM
Hello, it's 2011 again and I'm crashing the MacOS kernel with 300 byte binaries. If only it were someone *else's* kernel.
May 21, 2025 at 11:49 PM
Whenever a new feature is hot off the presses I am a little hesitant to use it in "production" code, and certainly a self-hosted compiler requires a stable rev to be usable, but man--unittests? Blast away with those lambda bombs.

I have so much pent-up closuring!
That about does it for lambdas in Virgil.

Woohoo!

First there were just Class, Functions, Tuples, and Type Parameters. Then there were algebraic data types. Then, partial application. Now, full lexical closures!

github.com/titzer/virgi...
[funexpr] Implement captured variables by titzer · Pull Request #395 · titzer/virgil
github.com
April 30, 2025 at 6:39 PM
That about does it for lambdas in Virgil.

Woohoo!

First there were just Class, Functions, Tuples, and Type Parameters. Then there were algebraic data types. Then, partial application. Now, full lexical closures!

github.com/titzer/virgi...
[funexpr] Implement captured variables by titzer · Pull Request #395 · titzer/virgil
github.com
April 27, 2025 at 11:13 PM
Reposted
As of last December, release 2.0 of the #Wasm specification is “official”! Read Andreas Rossberg's post, which happens to be the first real post on the #WebAssembly website's new News 🗞️ section: webassembly.org/news/2025-03....
- WebAssembly
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the...
webassembly.org
March 20, 2025 at 7:24 AM
Yesterday we put up the camera-ready for the WALI paper!

This paper introduces Thin Kernel Interfaces for WebAssembly which allows a new class of powerful applications for Wasm and building higher-level interfaces like WASI in an engine-agnostic way.

arxiv.org/abs/2312.03858
Empowering WebAssembly with Thin Kernel Interfaces
Wasm is gaining popularity outside the Web as a well-specified low-level binary format with ISA portability, low memory footprint and polyglot targetability, enabling efficient in-process sandboxing o...
arxiv.org
March 19, 2025 at 8:03 PM
Wizard has supported Wasm GC for a while now, but now it finally supports all GC opcodes in JIT-only mode. The object model needs work, but this unblocks more perf work for stack switching.

github.com/titzer/wizar...
[spc] Fix register of ref.test (#298) · titzer/wizard-engine@83436b1
github.com
February 14, 2025 at 3:31 AM
Over the past week or so I spent some time adding some syntactic sugar (with type inference) to Virgil. The idea is that function/method bodies that are a simple return of an expression can have their return types inferred. A can of worms, but looks nice, IMHO.

github.com/titzer/wizar...
[refactor] Experiment with using simple function bodies · titzer/wizard-engine@39f36f9
github.com
February 10, 2025 at 8:17 PM
Windows 95 was launched 30 years ago.

I had a programming book on Windows 95...in 1994!! 500+ pages that documented darn near everything. Glossary, index, working examples, migration path. The amount of preparation that went into this launch was astounding.

www.youtube.com/watch?v=_Jzf...
Microsoft Windows 95 Launch with Bill Gates & Jay Leno (1995)
YouTube video by Blue OS Museum
www.youtube.com
January 24, 2025 at 1:44 AM
Finally pulled the trigger on another stable revision of the Virgil compiler (checking in the binaries of the compiler having compiled itself), which is good because right after is the perfect time to shake things up with new features and optimizations!

github.com/titzer/virgi...
[stable] Release III-8.1787 (#335) · titzer/virgil@31a9990
github.com
January 20, 2025 at 2:57 AM
Reposted
Last year I asked a question about the state of tracing JITs, and it led to a wonderful exchange. @cfbolz.bsky.social has written a terrific summary that captures a lot of folk knowledge that would otherwise be lost. Thanks!
pypy.org/posts/2025/0...
Musings on Tracing in PyPy
Last summer, Shriram Krishnamurthi asked on Twitter: "I'm curious what the current state of tracing JITs is. They used to be all the rage for a while, then I though I heard they weren't so effective,
pypy.org
January 6, 2025 at 2:21 PM
Today I got to do some thinking about compiler IRs and finally solved a problem that has been vexing me for at least a dozen years:

Is it possible to directly interpret a sea-of-nodes graph efficiently (i.e. no schedule)? What does that even mean?

Yes Virginia, it's possible. It means max ILP.
January 6, 2025 at 4:54 AM