AtlatestRenderedmarkdown
Readme
Changelog
Versions are synced with Sigil releases. A missing entry indicates no changes for that version.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.10.2] - 2026-09-21
Added
- The mouse wheel.
(mouse-wheel)answers the wheel's vertical travel since the last frame and(mouse-wheel-x)the horizontal, in GLFW's units (a notch is 1.0 on most mice; vertical + is away from the user), summed over the frame from GLFW's scroll callback and cleared with the other per-frame input. Without a window both answer 0.0. Wanted by Crash The Stack's tracker (the wheel scrolls the pattern; David, 2026-09-21).
[0.10.1] - 2026-09-20
Added
- The rest of the keyboard.
key-down?,key-pressed?andkey-released?now knowf1..f25,page-up/page-down,home/end,insert/delete,right-shift/right-ctrl/right-alt,caps-lock, the punctuation row (commaperiodslashsemicolonapostropheminusequalleft-bracketright-bracketbackslashgrave, or the character itself as a symbol) and the keypad (kp-0..kp-9,kp-enter,kp-add,kp-subtract). The 0.10.0 names are unchanged. Wanted by Crash The Stack's tracker, whose FastTracker key model needs the function keys, paging and the punctuation row natively. (key-code key): the GLFW key code a symbol names, or#ffor a name that is no key; needs no window, so a program can check a binding before it is used and the symbol table is testable (test/test-keys.sgl).
[0.10.0] - 2026-09-20
The package is now sigil-desktop, and the window is GLFW instead of sokol_app.
Changed
- Native Wayland on Linux. GLFW 3.5.1 is vendored as source under
vendor/glfw(no local patches,VENDOR.mdhas the pin and inventory). One binary runs as a Wayland client or under X11, picked at startup;SIGIL_DESKTOP_PLATFORM=wayland|x11forces it. Under sokol_app the Linux window was always X11 (XWayland on a Wayland desktop). - No platform libraries linked. GLFW loads libwayland-client, libxkbcommon, libX11 and friends, libEGL and libGL at run time; the Linux
link-flagsare empty (were-lX11 -lXi -lXcursor). A game's NEEDED list loses those three. - Framebuffer pixels follow the output scale. On a Wayland output at scale 2 a window asked for at 800x600 has a 1600x1200 framebuffer;
frame-width/frame-heightreport it andmouse-x/mouse-yare in the same pixels. Fractional scales work. A program with hard-coded pixel coordinates should lay out fromframe-widthandframe-height. On X11 nothing changes. - The library is
(sigil desktop).(sigil app)remains as a re-export for this release only. app-runraisesapp-run: could not open a window(exit 1) when no display platform or GL context is available; sokol_app aborted.(quit-requested?)answers#tinside the frame the close button was pressed in, not only in cleanup.- The frame clock restarts after the init procedure, so a long asset load is not the first frame's delta time.
- GL 4.3 core is requested on Linux and Windows and 4.1 on macOS, as before; the window has no default icon (sokol_app drew one).
Added
include/sigil-desktop.h:sigil_desktop_framebuffer_size,sigil_desktop_gl_get_proc_address,sigil_desktop_platform, the C surface sigil-graphics builds its swapchain and GL loader on.src/c/dl-search.c: adlopenthat finds runtime libraries in Guix and Nix profile directories (SIGIL_LIBRARY_PATH,$GUIX_ENVIRONMENT/lib, nix-shell inputs,$NIX_LD_LIBRARY_PATH, the user and system profiles), withtest/dl-search-test.sh.guix/run-wayland.scm,guix/run-x11.scm,guix/build.scm.SIGIL_DESKTOP_VERBOSE=1for startup, resize and library-resolution diagnostics.
Removed
vendor/sokol(sokol_app, sokol_time, sokol_log) and thesapp_*symbols. sigil-graphics 0.11.4 no longer links them.
Requires
- Sigil 0.20+ as before. Building on Guix needs the X11 and Wayland headers in
guix/build.scm(libx11, libxcursor, libxrandr, libxinerama, libxi, libxext, xorgproto, wayland, libxkbcommon).
Upgrade notes
- Relock at the new URL. The Codeberg repository is
sigil/sigil-desktopsince 2026-09-20 (renamed in place, the old URL redirects): write(from-git url: "codeberg:sigil/sigil-desktop" version: "^0.10.0")on your own window dependency line. The transitional form the tag notes describe,(from-git url: "codeberg:sigil/sigil-app" name: "sigil-desktop" ...), still works through the redirect; a line with neither the new URL norname:beside a sigil-graphics 0.11.4 installs the repository twice (sigil-app0.9 besidesigil-desktop0.10, two window stacks, a duplicateslog_funcat link time), because sigil-build keys a dependency by the name it derives from the URL. - Delete the consumer's
build/once (a stalesokol-app.ootherwise stays in the old archive), then rename(sigil app)imports to(sigil desktop)before 0.11.
[0.9.0] - 2026-06-25
Changed
- Raised the toolchain requirement to Sigil 0.17. The package now declares
sigil: "^0.17"and pinssigil-stdlibto^0.17. Sigil 0.17 makes the package-levelsigil:field mandatory and derives the native codegen runtime (sigil-lib) from it, so building under the 0.17 compiler requires this bump. This is a minor release because consumers caret-pinning sigil-app must move to the 0.17 line.
Requires
- Sigil 0.17+ (
sigil-stdlib/sigil-lib0.17 line).
[0.8.4] - 2026-04-24
Fixed
link-flags:now uses(lambda (ctx) (case (target-os ctx) ...))instead of a host-based(case (host-os) ...)expression. The host-based form evaluated at package-load time on the host, so Linux link flags (-lX11 -lXi -lXcursor) leaked into Windows cross-compile builds;sigil build --config windows-amd64from a Linux host would fail at the final link against zig's MinGW sysroot. The procedural form re-evaluates at link time with the target triple. Branches themselves are unchanged (linux:-lX11 -lXi -lXcursor;darwin:-framework Cocoa -framework QuartzCore;windows:-lkernel32 -luser32 -lshell32 -lgdi32).
Requires
sigil-build0.14.0+ (for thetarget-os/target-archhelpers and the procedural-link-flags dispatch incollect-native-link-flags).
[0.7.0] - 2026-03-01
Added
- Added procedure specifications with inline (: ...) syntax, optional runtime checking via sigil-checks feature, and predicate combinators (any-of, maybe, list-of, none-of).
- Added procedure specs and docstrings to all exported procedures.
- Added procedure specs and docstrings to all exported procedures.
[0.5.0] - 2026-02-17
Added
- 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.
- Added test coverage.
- Added test coverage.
Fixed
- 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.
Other
- New packages split from sigil-studio. Font and image modules moved to (sigil graphics *) namespace.