A. H. Zakai
banner
kripken.com
A. H. Zakai
@kripken.com
Software engineer. Loves fantasy novels and Agatha Christie. he/they

Tech: WebAssembly, Emscripten, Binaryen. All opinions here are my own, not my employer's (Google).

More links in: http://kripken.github.io/blog/about/
The Bun JS runtime is very nice for reproducing Safari problems (JS and/or wasm) without a full WebKit browser:

github.com/emscripten-c...
ios 26.2 shared memory issues · Issue #25905 · emscripten-core/emscripten
We're encountering a new issue in our web app since installing ios 26.2 rc as well as the preceding beta versions. This is probably a webkit regression rather than an emscripten bug, but posting he...
github.com
December 23, 2025 at 9:57 PM
Reposted by A. H. Zakai
We have a NEW demo up on Steam that has an updated Procedural Survival world and also allows you to play one "Adventure" world, IsleOfVox! See which you like better and let us know :) www.youtube.com/watch?v=wicM...
Voxile new demo: Adventure + Survival world to try!
YouTube video by VoxRay Games
www.youtube.com
December 16, 2025 at 9:11 PM
Safari 26.2 is out, which fixes wasm exceptions:

github.com/emscripten-c...

Looks like it has some other wasm improvements too, like JS String Builtins (important for GC languages):

developer.apple.com/documentatio...

Nice work!
safari 26.0 can not handle wasm-exceptions anymore · Issue #25365 · emscripten-core/emscripten
in case anyone wonders and looks into here for help because their emsdk built web apps are not working anymore with apples latest macOS, iPadOS and iPhoneOS... my two web projects were since years ...
github.com
December 15, 2025 at 8:12 PM
Nice to see a human defeat a top chess engine for once...
December 14, 2025 at 10:39 PM
You may want to enable SIMD in wasm projects (if you are targeting new-enough browsers/VMs). Just adding

-msimd128

to clang/emcc/etc. will do LLVM autovectorization, which turns out is quite good on wasm:

github.com/emscripten-c...

A few nice benchmark speedups there, some unexpected.
Enable SIMD by default? · Issue #25945 · emscripten-core/emscripten
Probably a little early given the state of browser support, but eventually we may want to do this. This would allow the autovectorizer to do things, even without explicit SIMD in the source files. ...
github.com
December 13, 2025 at 12:33 AM
Reposted by A. H. Zakai
So if you're going to be doomscrolling today, at least make it a journey through decades of community creativity that helped shaped gaming as we know it.

Maybe something you made is in here?

doomscroll.cx
DoomScroll — Browse, Preview, and Play Thousands of User-Made Doom WADs
Endlessly scroll through decades of user-made Doom maps. Preview and play WADs instantly in your browser.
doomscroll.cx
December 11, 2025 at 12:07 AM
Binaryen, the WebAssembly optimizer toolchain project, is now listed on the wasm website's features page:

webassembly.org/features/

As mentioned there, it has support for all standardized features (and many in-progress ones)
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
December 10, 2025 at 6:40 PM
Reposted by A. H. Zakai
wild. not what anyone would have predicted as the endgame for a JS runtime
Bun is joining Anthropic
Bun has been acquired by Anthropic. Anthropic is betting on Bun as the infrastructure powering Claude Code, Claude Agent SDK, and future AI coding products & tools.
bun.com
December 2, 2025 at 6:18 PM
Reposted by A. H. Zakai
Holy shit, looks like in the right combination* WebNN inference on GPU is over 5x faster than WebGPU 🤯

Still looking for the catch, in all my previous experiments it was *slower* WebGPU, and still happens if any conditions below are not met.

This is all hightly unstable but exciting!
December 1, 2025 at 5:09 PM
Reposted by A. H. Zakai
In case you didn't notice, #WebGPU is most likely available in your browser now!
WebGPU is now supported in major browsers  |  Blog  |  web.dev
Read about the biggest web graphics launch since WebGL. WebGPU is supported across major browsers, bringing unparalleled performance to the web.
web.dev
November 25, 2025 at 6:44 PM
10 minutes of music that feel like 1

www.youtube.com/watch?v=KkHV...
Snarky Puppy & Metropole Orkest - It Stays With You (cond. Jules Buckley) [Official Video]
YouTube video by GroundUP Music NYC
www.youtube.com
November 22, 2025 at 3:49 AM
Reposted by A. H. Zakai
Seriously considering putting a bounty on x86-64 support for copy.sh/v86: github.com/copy/v86/iss...

A proper modern JITting emulator on the Web platform (including non-jailbroken iOS) would be amazing! I'm amazed how fast the jitcode can be, even with softmmu.
v86
Run KolibriOS, Linux or Windows 98 in your browser
copy.sh
November 22, 2025 at 12:01 AM
Reposted by A. H. Zakai
This week on the blog: Hoplites! We're taking a crack at explaining the long-running debate over the nature and significance of the ancient Greek heavy infantryman, the hoplite, and the phalanx in which he (mostly) fought.

acoup.blog/2025/11/14/c...
Collections: Hoplite Wars, Part I: The Othismos over Othismos
This week (and next) we’re looking at hoplites, the heavy infantry of the ancient Greek poleis in the (early? mid? late?) Archaic and Classical periods, into the Hellenistic. In particular, I…
acoup.blog
November 15, 2025 at 3:09 PM
Reposted by A. H. Zakai
Unreal Tournament can now be played IN A BROWSER

dos.zone/mp/?lobby=ut

Along with other late 90s PC FPS classics but yeah. UT99 in a browser window... just fantastic. Thanks to the r/LGR subreddit for letting me know about it!
Multiplayer Hub | DOS.Zone
Multiplayer Portal - is a best place to play classic DOS and Windows games online with your friends. No registration needed, no advertisment, just play! Quake, Half-Life, Heroes of Might and Magic, Wo...
dos.zone
November 14, 2025 at 4:57 PM
The ending to A House of Dynamite (2025) could have been a lot better

(and without changing the movie's message)

kripken.github.io/blog/movies/...
My "A House of Dynamite" Ending
(Massive spoilers below for A House of Dynamite)
kripken.github.io
November 9, 2025 at 10:17 PM
Reposted by A. H. Zakai
Emscripten 4.0.19 is out! 🎉

github.com/emscripten-c...

A major improvement for dynamic linking landed: the main module is built statically, without relocation overhead, making it smaller and faster. Only dynamic libraries now have relocation overhead. This makes dynamic linking much more useful 🚀
github.com
November 5, 2025 at 5:29 PM
Reposted by A. H. Zakai
Reverse engineering is where you delete the repo
November 4, 2025 at 10:40 PM
Reposted by A. H. Zakai
Some more cool JS Engine bugs found by Big Sleep were fixed in yesterday's Apple security updates: support.apple.com/en-us/125632
Technical details will be available soon at issuetracker.google.com/issues?q=com...
About the security content of iOS 26.1 and iPadOS 26.1 - Apple Support
This document describes the security content of iOS 26.1 and iPadOS 26.1.
support.apple.com
November 4, 2025 at 5:10 PM
current state: dumping the wasm after each wasm-opt pass to find where things go wrong

the size of each such wasm file: 257 MB
November 3, 2025 at 9:04 PM
Really proud of how well wasm-reduce simplified a testcase today:

github.com/WebAssembly/...

91,440 bytes into just 120, in a few minutes, and even though it is a hanging testcase
Bad optimization by `wasm-opt` · Issue #8013 · WebAssembly/binaryen
I think there's some optimization bug in wasm-opt See the attached wasmopt_bug.tar.gz file. Reproduction instructions: # Unpack % tar xvzf wasmopt_bug.tar.gz pkg/dart2wasm/bin/run_wasm.js dowhile.O...
github.com
October 31, 2025 at 7:20 PM
Reposted by A. H. Zakai
This is a very nice blog post because it is not afraid to explain hard work in terms of simple concepts. go.dev/blog/greente...
The Green Tea Garbage Collector - The Go Programming Language
Go 1.25 includes a new experimental garbage collector, Green Tea.
go.dev
October 30, 2025 at 10:26 PM
Reposted by A. H. Zakai
it has been a while, but whoo, new bloggery: "wastrel, a profligate implementation of webassembly" https://wingolog.org/archives/2025/10/30/wastrel-a-profligate-implementation-of-webassembly
wastrel, a profligate implementation of webassembly — wingolog
wingolog: article: wastrel, a profligate implementation of webassembly
wingolog.org
October 30, 2025 at 10:20 PM
Philosophers throwing shade
October 28, 2025 at 12:21 AM
Reposted by A. H. Zakai
please enjoy: my Wasm-hosted, Wasm-targeting build of Clang/Clang++/LLD: a self-contained, 25 MiB (gzipped) pure function
www.npmjs.com/package/@yow...
October 26, 2025 at 9:49 AM