Setting up the Layout Tests for the WebKit Windows Port, I ran into issues running the tests in Docker with process isolation. Specifically creating off-screen windows and drawing to them didn’t seem to work the same as in hyper-v isolation.| Ian Grunert
Raymond Chen posted a blog back in 2019 stating that Fibers aren’t useful for much any more; there’s just one corner of it that remains useful for a reason unrelated to fibers.| Ian Grunert
While working on enabling libpas on the Windows port for WebKit, I ran into some linking errors:| Ian Grunert
As my first task at Pax Andromeda, I worked on (re)enabling all the JIT tiers for JavaScriptCore on Windows. This work has landed upstream in WebKit and JIT has been enabled by default on Windows. I’ll go into the background leading up to this, what changed that presented this opportunity, the work that landed, and some of the problems that came up along the way. If you’d like to join my team and work on WebKit, we’re hiring (remote US): reach out at ian@pax-andromeda.com.| Ian Grunert
Recently I landed changes to enable Wasm on Windows in WebKit. This built upon previous work to support fast webassembly memory. There were some fun challenges in getting this to work which I’ll dig into below.| Ian Grunert
On Brian Kardell’s post Where Browsers Come From there’s an estimate given on the cost of maintaining the three major browser engines:| Ian Grunert
I’m (hopefully) getting closer to the finish line on enabling Wasm on Windows in WebKit. Recently I had a setback, when Yusuke Suzuki pointed out the critical flaw in the approach to free up r11 for use as the ws1 scratch register. I had missed that r11 was used as a scratch register not only within the offlineasm compiler, but also with MacroAssemblerX86. Using r11 was working and passed tests - but it’d also be very brittle going forward, as r11 could get clobbered by a new instruction,...| Ian Grunert
WebAssembly (Wasm) is named to evoke “assembly language” but really it’s more of a portable bytecode format, ran by a virtual machine. There’s multiple independent implementations - V8, SpiderMonkey and JavaScriptCore all have their own, and there’s projects like wasmtime for running outside the browser.| Ian Grunert
Static site generators, and choosing the “right” one is a real rabbit hole. There’s an overwhelming set of options, each have upsides and downsides, and there is always a temptation to roll-your-own bespoke solution.| Ian Grunert
Recently I worked on a couple of WebKit bugs where being able to inspect the compiled assembly output was useful. In situations like these, compiler explorer is a good tool to have in your toolbox.| Ian Grunert