Sigil 0.9.0
Lean core, ecosystem split, Zig everywhere. Sigil's monorepo sheds over 25,000 lines as libraries move to independent repositories with their own release cycles. The standard library is streamlined for AI-native development — pattern matching, transducers, R7RS compatibility, and functional programming utilities move to optional packages. Zig replaces GCC as the default C compiler for native builds, and Emscripten is replaced entirely by Zig + WASI for WebAssembly, enabling the Sigil REPL to run in browsers without heavyweight toolchain dependencies.
Ecosystem Split
The monorepo shrinks from 39 packages to 26. Extracted libraries are now independent repositories on Codeberg under the sigil/ organization, each with their own version tags, CI, and release cycle.
| Extracted Package | Repository | Description |
|---|---|---|
| sigil-peg | codeberg.org/sigil/sigil-peg | PEG parser combinators |
| sigil-sxml | codeberg.org/sigil/sigil-sxml | SXML to HTML/XML conversion |
| sigil-markdown | codeberg.org/sigil/sigil-markdown | CommonMark parser with YAML front matter |
| sigil-web | codeberg.org/sigil/sigil-web | Web application framework |
| sigil-css | codeberg.org/sigil/sigil-css | Programmatic CSS generation |
| sigil-match | codeberg.org/sigil/sigil-match | Pattern matching |
| sigil-fp | codeberg.org/sigil/sigil-fp | Functional programming utilities (compose, pipe, partial, threading macros) |
| sigil-transducers | codeberg.org/sigil/sigil-transducers | Composable transducers |
| sigil-r7rs | codeberg.org/sigil/sigil-r7rs | R7RS-small compatibility (scheme *) modules and SRFI-9 records |
| sigil-web-repl | codeberg.org/sigil/sigil-web-repl | Browser-based REPL (was sigil-playground) |
| press | codeberg.org/sigil/press | Static site generator (was sigil-publish) |
| sigil-site | codeberg.org/sigil/sigil-site | Official Sigil website |
| sigil-web-demo | codeberg.org/sigil/sigil-web-demo | Demo web application |
Extracted packages use from-git dependencies and dev-redirects.sgl for local development. All existing functionality is preserved — packages just live in their own repos.
AI-Native Standard Library
The standard library is streamlined based on a comprehensive audit of how AI agents actually use Sigil across 12 production codebases (117 libraries). Features with zero AI usage were moved to optional packages:
- Pattern matching (
match,match-let) — moved tosigil-match - Transducers (
mapping,filtering,transduce) — moved tosigil-transducers - Functional combinators (
compose,pipe,curry,partial,cut/cute) — moved tosigil-fp - Threading macros (
chain,->,some->) — moved tosigil-fp - R7RS compatibility (
(scheme base),(scheme write), etc.) — moved tosigil-r7rs - SRFI-9 records (
define-record-type) — moved tosigil-r7rs
The core language retains what AI agents naturally reach for: when/unless, keyword arguments, define-struct, guard/error, map/filter/apply/find, dicts, broadcast channels, and go concurrency.
Zig as Default Compiler
Zig is now the preferred C compiler across all build paths:
- Native builds:
detect-default-compilerandcompile-native-testspreferzig ccwhen available, falling back to systemcc/gcc - Cross-compilation: All eight platform targets use Zig (unchanged from 0.8)
- CI: Test and GC stress jobs use Zig via
with-zigwrapper - WebAssembly: New
webbuild config useszig cc -target wasm32-wasi(see below)
WebAssembly Without Emscripten
The web build target is completely rewritten. Emscripten is replaced by Zig targeting wasm32-wasi with a browser WASI polyfill:
- All 34 C source files compile with
zig cc -target wasm32-wasi - 3.3MB WASM binary (comparable to Emscripten output)
- Uses
@bjorn3/browser_wasi_shimfor WASI polyfill in browsers - New
__SIGIL_WASM__platform define replaces__EMSCRIPTEN__guards - Web build config:
sigil build sigil-web-repl --config web - Sigil REPL runs fully in the browser — expression evaluation, module loading, interactive input
sigil-docs Trimmed
sigil-docs is now a lightweight JSON lookup package for REPL inline help:
- Removed
(sigil docs commands)— thesigil docsCLI subcommand. Press handles all doc site generation now. - Removed
(sigil docs execute)— code block execution for doc validation - Removed dependencies on
sigil-markdownandsigil-sxml - Remaining:
(sigil docs lookup),(sigil docs search),(sigil docs types)— just reads the JSON files the compiler generates
sigil-cli Slimmed
The CLI drops several optional command modules and dependencies:
- Removed
sigil docscommand (handled by press) - Removed
sigil publishcommand (handled by press) - Removed
sigil changescommand (package deleted) - Removed dependencies:
sigil-docs,sigil-web,sigil-changes