News

Announcements, articles and every Sigil release. Follow along with the Atom or RSS feed.

Sigil 0.23.0

A memory and runtime release. Native and C-to-WebAssembly programs use less memory, idle programs wake less often, and a full Unix socket queue no longer stalls other fibers.

release

Sigil 0.22.17

Sigil now manages its own memory allocator. Native programs built for static Linux x86_64 and C-to-WASM web builds use mimalloc 3.5.3 behind a new allocator interface, and the sigil command itself switches with them. Long-running programs hold much less memory, and web builds start smaller and grow less.

release

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.

release

Sigil 0.22.15

A bug-fix release for closures and long-running programs. Capturing a conditional internal definition no longer breaks a closure, pipe readers keep moving on Linux static builds and Android, and short file reads no longer leave the garbage collector's allocation totals growing.

release

Sigil 0.22.14

A bug-fix release. syntax-rules now handles nested ellipses, sigil build --watch works again, and Sigil behaves better in scripts: no color codes in piped output, and clean version info.

release

Sigil 0.22.13

A bug-fix release. The headline: since 0.22.10, a non-ASCII character in any manifest string (an em-dash in a description:, say) broke sigil deps for every project that read it. That's fixed, along with a build hang, a few native string miscompiles and --dry-run.

release

Sigil 0.22.12

A correctness release. Sigil ignored a program's own binding of a builtin's name, such as a local not or an internal (define (car x) ...), on every backend, and several older bugs mixed up local names with macro keywords. Both are fixed. Release configs also compile optimized C by default now.

release

Sigil 0.22.11

A release in two parts. sigil task gives a project and its dependencies one way to share scripts, such as a game engine's publish tools. And a long list of memory-safety and correctness fixes, found by reading and testing the runtime closely: several were silent wrong answers or memory corruption that had been there for a long time.

release

Sigil 0.22.10

A correctness and build-cache release. Optimized builds could compute wrong answers in two patterns, compiled code skipped argument-count checks, and Sigil's caches could run the wrong compiled code, ship stale native code, or throw away work they had already done. All of that is fixed, and an unchanged rebuild of a program now recompiles almost nothing.

release

Sigil 0.22.9

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.

release

Sigil 0.22.8

A correctness release. Release and web builds could drop the guard of a small helper procedure, comparisons with NaN answered true, and sigil mcp serve showed no tools in new Claude Code sessions. It also fixes a web app that doesn't import (sigil core), a from-path dependency that was silently left out, macros that allocated on every use in native code, and modules reused after SIGIL_FEATURES changed. More of R7RS now works without an import.

release

Sigil 0.22.7

A game audio and correctness release. Sound effects in the browser now play the moment they're triggered, a game's synth can drop to a lower rate on a weak phone, and sigil is ready to take upgrades from the signed registry. Three defects are fixed along the way: an error lost between nested guards, a -L path that stopped sigil starting, and tests run against dependencies the lock doesn't name.

release

Sigil 0.22.6

A reliability release for scripts, plus the groundwork for sigil env. Two defects let a program lose data or an error and still exit 0, and the command line swallowed -L arguments meant for other programs. All three are fixed, and several errors that named nothing now say what went wrong.

release

Sigil 0.22.5

A regular expressions and web reliability release, plus Windows icons. Sigil now has regular expressions in the standard library. Web builds could also fail in ways nothing on the code path explained: a type error from nowhere, or text that parsed fine natively coming back as garbage. Crash The Stack hit both, including a menu that froze on phones.

release

Sigil 0.22.4

A web audio release. A page that is not cross-origin isolated no longer mixes its sound on the main thread, so a long game frame no longer pops the audio. Found by Crash The Stack's live soundtrack on a phone over a plain http host.

release

Sigil 0.22.3

A native-codegen correctness release. Two defects found by Crash The Stack in its first week of play, both invisible to the bytecode VM and to every in-process test suite: a release binary that could crash at startup depending on where it was built, and a web build that leaked memory on every frame.

release

Sigil 0.22.2

A patch for the seams a game project hit in its first two days: between the two backends, between a game and the web loader, between what a docstring says and what a procedure does. It also repairs a 0.22.1 regression that stopped script-style source files from building. Everything here came from Crash The Stack's toolchain notes, each item with the measurement that found it.

release

Sigil 0.22.1

A cache-correctness and test-reliability release. The package cache now proves what it reuses: it hashes the bytes of every input and output it depends on, binds the compiler's own identity into the cache key, and declines to reuse anything it cannot fully account for. The test runner stops counting other checkouts' tests as your own, and its file summary can finally report a shortfall. An opt-in evidence journal records what a test run actually loaded and executed, for qualifying a release rather than trusting a green suite.

release

Sigil 0.22.0

A scripting and reliability release. Sigil is more convenient for operational scripts, the bundled client supports TLS 1.3, and builds and sockets recover more reliably from cache and resource problems. Direct file execution now provides the scripting prelude automatically; ordinary evaluation remains available through sigil eval -f.

release

Sigil 0.21.0

A test-reporting honesty release, and the first one that can turn a previously green suite red. sigil test could report success while running fewer tests than it appeared to, or none at all, and nothing in its output said so. Both cases now fail the run.

release

Older releases are on the releases page.