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
### Other
package.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"