Commit86738c1dRecorded26 Apr 2026Repositorysigil-sxml

Add Woodpecker CI; drop CHANGELOG.md

Message

- .woodpecker.yml: minimal pipeline that fetches the pinned sigil v0.14.0 release binary, runs sigil deps install, then sigil test on push + PR + manual triggers. Single step (cross-step state does not survive a Woodpecker container boundary). - Drop the inherited CHANGELOG.md per the no-CHANGELOG policy: release narrative now lives in annotated git tags. See procedures/library-release-conventions.

Changed
 .woodpecker.yml |  29 +++++++++++++++++++++++++++++
 CHANGELOG.md    | 154 ----------------------------------------------------------------------------------------------------------------------------------------------------------
 2 files changed, 29 insertions(+), 154 deletions(-)
Diff
.woodpecker.ymladded
@@ -0,0 +1,29 @@
+1
# Woodpecker CI configuration for Codeberg
+2
# https://docs.codeberg.org/ci/
+3
#
+4
# Library CI: fetch the pinned sigil release binary, install deps via
+5
# from-git pins, run the test suite. Pinned to a specific monorepo
+6
# release (rather than the rolling `dev`) so a flaky monorepo doesn't
+7
# cascade across all extracted-repo CIs. Bump via search/replace when
+8
# a new release is cut.
+9
#
+10
# Single-step on purpose: $HOME-rooted state from `sigil deps install`
+11
# does not survive a Woodpecker step boundary, so fetch + deps + test
+12
# must all run in the same container.
+13
+14
when:
+15
- event: [push, pull_request, manual]
+16
+17
variables:
+18
- &alpine_image "alpine:3.20"
+19
+20
steps:
+21
test:
+22
image: *alpine_image
+23
commands:
+24
- apk add --no-cache curl ca-certificates git
+25
- curl -fLo ./sigil https://codeberg.org/sigil/sigil/releases/download/v0.14.0/sigil-linux-amd64-static
+26
- chmod +x ./sigil
+27
- ./sigil --version
+28
- ./sigil deps install
+29
- ./sigil test
CHANGELOG.mddeleted
@@ -1,154 +0,0 @@
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.7.0] - 2026-03-01
11
12
### Added
13
14
- Added procedure specifications with inline (: ...) syntax, optional runtime checking via sigil-checks feature, and predicate combinators (any-of, maybe, list-of, none-of).
15
- Added procedure specs and docstrings to all exported procedures.
16
- Added procedure specs and docstrings to all exported procedures.
17
- Added define-native compiler form for declaring native C bindings in Scheme modules with optional specs and docstrings.
18
- Added VM-level exception handler stack for tail-optimized guard semantics, replacing prompt-based exception handling.
19
- Added multi-VM threading with share-nothing architecture, message passing, and parallel-map for data-parallel workloads.
20
- Added preemptive yield points at loop back-edges to prevent CPU-bound tasks from starving the async scheduler.
21
- Added procedure specifications with inline (: ...) syntax, optional runtime checking via sigil-checks feature, and predicate combinators (any-of, maybe, list-of, none-of).
22
- Added procedure specs and docstrings to all exported procedures.
23
- Added procedure specs and docstrings to all exported procedures.
24
- Added procedure specs and docstrings to all exported procedures.
25
- Added immediate-mode terminal UI toolkit with native C grid, layout system, component rendering, event parsing, text input, and chat demo application.
26
- Added procedure specs and docstrings to all exported procedures.
27
- Added procedure specs and docstrings to all exported procedures.
28
- Added procedure specs and docstrings to all exported procedures.
29
- Added procedure spec display in MCP search and exports tool output.
30
- Added streaming HTTP download support with binary-safe reads and file serving with Range request support.
31
- Added procedure specs and docstrings to all exported procedures.
32
- Added procedure specs and docstrings to all exported procedures.
33
- Added procedure specs and docstrings to all exported procedures.
34
- Added immediate-mode terminal UI toolkit with native C grid, layout system, component rendering, event parsing, text input, and chat demo application.
35
- Added procedure specs and docstrings to all exported procedures.
36
37
### Changed
38
39
- Changed I/O multiplexing to use epoll (Linux) and kqueue (macOS/BSD) instead of select(2) for better scalability.
40
- Changed I/O multiplexing to use epoll (Linux) and kqueue (macOS/BSD) instead of select(2) for better scalability.
41
42
### Fixed
43
44
- Fixed false positive capture corruption check in serializer, Windows build issues with mingw macro collision and unix-connect, closure arity errors now catchable by guard, and exception handler double-pop segfault.
45
- Fixed sigil docs api command and added procedure spec signatures to generated API documentation.
46
47
## [0.6.0] - 2026-02-22
48
49
### Added
50
51
- Added package-provided MCP tools with dynamic discovery and nREPL describe/modules operations.
52
- Added package documentation for web stack (SXML, CSS, and Web routing/UI).
53
- Added higher-level UI components, css-sel compound selectors, Vinyl Vault demo application, and improved web API ergonomics including table actions, form loading, GET request handling, and error overlay fixes.
54
- Add Org Mode parser producing SXML output with support for headlines, metadata, source blocks, inline markup, links, lists, and property drawers.
55
- Added table parsing support to Org Mode parser.
56
- Add rich error diagnostics with structured error type hierarchy, VM error kind mapping, and (sigil diagnostic) module with Levenshtein-based suggestions.
57
- Added R7RS compliance features: dynamic-wind, do syntax, datum labels, let-syntax, letrec-syntax, include/include-ci, import set modifiers (only, except, prefix, rename), cond-expand, features, syntax-error, bytevector ports, write-shared with datum labels, char-ready?, u8-ready?, interaction-environment, and (scheme time/process-context/repl) libraries.
58
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.
59
- Added package documentation.
60
- Add 7 new MCP tools for live browser control (web-morph, web-error, web-status, web-navigate, web-css-class, web-css-reload, web-exec) with supporting SSE events and dev helpers.
61
- Added package documentation for web stack (SXML, CSS, and Web routing/UI).
62
- Added higher-level UI components, css-sel compound selectors, Vinyl Vault demo application, and improved web API ergonomics including table actions, form loading, GET request handling, and error overlay fixes.
63
- Added live-coding support via nREPL and SSE reload for real-time browser updates.
64
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.
65
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.
66
- Added package documentation for socket and websocket APIs.
67
- Added package documentation for socket and websocket APIs.
68
- Add rich error diagnostics with structured error type hierarchy, VM error kind mapping, and (sigil diagnostic) module with Levenshtein-based suggestions.
69
- Add 7 new MCP tools for live browser control (web-morph, web-error, web-status, web-navigate, web-css-class, web-css-reload, web-exec) with supporting SSE events and dev helpers.
70
- Added live-coding support via nREPL and SSE reload for real-time browser updates.
71
- Added package-provided MCP tools with dynamic discovery and nREPL describe/modules operations.
72
- Add (sigil inspect) module for structured value introspection with nREPL and MCP integration.
73
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.
74
- Add rich error diagnostics with structured error type hierarchy, VM error kind mapping, and (sigil diagnostic) module with Levenshtein-based suggestions.
75
- Added live-coding support via nREPL and SSE reload for real-time browser updates.
76
- Added package-provided MCP tools with dynamic discovery and nREPL describe/modules operations.
77
- Add (sigil inspect) module for structured value introspection with nREPL and MCP integration.
78
- Added higher-level UI components, css-sel compound selectors, Vinyl Vault demo application, and improved web API ergonomics including table actions, form loading, GET request handling, and error overlay fixes.
79
- Added live-coding support via nREPL and SSE reload for real-time browser updates.
80
- Added package documentation for web stack (SXML, CSS, and Web routing/UI).
81
- Add XMPP client library with STARTTLS, SASL (SCRAM-SHA-1/PLAIN), roster, presence, and MUC support.
82
83
### Fixed
84
85
- Fixed SIGIL_NATIVES_MAX limit by increasing to 2048.
86
- Fixed MCP format tool crash with auto-fix support, binary-safe nREPL wire protocol, and SIGPIPE handling.
87
- Fixed MCP format tool crash with auto-fix support, binary-safe nREPL wire protocol, and SIGPIPE handling.
88
89
### Other
90
91
- Cache FNV-1a hash for string dict keys, avoiding repeated hash computation on dict lookups.
92
- Collect docstrings for variable definitions and propagate native doc strings through re-exports.
93
- Handle UTF-16 surrogate pairs in JSON unicode escapes. Reject bare low surrogates per RFC 8259.
94
- Support multi-form eval via eval-string and add runtime doc fallback for undocumented exports.
95
- Resolve re-export descriptions in search index from source module entries.
96
97
## [0.5.0] - 2026-02-17
98
99
### Added
100
101
- Added test harness generation and build support for packages with native dependencies. Improved native package handling, added c-flags field to library struct. Fixed stdlib inclusion in bundles with custom native runtimes, directory structure preservation in compile-c-sources, and absolute sigil-lib include path resolution.
102
- Added test coverage.
103
- Added test coverage.
104
- Added test coverage for TCP/UDP/address operations and crypto primitives.
105
- Added test coverage for TCP/UDP/address operations and crypto primitives.
106
- Added test coverage.
107
- Added test coverage.
108
- Added test coverage.
109
- Added test coverage.
110
111
### Fixed
112
113
- Fixed random seed initialization crash caused by flonum-to-bignum promotion in modulo. Fixed status command crash when displaying projected versions for packages without changes.
114
- Fixed SSE and remove-after initialization on child elements. Added comprehensive test coverage for routing, middleware, cookies, security, SSE, and response helpers.
115
116
### Other
117
118
- New packages split from sigil-studio. Font and image modules moved to (sigil graphics *) namespace.
119
- GC correctness: added write barriers to all heap mutation sites, enabled GC during compilation with full compiler rooting, and added GC stress testing infrastructure. Completed HAMT dict implementation (printing, equality, collision handling, structural removal). Added arbitrary-precision bignum type with full reader/VM/native/serializer integration. Performance: inline caching for module binding lookups, peephole optimizer with 8 superinstruction patterns. Improved error handling: replaced exit(1) with recoverable errors, fixed error propagation in vm_error_abort and OP_ABORT_TO_PROMPT. Added definition location tracking in stack traces. Implemented VFS/bundle directory listing. Fixed number->string precision for exact IEEE 754 roundtrip. Removed dead opcodes.
120
- Configured custom mbedTLS for TLS 1.2 only. Added test coverage for connection predicates, failure paths, and error handling.
121
- New packages split from sigil-studio. Font and image modules moved to (sigil graphics *) namespace.
122
123
## [0.4.0] - 2026-01-14
124
125
### Added
126
127
- 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.
128
- 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.
129
- 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)`.
130
- 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.
131
- 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.
132
- 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.
133
134
### Fixed
135
136
- 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.
137
- Fixed `with-api-docs` to correctly resolve package-centric documentation paths. API documentation generation now works correctly for all package layouts.
138
- Fixed missing package dependency declaration that could cause import errors when using sigil-irc in isolation.
139
- Fixed socket API issues and improved documentation. Socket operations now behave more consistently across platforms.
140
141
### Other
142
143
- 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.
144
- 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.
145
146
## [0.1.0] - 2026-01-09
147
148
### Other
149
150
- Initial release of the test framework with assertions, test discovery, filtering, and formatted output.
151
- Initial release with TCP and UDP socket support for network programming.
152
- Core runtime providing a bytecode VM with incremental mark-sweep garbage collector, S-expression reader with extensible syntax, and hygienic macro system supporting syntax-rules and syntax-case. Native bindings for I/O, filesystem, networking, process management, SQLite, and cryptographic hashing.
153
- Initial release with SXML utilities for XML/HTML document construction and manipulation.
154