@titzerbl.bsky.social

If you spent ten million dollars *per day* with absolutely nothing to show for it, it would take three hundred years (THREE CENTURIES!) to blow what Elon is worth on paper. You can only make so much money by creating and inflating your own fake currency. The system is completely broken.

If you earned..."earned"...five hundred million dollars *per year* since the birth of Jesus, you would still not have as much money as Elon is worth on paper. You can only make so much money by creating and inflating your own fake currency. The system is completely broken.

They changed the favicon of every single google service so I can't find my calendar in my tabs anymore. This about the 100,000th time some UI designers I never met just broke my brain's pattern recognition for no reason at all. Are they aware that people *use* computers for work?

Installing MX-Linux on old Chromebook to have a device I can abuse. Abysmally clunk firmware update process required a HW write protect bypass. Following a particularly crappy Ubuntu 26 first go, I conclude that if the UI is going to be shitty, it's better if shitty *and fast*. Go MX-Linux!

People who know me know my grumpiness about UI changes and obsolescence. While I appreciate the challenge of adding new features and onboarding users, popping up a walkthrough in my face is annoying. Most of the time I want a NOT RIGHT NOW button. I'll get to it later, please stop bothering me.

I have struggled with Rosetta 2 not liking Virgil x86-64 binaries for some time. Today I put Claude on it. It's fascinating watch it go through pretty heroic attempts to figure out the issue. We are hours and compiler patches deep in this, together.

Every new thing about MacOS upgrades infuriates me. Much ink has been spilled about the rounded corners, but how about the fact that the terminal application now has two columns' worth of horizontal padding that is now unusable. No reason at all. Just wasting space.

*sigh* After two months of fits and starts, I finally landed the big global regalloc refactor that passes the CI, and both Virgil and Wizard tests all pass now at -O3. I just have to fix the symbols for debugging, then stable rev...

So that "simple" register allocator bugfix metastasized into a rewrite of about one third--approaching one half, TBH--of the graph coloring allocator. And I just realized that deconstructing SSA before doing the pre-spill (shadow stack) phase was...unwise.

Getting dragged down into the register allocator hole again. Every time I disappear down the hole I spend several days paging stuff back in, learning two or three minor insights, fix a bug by turning something off, and then promptly forget it all.

Ugh, I am so close to being able to squashing the last -O3 bug in the Virgil compiler! It passes all of Virgil's, with bootstrap, and passes nearly all of Wizard's, except some mysterious coverage monitor bug and WASI fd_write. After -O3 it's time to stable rev!

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

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!

@titzerbl.bsky.social · last yr.

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...

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