Commit9fcbe206Recorded14 Jan 2026Repositorysigil-version
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 | 31 +++++++++++++++++++++++++++++++
package.sgl | 2 +-
2 files changed, 32 insertions(+), 1 deletion(-)Diff
CHANGELOG.mdadded
@@ -0,0 +1,31 @@
+1
# Changelog+2
+3
All notable changes to this project will be documented in this file.+4
+5
The format is based on [Keep a Changelog](https://keepachangelog.com/),+6
and this project adheres to [Semantic Versioning](https://semver.org/).+7
+8
## [0.4.0] - 2026-01-14+9
+10
### Added+11
+12
- 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.+13
- 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.+14
- 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)`.+15
- 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.+16
- 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.+17
- 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.+18
- Added new sigil-version package containing the `(sigil version)` module for semantic version parsing and comparison. Applications can now parse version strings, compare versions, and check compatibility constraints programmatically.+19
+20
### Fixed+21
+22
- 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.+23
- Fixed `with-api-docs` to correctly resolve package-centric documentation paths. API documentation generation now works correctly for all package layouts.+24
- Fixed missing package dependency declaration that could cause import errors when using sigil-irc in isolation.+25
- Fixed socket API issues and improved documentation. Socket operations now behave more consistently across platforms.+26
+27
### Other+28
+29
- 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.+30
- 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.+31
package.sglmodified
@@ -5,7 +5,7 @@
5
6
(package 7
name: "sigil-version"−8
version: "0.1.0"+8
version: "0.4.0" 9
description: "Semantic versioning parsing and comparison" 10
url: "https://codeberg.org/sigil/sigil" 11
license: "BSD-3-Clause"