Sigil 0.22.16
A bug-fix release for compilation, long-running programs and audio. The compiler keeps its intermediate values alive through garbage collection, completed child processes release their backing memory, and async producers and consumers resume correctly. Cues and streams also share output protection in the browser.
Fixes
- Garbage collection during compilation could leave stale values in the compiler's intermediate representation and corrupt saved module hints. Those values now stay rooted until the compiler finishes using them.
- Completed child processes now release their backing memory as well as their handles, preventing memory growth in programs that repeatedly spawn children.
- A producer or consumer passed to
call-with-valuescan now yield and resume with its returned values intact, including through a first-class reference tocall-with-values. - Sigil-managed Zig 0.16 SDKs now search the allocator's CPU partitions for reusable slots before mapping more memory. Distro and user Zig installations on PATH stay usable without changes to their SDKs.
- Browser audio now limits the combined output after cues, streams and one-shot sounds are mixed. A cue over a loud stream stays at or below full scale; quiet output stays unchanged. The matching native fix is in sigil-audio 0.13.1.