Sigil 0.22.9

release

A size release. Web builds of native-compiled apps are about 70% smaller, and call-heavy native code runs faster, because the compiler no longer spends most of each function's code on bookkeeping. Measured on Crash The Stack, Harkfell and Phantom Burn at the same commits.

Download 0.22.9Get started

Existing projects build without changes. Rebuild to pick up the smaller output.

Web builds are about 70% smaller

A game's wasm is almost all code the compiler emits for its Sigil modules, and two thirds of that was per-function boilerplate: every local variable registered with the garbage collector by its own inlined call, and every call followed by its own copies of the error and exception exits. Locals are now kept in one array that is registered once, and a function's exits share one label.

Game0.22.80.22.9Change
Crash The Stack44.8 MB12.0 MB-73%
Harkfell31.7 MB9.0 MB-72%
Phantom Burn11.4 MB3.7 MB-68%

Gzipped downloads shrink by 35 to 42%. Crash The Stack and Harkfell were over Cloudflare Pages' 25 MiB file limit and are now well under it.

Native code calls faster

Native desktop builds use the same compiler, so a function now makes room for its garbage collector roots once instead of once per local. A call-heavy benchmark (fib, tak) runs in about half the time. In the browser, Crash The Stack's game tick went from 11.7 ms to 9.2 ms a frame, and its whole frame callback from 14.4 ms to 10.6 ms.

Fixes

Known issues