Sigil 0.6.0
This release brings Sigil much closer to full R7RS compliance, adds a complete web development workflow with live browser reloading, and introduces three new packages: a PEG parsing library, an Org Mode parser, and an XMPP client. Developer tooling improves significantly with rich error diagnostics, an enhanced MCP server, and watch mode for incremental builds.
R7RS Compliance
The biggest area of work in this release. Sigil now supports nearly all of R7RS Small:
- Control flow:
dynamic-wind,dosyntax,guardprompt limit raised for deeper exception handling - Macros:
let-syntax,letrec-syntax - Modules:
include,include-ci, import set modifiers (only,except,prefix,rename) - I/O: Bytevector ports,
read-bytevector!,char-ready?,u8-ready? - Output:
write-sharedwith datum labels for circular structure printing - Feature detection:
features,cond-expand,syntax-error - Libraries:
(scheme time),(scheme process-context),(scheme repl)withinteraction-environment - Literals:
#u8(...)bytevector literal syntax in compiler and reader
Web Development
A full live-development workflow for web applications:
- Live reloading: nREPL server with SSE-based browser reload — edit code, see changes instantly
- Higher-level UI components: Expanded component library for sigil-web
- API refinements: Improved ergonomics for routing, form handling, and GET requests
- CSS generation:
css-selfor compound selectors - MCP browser tools: 7 new tools for live browser control (morph, navigate, execute JS, reload CSS, error overlay)
- Demo application: Vinyl Vault, a full CRUD demo showcasing the web stack
New Packages
| Package | Description |
|---|---|
sigil-peg | Parsing Expression Grammars with S-expression DSL, backtracking, and captures |
sigil-org | Org Mode parser producing SXML (headlines, metadata, source blocks, tables, lists) |
sigil-xmpp | XMPP client with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC |
Supporting packages: sigil-crypto gains HMAC-SHA1 and PBKDF2-SHA1, sigil-tls adds tls-upgrade for STARTTLS.
Developer Tooling
- Rich error diagnostics: Structured error type hierarchy with Levenshtein-based "did you mean?" suggestions, source snippets with caret indicators in stack traces
- MCP server: Package-provided tool discovery, multi-form eval, format auto-fix, runtime doc fallback for undocumented exports, nREPL
describeandmodulesoperations - Watch mode:
sigil build --watchandsigil test --watchwith--format jsonsupport - Value inspection: New
(sigil inspect)module for structured introspection via nREPL and MCP - Project templates:
sigil initgainsweb-app,api-service, andmcp-tooltemplates - Docstring collection: Variable definitions now collect docstrings; native docs propagate through re-exports
Performance
- Dict lookup: FNV-1a hash cached on string keys, avoiding repeated computation
Library Improvements
- sigil-markdown: Inline parser rewritten using PEG grammars (~120 fewer lines, same behavior)
- sigil-json: Handle UTF-16 surrogate pairs in unicode escapes per RFC 8259
- sigil-docs: Re-export descriptions resolved from source module entries
Bug Fixes
- Fixed
SIGIL_NATIVES_MAXlimit (increased to 2048) for projects with many native bindings - Fixed
--no-colorflag in test runner - Fixed
git-fetchto include tags when updating cached bare repos - Fixed binary-safe nREPL wire protocol and SIGPIPE handling
- Fixed MCP format tool crash