Commitc86aa7bdRecorded14 Jan 2026Repositorysigil-sxml
Release v0.4.0
Message
Packages with changes: - sigil-build - sigil-lib - sigil-publish - sigil-irc - sigil-web - sigil-socket - sigil-http - sigil-sxml - sigil-version - sigil-stdlib - sigil-cli
Changed
CHANGELOG.md | 25 +++++++++++++++++++++++++
package.sgl | 2 +-
2 files changed, 26 insertions(+), 1 deletion(-)Diff
CHANGELOG.mdmodified
@@ -1,10 +1,35 @@
1
# Changelog 2
+3
Versions are synced with Sigil releases. A missing entry indicates no changes for that version.+4
5
All notable changes to this project will be documented in this file. 6
7
The format is based on [Keep a Changelog](https://keepachangelog.com/), 8
and this project adheres to [Semantic Versioning](https://semver.org/). 9
+10
## [0.4.0] - 2026-01-14+11
+12
### Added+13
+14
- Added full macro hygiene support for syntax-rules and syntax-case. Macros now properly respect lexical scope, preventing accidental variable capture that could cause subtle bugs. This release also adds `free-identifier=?` for comparing identifiers in macro expansion, and the `#'` reader shorthand for `(syntax ...)` expressions.+15
- Added native C implementations of list operations (`assoc`, `assq`, `assv`, `member`, `memq`, `memv`) that were hotspots during macro expansion. This results in 2x faster test suite execution and 50% faster module compilation.+16
- Added ability for `guard` to catch VM-level errors such as type errors, division by zero, and out-of-bounds access. Previously these errors would terminate the program; now they can be handled gracefully using the new `vm-error?` predicate in `(sigil error)`.+17
- Added CPU and memory profiling infrastructure via the new `(sigil profile)` module. Developers can now measure execution time and memory allocation to identify performance bottlenecks in their applications.+18
- Added keyword argument support to `make-http-server` and `http-serve`. Server configuration is now cleaner and more readable, with named parameters like `port:`, `host:`, and `handler:` instead of positional arguments.+19
- Added `sxml->html` function for converting SXML trees to HTML strings. This complements the existing `html->sxml` parser, enabling round-trip HTML processing and programmatic HTML generation.+20
+21
### Fixed+22
+23
- Fixed source file names in error stack traces. Errors now display the correct file path with line and column positions (e.g., `main.sgl:3:15`), making debugging significantly easier.+24
- Fixed `with-api-docs` to correctly resolve package-centric documentation paths. API documentation generation now works correctly for all package layouts.+25
- Fixed missing package dependency declaration that could cause import errors when using sigil-irc in isolation.+26
- Fixed socket API issues and improved documentation. Socket operations now behave more consistently across platforms.+27
+28
### Other+29
+30
- Reduced release binary size from 3.2MB to 1.8MB through build optimizations. Smaller binaries mean faster downloads and reduced disk usage for deployed applications.+31
- BREAKING: Renamed UI components from sigil-* to sg-* prefix (e.g., sigil-button becomes sg-button) to mirror data-sg-* attributes. Also exported HTTP method symbols and simplified middleware composition with with-* helpers.+32
33
## [0.1.0] - 2026-01-09 34
35
### Otherpackage.sglmodified
@@ -4,7 +4,7 @@
4
5
(package 6
name: "sigil-sxml"−7
version: "0.3.0"+7
version: "0.4.0" 8
description: "SXML processing for Sigil" 9
url: "https://codeberg.org/sigil/sigil" 10
license: "BSD-3-Clause"