Migrate to 0.9.1 transitive deps with version ranges and lockfile
Replace tag-pinned dependency URLs with version ranges (^0.9.0), trim to direct deps only, and add sigil.lock for reproducible builds. Update README build instructions to include sigil deps install.
.sigil/deps/sigil-ansi | 1 +
.sigil/deps/sigil-build | 1 +
.sigil/deps/sigil-css | 1 +
.sigil/deps/sigil-git | 1 +
.sigil/deps/sigil-json | 1 +
.sigil/deps/sigil-stdlib | 1 +
.sigil/deps/sigil-test | 1 +
.sigil/deps/sigil-version | 1 +
README.md | 3 +-
build/dev/lib/_pkg/sigil-ansi/manifest.json | 2 +-
build/dev/lib/_pkg/sigil-build/manifest.json | 2 +-
build/dev/lib/_pkg/sigil-css/manifest.json | 2 +-
build/dev/lib/_pkg/sigil-git/manifest.json | 2 +-
build/dev/lib/_pkg/sigil-json/manifest.json | 2 +-
build/dev/lib/_pkg/sigil-stdlib/manifest.json | 2 +-
build/dev/lib/_pkg/sigil-test/manifest.json | 2 +-
build/dev/lib/_pkg/sigil-version/manifest.json | 2 +-
build/dev/lib/sigil/ansi.json | 2 +-
build/dev/lib/sigil/ansi.sgb | Bin 26858 -> 33530 bytes
build/dev/lib/sigil/array.sgb | Bin 12545 -> 13058 bytes
build/dev/lib/sigil/async.sgb | Bin 75111 -> 77118 bytes
build/dev/lib/sigil/async/scheduler.sgb | Bin 1147 -> 1183 bytes
build/dev/lib/sigil/build.json | 220 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------
build/dev/lib/sigil/build.sgb | Bin 1004240 -> 1211662 bytes
build/dev/lib/sigil/build/bundle.json | 2 +-
build/dev/lib/sigil/build/bundle.sgb | Bin 126160 -> 137200 bytes
build/dev/lib/sigil/build/deps.json | 2 +-
build/dev/lib/sigil/build/deps.sgb | Bin 9908 -> 11972 bytes
build/dev/lib/sigil/build/graph.json | 2 +-
build/dev/lib/sigil/build/graph.sgb | Bin 15312 -> 19152 bytes
build/dev/lib/sigil/build/module-deps.json | 2 +-
build/dev/lib/sigil/build/module-deps.sgb | Bin 38133 -> 45237 bytes
build/dev/lib/sigil/build/native.json | 2 +-
build/dev/lib/sigil/build/native.sgb | Bin 29767 -> 33703 bytes
build/dev/lib/sigil/channels.sgb | Bin 29906 -> 31400 bytes
build/dev/lib/sigil/core.json | 22 ++++-----------
build/dev/lib/sigil/core.sgb | Bin 370367 -> 385133 bytes
build/dev/lib/sigil/coroutines.sgb | Bin 5954 -> 6206 bytes
build/dev/lib/sigil/css.json | 2 +-
build/dev/lib/sigil/css.sgb | Bin 31911 -> 36319 bytes
build/dev/lib/sigil/deps/fetch.json | 2 +-
build/dev/lib/sigil/deps/fetch.sgb | Bin 86485 -> 155361 bytes
build/dev/lib/sigil/deps/lock.json | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
build/dev/lib/sigil/deps/lock.sgb | Bin 0 -> 22355 bytes
build/dev/lib/sigil/deps/redirects.json | 2 +-
build/dev/lib/sigil/deps/redirects.sgb | Bin 40042 -> 45178 bytes
build/dev/lib/sigil/deps/semver.json | 56 +++++++++++++++++++++++++++++++++++++
build/dev/lib/sigil/deps/semver.sgb | Bin 0 -> 15922 bytes
build/dev/lib/sigil/diagnostic.sgb | Bin 20002 -> 20839 bytes
build/dev/lib/sigil/dict.sgb | Bin 14017 -> 14566 bytes
build/dev/lib/sigil/env.sgb | Bin 6321 -> 6537 bytes
build/dev/lib/sigil/error.sgb | Bin 95193 -> 97587 bytes
build/dev/lib/sigil/exceptions.json | 155 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
build/dev/lib/sigil/fs.sgb | Bin 56189 -> 57854 bytes
build/dev/lib/sigil/gc.sgb | Bin 2713 -> 2821 bytes
build/dev/lib/sigil/generators.sgb | Bin 21215 -> 22223 bytes
build/dev/lib/sigil/git.json | 2 +-
build/dev/lib/sigil/git.sgb | Bin 34976 -> 40688 bytes
build/dev/lib/sigil/inspect.sgb | Bin 27801 -> 28620 bytes
build/dev/lib/sigil/io.sgb | Bin 48215 -> 49322 bytes
build/dev/lib/sigil/json.sgb | Bin 70289 -> 73838 bytes
build/dev/lib/sigil/list.sgb | Bin 22684 -> 23917 bytes
build/dev/lib/sigil/math.sgb | Bin 5789 -> 6050 bytes
build/dev/lib/sigil/package.json | 54 ++++++++++++++++++++----------------
build/dev/lib/sigil/package.sgb | Bin 92703 -> 102400 bytes
build/dev/lib/sigil/path.sgb | Bin 6303 -> 6528 bytes
build/dev/lib/sigil/process.sgb | Bin 10273 -> 10678 bytes
build/dev/lib/sigil/profile.sgb | Bin 9256 -> 9508 bytes
build/dev/lib/sigil/random.sgb | Bin 24284 -> 25139 bytes
build/dev/lib/sigil/resources.sgb | Bin 25676 -> 26369 bytes
build/dev/lib/sigil/spec.sgb | Bin 2859 -> 2967 bytes
build/dev/lib/sigil/string.sgb | Bin 21343 -> 22216 bytes
build/dev/lib/sigil/struct.sgb | Bin 50798 -> 52373 bytes
build/dev/lib/sigil/syntax.sgb | Bin 4632 -> 4839 bytes
build/dev/lib/sigil/test.json | 2 +-
build/dev/lib/sigil/test.sgb | Bin 55619 -> 57775 bytes
build/dev/lib/sigil/test/cli.json | 2 +-
build/dev/lib/sigil/test/cli.sgb | Bin 19736 -> 20786 bytes
build/dev/lib/sigil/test/native.json | 2 +-
build/dev/lib/sigil/test/native.sgb | Bin 33494 -> 34642 bytes
build/dev/lib/sigil/test/runner.json | 2 +-
build/dev/lib/sigil/test/runner.sgb | Bin 88925 -> 92901 bytes
build/dev/lib/sigil/threads.sgb | Bin 11138 -> 11453 bytes
build/dev/lib/sigil/time.sgb | Bin 26135 -> 26981 bytes
build/dev/lib/sigil/version.json | 2 +-
build/dev/lib/sigil/version.sgb | Bin 54835 -> 64051 bytes
build/dev/lib/sigil/watch.sgb | Bin 13459 -> 13999 bytes
build/dev/lib/sigil/web/styles.sgb | Bin 4231 -> 4933 bytes
build/dev/lib/sigil/web/styles/palette.sgb | Bin 13408 -> 13408 bytes
build/dev/lib/sigil/web/styles/typography.sgb | Bin 17395 -> 18392 bytes
package.sgl | 9 ++----
sigil.lock | 20 ++++++++++++++
92 files changed, 519 insertions(+), 178 deletions(-).sigil/deps/sigil-ansiadded
/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-ansi No newline at end of file.sigil/deps/sigil-buildadded
/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-build No newline at end of file.sigil/deps/sigil-cssadded
/home/daviwil/.sigil/deps/codeberg-sigil-sigil-css-0d8253368180a3b9bc8c096de19176f1d830a5b1 No newline at end of file.sigil/deps/sigil-gitadded
/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-git No newline at end of file.sigil/deps/sigil-jsonadded
/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-json No newline at end of file.sigil/deps/sigil-stdlibadded
/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-stdlib No newline at end of file.sigil/deps/sigil-testadded
/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-test No newline at end of file.sigil/deps/sigil-versionadded
/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-version No newline at end of fileREADME.mdmodified
## Build```shsigil build sigil-web-stylessigil deps installsigil buildsigil test```build/dev/lib/_pkg/sigil-ansi/manifest.jsonmodified
{ "name": "sigil-ansi", "version": "0.7.0", "version": "0.9.1", "description": "Terminal colors and formatting for Sigil"}build/dev/lib/_pkg/sigil-build/manifest.jsonmodified
{ "name": "sigil-build", "version": "0.7.0", "version": "0.9.1", "description": "Build system and package management for Sigil"}build/dev/lib/_pkg/sigil-css/manifest.jsonmodified
{ "name": "sigil-css", "version": "0.7.0", "version": "0.8.0", "description": "S-expression CSS DSL for composable stylesheets"}build/dev/lib/_pkg/sigil-git/manifest.jsonmodified
{ "name": "sigil-git", "version": "0.7.0", "version": "0.9.1", "description": "Git operations for Sigil tools"}build/dev/lib/_pkg/sigil-json/manifest.jsonmodified
{ "name": "sigil-json", "version": "0.7.0", "version": "0.9.1", "description": "JSON parsing and generation for Sigil"}build/dev/lib/_pkg/sigil-stdlib/manifest.jsonmodified
{ "name": "sigil-stdlib", "version": "0.7.0", "version": "0.9.1", "description": "Core Sigil standard library"}build/dev/lib/_pkg/sigil-test/manifest.jsonmodified
{ "name": "sigil-test", "version": "0.7.0", "version": "0.9.1", "description": "Testing framework for Sigil"}build/dev/lib/_pkg/sigil-version/manifest.jsonmodified
{ "name": "sigil-version", "version": "0.7.0", "version": "0.9.1", "description": "Semantic versioning parsing and comparison"}build/dev/lib/sigil/ansi.jsonmodified
{ "module": "(sigil ansi)", "package": "sigil-ansi", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-ansi/src/sigil/ansi.sgl", "source": "/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-ansi/src/sigil/ansi.sgl", "description": "(sigil ansi) - ANSI Terminal Escape Codes\n\nColored and styled terminal output using ANSI escape codes.\nAll functions are prefixed with `a:` to avoid naming conflicts.\n\n## Basic Usage\n\n```scheme\n(import (sigil ansi))\n\n(display (a:green \"PASS\"))\n(display (a:bold (a:red \"FAIL\")))\n(display (a:dim \"at test.sgl:42\"))\n```\n\n## Composing Styles\n\nStyles can be nested for combined effects:\n\n```scheme\n(display (a:bold (a:underline (a:cyan \"Important\"))))\n```\n\n## Cursor Control\n\n```scheme\n(display (a:clear-screen))\n(display (a:cursor-position 10 20)) ; row 10, column 20\n```\n\n## Disabling Colors\n\nFor non-TTY output, disable ANSI codes:\n\n```scheme\n(with-ansi-disabled\n (lambda ()\n (display (a:red \"This won't have color\"))))\n```", "exports": [ {build/dev/lib/sigil/ansi.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/array.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/async.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/async/scheduler.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/build.jsonmodified
{ "module": "(sigil build)", "package": "sigil-build", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-build/src/sigil/build.sgl", "source": "/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-build/src/sigil/build.sgl", "description": "(sigil build) - Build System Library\n\nThis library provides the core build system functionality including:\n- Build context for threading state through actions\n- Core build actions (compile, link, etc.)\n- Task execution\n\nActions are composable procedures that transform the build context.\nThey are defined using defn with keyword parameters (SRFI-88 style).\n\nExample usage:\n\n (define ctx (make-context package config workspace ws-dir pkg-dir))\n (define ctx2\n ((compile-c-sources sources: '(\"src/main.c\" \"src/lib.c\")) ctx))", "exports": [ { "name": "context", "kind": "procedure", "description": "Build context that threads state through action steps.\n\nActions receive the context and return a modified context. This allows\nchaining actions while accumulating artifacts and environment state.", "line": 136 "line": 138 }, { "name": "context?", "kind": "procedure", "description": "Test if a value is a `context` struct.", "line": 136 "line": 138 }, { "name": "context-config", "kind": "procedure", "description": "Current `<config>` record being used for this build.", "line": 136 "line": 138 }, { "name": "context-package", "kind": "procedure", "description": "Current `<package>` record being built.", "line": 136 "line": 138 }, { "name": "context-workspace", "kind": "procedure", "description": "The `<workspace>` driving the build (for version info, shared configs).", "line": 136 "line": 138 }, { "name": "context-workspace-dir", "kind": "procedure", "description": "Workspace root directory path (for consolidated output paths).", "line": 136 "line": 138 }, { "name": "context-package-dir", "kind": "procedure", "description": "Package directory path (for resolving source file paths).", "line": 136 "line": 138 }, { "name": "context-artifacts", "kind": "procedure", "description": "Accumulated artifacts as `((type . path) ...)` alist.", "line": 136 "line": 138 }, { "name": "context-env", "kind": "procedure", "description": "Environment variables as `((name . value) ...)` alist.", "line": 136 "line": 138 }, { "name": "context-verbose?", "kind": "procedure", "description": "If `#t`, output verbose build information.", "line": 136 "line": 138 }, { "name": "context-dry-run?", "kind": "procedure", "description": "If `#t`, print commands without executing them.", "line": 136 "line": 138 }, { "name": "context-force?", "kind": "procedure", "description": "If `#t`, force rebuild regardless of mtime checks.", "line": 136 "line": 138 }, { "name": "context-work-count", "kind": "procedure", "description": "Counter for actual compilation/build work performed.", "line": 136 "line": 138 }, { "name": "context-cache", "kind": "procedure", "description": "Content-addressable build cache callbacks, or #f to disable.\nAlist with 'check and 'store! procedures when enabled.", "line": 136 "line": 138 }, { "name": "make-context", "kind": "procedure", "description": "Create an initial build context from a package, config, and workspace\nws: the workspace driving the build (for accessing version info, etc.)\nws-dir: the workspace root directory (for consolidated output paths)\npkg-dir: the package directory (for resolving source paths)\nopts: optional alist with keys: verbose, dry-run, force", "line": 168 "line": 170 }, { "name": "make-workspace-context", "kind": "procedure", "description": "Create a build context for workspace-level tasks (no package)\nws: the workspace driving the build\nws-dir: the workspace root directory\nopts: optional alist with keys: verbose, dry-run, force", "line": 191 "line": 193 }, { "name": "context-add-artifact", "kind": "procedure", "description": "Add an artifact to the context\nReturns a new context with the artifact added\nConverts relative paths to absolute paths", "line": 211 "line": 213 }, { "name": "context-increment-work", "kind": "procedure", "description": "Increment the work counter for the context\nCall this when actual compilation/build work is performed", "line": 220 "line": 222 }, { "name": "context-get-artifacts", "kind": "procedure", "description": "Get all artifacts of a given type", "line": 225 "line": 227 }, { "name": "context-artifacts-grouped", "kind": "procedure", "description": "Group artifacts by type into an alist for external consumption.\nFilters out internal artifacts (like object files) that shouldn't\npropagate to dependent packages.\nReturns: ((type1 . (path1 path2 ...)) (type2 . (path3 ...)) ...)", "line": 236 "line": 238 }, { "name": "list-or-false?", "kind": "procedure", "description": "Type predicate for optional list fields in define-action\nAllows either a proper list or #f (meaning \"get from context\")", "line": 264 "line": 266 }, { "name": "ensure-directory", "kind": "procedure", "description": "Ensure a directory exists, creating it if necessary\nCreates parent directories as needed", "line": 274 "line": 276 }, { "name": "print-build-step", "kind": "procedure", "description": "Print a styled build step (similar to make output)\naction: the action name (e.g., \"COMPILE\", \"LINK\", \"AR\")\ntarget: the file being processed\nPrint a build step indicator (with newline)", "line": 287 "line": 289 }, { "name": "print-build-step-start", "kind": "procedure", "description": "Print a build step indicator without newline (for use with line count indicator)", "line": 295 "line": 297 }, { "name": "run-process", "kind": "procedure", "description": "Run a process and check for success\nIn verbose mode or on error, shows full output.\nIn quiet mode (default), suppresses output unless command fails.\nReturns #t on success, raises error on failure", "line": 305 "line": 307 }, { "name": "run-build-process", "kind": "procedure", "description": "Run a build process with line count indicator\nLike run-process, but prints a line count indicator after the command completes.\nUse with print-build-step-start (which doesn't print a newline).\nReturns #t on success, raises error on failure", "line": 339 "line": 341 }, { "name": "run-process-capture", "kind": "procedure", "description": "Run a process and capture its combined stdout/stderr output.\nReturns (status output-string line-count)", "line": 377 "line": 379 }, { "name": "read-all-lines-from-port", "kind": "procedure", "description": "Read all content from a port as a string, returning (output . line-count)", "line": 397 "line": 399 }, { "name": "flatten-args", "kind": "procedure", "description": "Flatten a list that may contain nested lists or strings", "line": 407 "line": 409 }, { "name": "c-to-object", "kind": "procedure", "description": "Convert C source path to object file path", "line": 419 "line": 421 }, { "name": "sgl-to-sgb", "kind": "procedure", "description": "Convert Sigil source path to bytecode path", "line": 423 "line": 425 }, { "name": "glob-files", "kind": "procedure", "description": "Glob files matching patterns in a directory\nFor now, a simple implementation that uses directory-walk", "line": 428 "line": 430 }, { "name": "matches-any-pattern?", "kind": "procedure", "description": "Check if path matches any of the patterns\nSimple implementation: checks file extension", "line": 440 "line": 442 }, { "name": "any?", "kind": "procedure", "description": "Check if any element satisfies predicate", "line": 460 "line": 462 }, { "name": "string-suffix?", "kind": "procedure", "description": "Check if string ends with suffix", "line": 467 "line": 469 }, { "name": "format-file-size", "kind": "procedure", "description": "Format file size in human-readable form", "line": 474 "line": 476 }, { "name": "resolve-path", "kind": "procedure", "description": "Resolve a path that may be a string or a procedure.\nIf it's a procedure, call it with the context to get the path.", "line": 492 "line": 494 }, { "name": "config-output-subdir", "kind": "procedure", "description": "Create a path resolver that prepends the config's output-dir.\nUsage: (config-output-subdir \"obj/whippet\") returns a lambda\nthat when called with ctx produces \"build/dev/obj/whippet\"\n(assuming config output-dir is \"build/dev\").", "line": 501 "line": 503 }, { "name": "resolve-output-path", "kind": "procedure", "description": "Resolve an output path relative to the workspace directory.\nThis is used for consolidated output paths like build/<config>/lib/\nIf path is already absolute, returns it unchanged.\nIf path-or-proc is a procedure, calls it with ctx first.", "line": 509 "line": 511 }, { "name": "resolve-source-path", "kind": "procedure", "description": "Resolve a source path relative to the package directory.\nThis is used for source file globs like \"src/**/*.sgl\"\nIf path is already absolute, returns it unchanged.\nIf path-or-proc is a procedure, calls it with ctx first.", "line": 519 "line": 521 }, { "name": "consolidated-output-path", "kind": "procedure", "description": "Get the consolidated output directory for a subpath.\nCombines workspace-dir + config output-dir + subpath.\ne.g., (consolidated-output-path ctx \"bin\") -> \"/path/to/workspace/build/bin/dev\"", "line": 528 "line": 530 }, { "name": "shared-lib-path", "kind": "procedure", "description": "Get the shared lib output directory (same for all configs).\nBytecode doesn't change with C optimization flags, so we use a single lib/.\ne.g., (shared-lib-path ctx) -> \"/path/to/workspace/build/lib\"", "line": 536 "line": 538 }, { "name": "compile-c-file", "kind": "procedure", "description": "Compiles a single C source file to an object file.\nsource: path to .c file (required)\noutput: path to .o file (defaults to source with .o extension)\nflags: additional compiler flags (defaults to '())\nforce?: if #t, always recompile (default #f)", "line": 549 "line": 551 }, { "name": "compile-c-sources", "kind": "procedure", "description": "Compiles multiple C source files to object files.\nsources: glob pattern string or list of .c file paths (required)\n If a string, it's treated as a glob pattern resolved relative to package-dir\noutput-dir: directory for .o files (string or procedure, defaults to consolidated native dir)\n Resolved relative to workspace-dir for consolidation\ninclude-dirs: list of include directories (resolved relative to package-dir)\n Converted to -I flags automatically\nflags: additional compiler flags (defaults to '())\nforce?: if #t, always recompile (default #f)", "line": 608 "line": 610 }, { "name": "any-file-newer?", "kind": "procedure", "description": "Check if any file in a list is newer than a target file.", "line": 662 "line": 664 }, { "name": "create-static-library", "kind": "procedure", "description": "Creates a static library from object files.\nname: library name without lib prefix or .a suffix (required)\nobjects: list of .o files (#f means get from context)\noutput-dir: directory for library (string or procedure, defaults to consolidated native dir)\nforce?: if #t, always rebuild (default #f)", "line": 677 "line": 679 }, { "name": "link-executable", "kind": "procedure", "description": "Links object files and libraries into an executable.\nname: executable name (required)\nobjects: list of .o files (#f means get from context)\nlibraries: additional libraries to link (defaults to '())\noutput-dir: directory for executable (string or procedure, defaults to consolidated bin dir)\nforce?: if #t, always relink (default #f)", "line": 739 "line": 746 }, { "name": "link-web-application", "kind": "procedure", "description": "Links object files and libraries into a web application (.js + .wasm).\nUses emcc to produce JavaScript/WebAssembly output with embedded modules.\nname: application name (required) - produces <name>.js and <name>.wasm\nobjects: list of .o files (#f means get from context)\nlibraries: additional libraries to link (defaults to '())\nembed-dirs: list of (source-dir . mount-path) pairs to embed (defaults to lib@/lib)\noutput-dir: directory for output files (defaults to consolidated output dir root)", "line": 801 "description": "Links object files and libraries into a web application.\nFor Emscripten: produces <name>.js + <name>.wasm with embedded modules.\nFor WASI (zig): produces <name>.wasm and copies modules to output dir.\nname: application name (required)\nobjects: list of .o files (#f means get from context)\nlibraries: additional libraries to link (defaults to '())\nembed-dirs: list of (source-dir . mount-path) pairs to embed (Emscripten only)\noutput-dir: directory for output files (defaults to consolidated output dir root)", "line": 809 }, { "name": "generate-web-bundle", "kind": "procedure", "description": "Generates a binary bundle from one or more directories.\nAll files are packed into a single file for efficient loading.\nCan be used as a build step or called directly.\n\nBundle format: [uint32 count] then per file:\n [uint16 path-len] [path bytes] [uint32 data-len] [data bytes]\n\noutput: path to the output bundle file (required)\ndirs: list of directories whose contents to include (required)", "line": 940 }, { "name": "compile-native-tests", "kind": "procedure", "description": "Compiles native C test files into test executables.\nDiscovers test-*.c files in test/native/ directory and compiles\neach into a separate executable linked against the package's library.\n\ntest-dir: directory containing test files (default: \"test/native\")\ninclude-dirs: list of include directories (default: package's include dir)\nlibraries: additional libraries to link (default: links package's static library)\noutput-dir: directory for test executables (default: consolidated bin dir)", "line": 869 "line": 1005 }, { "name": "compile-sigil-module", "kind": "procedure", "description": "Compiles a Sigil source file to bytecode (.sgb).\nSupports incremental compilation: skips if output is newer than source.\nsource: path to .sgl file (required, resolved relative to package-dir)\noutput: path to .sgb file (string or procedure, resolved relative to workspace-dir)\nforce?: if #t, always recompile (default #f)", "line": 960 "line": 1100 }, { "name": "compile-sigil-modules", "kind": "procedure", "description": "Compiles multiple Sigil source files to bytecode with automatic dependency ordering\nand incremental compilation support (only recompiles files that have changed).\n\nsources: glob pattern string or list of .sgl file paths (required)\n If a string, it's treated as a glob pattern resolved relative to package-dir\nexclude: list of files to exclude (paths relative to glob base, or basenames)\noutput-dir: directory for .sgb files (string or procedure, defaults to consolidated lib)\n Resolved relative to workspace-dir for consolidation.\n When using glob patterns, directory structure is preserved relative\n to the glob's base directory (e.g., src/**/*.sgl preserves paths under src/)\nlib-paths: list of paths to search for compiled dependencies (optional)\n defaults to output-dir + SIGIL_LIB or ~/.sigil/lib\nforce?: if #t, recompile all files regardless of mtime (default #f)", "line": 1004 "line": 1146 }, { "name": "get-stdlib-lib-path", "kind": "procedure", "description": "Get the stdlib lib path from the environment or default location.", "line": 1106 "line": 1248 }, { "name": "glob-base-dir", "kind": "procedure", "description": "Extract base directory from a glob pattern.\nReturns the path prefix before the first wildcard.\ne.g., \"src/**/*.sgl\" -> \"src\"\n \"src/sigil/*.sgl\" -> \"src/sigil\"", "line": 1123 "line": 1265 }, { "name": "copy-assets", "kind": "procedure", "description": "Copies asset files to the output directory.\nsource-dir: directory containing assets (resolved relative to package-dir)\noutput-dir: destination directory (resolved relative to workspace-dir, defaults to config output root)\npatterns: glob patterns to match (defaults to '(\"*\"))", "line": 1145 "line": 1287 }, { "name": "link-assets", "kind": "procedure", "description": "Links the package's assets/ directory to the build output.\n\nConvention: assets are always in `assets/` at the package root.\nFor dev builds, creates a symlink for fast iteration. Falls back\nto copying if symlink creation fails (e.g., Windows without Developer Mode).\n\nIf no assets/ directory exists, this is a no-op.\n\nExample:\n```scheme\n(link-assets)\n;; Creates: build/dev/assets -> ../../packages/my-pkg/assets\n```", "line": 1192 "line": 1334 }, { "name": "copy-package-docs", "kind": "procedure", "description": "Copy package documentation to lib/_pkg/<name>/ and generate manifest.json.\n\nThis build step copies markdown documentation files from the package's\ndocs directory to the standard package docs location for MCP discovery\nand website generation.\n\nParameters:\ndocs-dir: source directory for docs (defaults to package's docs-dir field)\noutput-dir: destination directory (defaults to lib/_pkg/<pkg-name>)\nwarn-lines: line count threshold for warnings (default 200)\n\nExample in custom task:\n```scheme\n(task\n name: 'build\n steps: (list\n (compile-sigil-modules sources: \"src/**/*.sgl\")\n (copy-package-docs)))\n```", "line": 1282 "line": 1424 }, { "name": "ensure-dirs", "kind": "procedure", "description": "Ensures multiple directories exist, creating them recursively if necessary.\ndirs: list of directory paths (required)\nbase-dir: base path for relative dirs (defaults to config's output-dir)", "line": 1379 "line": 1521 }, { "name": "run-steps", "kind": "procedure", "description": "Execute a sequence of action steps", "line": 1400 "line": 1542 }, { "name": "execute-task", "kind": "procedure", "description": "Execute a single task", "line": 1404 "line": 1546 }, { "name": "print-task-header", "kind": "procedure", "description": "Print a task section header with consistent width\nsource-name: the package or workspace name where the task is defined\ntask-name: the name of the task being executed", "line": 1410 "line": 1552 }, { "name": "execute-task-with-deps", "kind": "procedure", "description": "Execute a task with its dependencies\nsource-name: package/workspace name for display\nexecuted: list of already-executed task names (to avoid cycles)", "line": 1428 "line": 1570 }, { "name": "normalize-dirs", "kind": "procedure", "description": "Normalize dirs to a list (handles string or list input)", "line": 1463 "line": 1605 }, { "name": "glob-source-files", "kind": "procedure", "description": "Glob all .sgl source files from src/ directory", "line": 1471 "line": 1613 }, { "name": "glob-test-files", "kind": "procedure", "description": "Glob all test files from test/ directory\nLooks for test-*.sgl and *-test.sgl patterns", "line": 1478 "line": 1620 }, { "name": "string-prefix?", "kind": "procedure", "description": "Check if string starts with prefix", "line": 1489 "line": 1631 }, { "name": "default-build-task", "kind": "procedure", "description": "Create the default 'build' task for a package\nCompiles all .sgl files from src/, copies docs to _pkg/, and links assets/", "line": 1497 "line": 1639 }, { "name": "default-test-task", "kind": "procedure", "description": "Create the default 'test' task for a package\nRuns all test files from test-dirs", "line": 1508 "line": 1650 }, { "name": "default-clean-task", "kind": "procedure", "description": "Create the default 'clean' task for a package\nRemoves the config-specific output directory", "line": 1549 "line": 1691 }, { "name": "generate-default-tasks", "kind": "procedure", "description": "Generate default tasks for a package\nReturns a list of default tasks that can be merged with package tasks", "line": 1565 "line": 1707 }, { "name": "package-tasks-with-defaults",Showing the first 500 of 752 diff lines for this file. This diff is INCOMPLETE; read the file or clone the repository for the rest.
build/dev/lib/sigil/build.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/build/bundle.jsonmodified
{ "module": "(sigil build bundle)", "package": "sigil-build", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-build/src/sigil/build/bundle.sgl", "source": "/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-build/src/sigil/build/bundle.sgl", "description": "(sigil build bundle) - Bundle Creation Library\n\nThis library provides functionality for creating standalone bundled\nexecutables with embedded modules and assets. It wraps the (sigil archive)\nmodule's low-level ZIP operations.\n\nA bundle is:\n 1. A base executable (sigil or a static musl build)\n 2. A ZIP archive appended to it containing:\n - Compiled bytecode modules (.sgb files)\n - Assets (images, sounds, etc.)\n - A manifest listing the entry point\n 3. A trailer with magic \"SGLPAK\" and offset to the archive\n\nThe bundled executable:\n - Loads modules from the embedded archive first\n - Falls back to filesystem if not found\n - Runs the entry point specified in the manifest\n\nExample usage:\n\n (define bundle (make-bundle \"my-app\"))\n (bundle-set-entry! bundle '(my-app main))\n (bundle-add-module! bundle \"lib/my-app.sgb\" \"my-app/main.sgb\")\n (bundle-add-asset-directory! bundle \"assets\")\n (bundle-write! bundle \"dist/my-app\")", "exports": [ {build/dev/lib/sigil/build/bundle.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/build/deps.jsonmodified
{ "module": "(sigil build deps)", "package": "sigil-build", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-build/src/sigil/build/deps.sgl", "source": "/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-build/src/sigil/build/deps.sgl", "description": "(sigil build deps) - Dependency Resolution\n\nThis library provides dependency graph construction and resolution\nfor building packages in the correct order.\n\nExample usage:\n (define packages (workspace-load-packages ws ws-dir))\n (define graph (build-dependency-graph packages))\n (define order (topological-sort graph))\n ;; order is a list of package names in build order", "exports": [ {build/dev/lib/sigil/build/deps.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/build/graph.jsonmodified
{ "module": "(sigil build graph)", "package": "sigil-build", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-build/src/sigil/build/graph.sgl", "source": "/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-build/src/sigil/build/graph.sgl", "description": "(sigil build graph) - Graph Algorithms for Build Systems\n\nThis library provides generic graph algorithms useful for dependency\nresolution in build systems:\n\n- Topological sorting (Kahn's algorithm)\n- Cycle detection (DFS-based)\n\nGraphs are represented as association lists where each entry is\n`(node . (list of dependencies))`.\n\nExample usage:\n```scheme\n(define graph '((\"a\" . (\"b\" \"c\"))\n (\"b\" . (\"c\"))\n (\"c\" . ())))\n(topological-sort graph) ; => (\"c\" \"b\" \"a\")\n(has-cycle? graph) ; => #f\n```", "exports": [ {build/dev/lib/sigil/build/graph.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/build/module-deps.jsonmodified
{ "module": "(sigil build module-deps)", "package": "sigil-build", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-build/src/sigil/build/module-deps.sgl", "source": "/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-build/src/sigil/build/module-deps.sgl", "description": "(sigil build module-deps) - Module Dependency Tracking\n\nThis library provides dependency tracking for .sgl modules to enable:\n1. Correct build ordering (dependencies compiled before dependents)\n2. Incremental builds (skip unchanged modules via mtime checks)\n3. Future tree-shaking support for bundles\n\nExample usage:\n (define source-files (glob \"src/**/*.sgl\"))\n (define lib-paths '(\"build/lib\" \"~/.sigil/lib\"))\n (compile-modules-incremental source-files \"build/lib\" lib-paths)", "exports": [ {build/dev/lib/sigil/build/module-deps.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/build/native.jsonmodified
{ "module": "(sigil build native)", "package": "sigil-build", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-build/src/sigil/build/native.sgl", "source": "/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-build/src/sigil/build/native.sgl", "description": "Native Package Support\n\nThis module provides functions for detecting and building native packages\n(packages with C code) during the bundling process.\n\nWhen an app depends on packages with native code (c-sources in their\nlibrary definitions), we need to:\n 1. Detect which packages have native code\n 2. Generate an entrypoint that initializes all native modules\n 3. Compile the native code\n 4. Link a custom runtime", "exports": [ {build/dev/lib/sigil/build/native.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/channels.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/core.jsonmodified
{ "module": "(sigil core)", "package": "sigil-stdlib", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-stdlib/src/sigil/core.sgl", "source": "/home/daviwil/Projects/Code/sigil/sigil-web-styles/.sigil/deps/sigil-stdlib/src/sigil/core.sgl", "description": "(sigil core) - Core Language Primitives\n\nThe foundation of Sigil. This module is automatically imported into every\nmodule and provides essential procedures, macros, and syntax forms.\n\n## List Operations\n\n```scheme\n(append '(1 2) '(3 4)) ; => (1 2 3 4)\n(reverse '(1 2 3)) ; => (3 2 1)\n(filter even? '(1 2 3 4 5)) ; => (2 4)\n(map (lambda (x) (* x 2)) '(1 2 3)) ; => (2 4 6)\n(fold + 0 '(1 2 3 4)) ; => 10\n```\n\n## Control Flow\n\n```scheme\n(cond\n ((< x 0) \"negative\")\n ((= x 0) \"zero\")\n (else \"positive\"))\n\n(case color\n ((red green blue) \"primary\")\n ((cyan magenta yellow) \"secondary\")\n (else \"other\"))\n\n(when (> x 0) (do-something))\n(unless (null? lst) (process lst))\n```\n\n## Records\n\n```scheme\n(define-record <point> (x) (y))\n(define p (point 10 20))\n(point-x p) ; => 10\n(point? p) ; => #t\n```\n\n## Exception Handling\n\n```scheme\n(error \"Something went wrong: ~a\" details)\n(raise (make-exception 'not-found \"Resource missing\" '()))\n```\n\n## Keyword Arguments\n\n```scheme\n(define (greet name (keys: (greeting \"Hello\")))\n (format \"~a, ~a!\" greeting name))\n\n(greet \"World\") ; => \"Hello, World!\"\n(greet \"World\" greeting: \"Hi\") ; => \"Hi, World!\"\n```\n\nThis module uses bootstrap primitives (`%make-module`, `%module-export!`)\ninstead of `define-library` for internal bootstrapping reasons.", "exports": [ { "description": "Get the spec annotation from a procedure, or #f if none.\n\nReturns the spec list from a procedure's metadata, or #f if the\nprocedure has no spec annotation.\n\n```scheme\n(define (add a b)\n (: number? number? -> number?)\n (+ a b))\n(procedure-spec add) ; => (number? number? -> number?)\n```", "line": 4958 }, { "name": "chain", "kind": "syntax", "description": "Thread a value through a sequence of expressions.\n\nSimilar to SRFI-197's `chain`. Uses `_` as the placeholder symbol.\nWhen a step contains `_`, the threaded value is substituted there.\nWhen no `_` is present, the value is inserted as the first argument.\n\n```scheme\n;; Thread-first (no placeholder)\n(chain 5 (+ 3) (* 2))\n; => 16 (same as (* (+ 5 3) 2))\n\n;; Explicit placeholder\n(chain '(1 2 3)\n (map (lambda (x) (* x 2)) _)\n (apply + _))\n; => 12\n\n;; Placeholder in various positions\n(chain 10 (- 20 _)) ; => 10 (= 20 - 10)\n(chain 5 (list 1 2 _ 4)) ; => (1 2 5 4)\n```", "line": 4991 }, { "name": "some->", "kind": "syntax", "description": "Thread value through steps, short-circuiting on #f.\n\nLike `->`, but stops and returns `#f` if any step produces `#f`.\nUseful for optional/nullable value pipelines.\n\n```scheme\n;; Returns #f if any step fails\n(some-> user\n (dict-ref _ name:)\n (string-split \" \" _)\n car)\n\n;; Short-circuits on #f\n(some-> #f (+ 1 _)) ; => #f (doesn't call +)\n\n;; Continues while truthy\n(some-> 5 (+ 1 _) (* 2 _)) ; => 12\n```", "line": 5061 }, { "name": "print", "kind": "syntax", "description": "Print a formatted string to standard output.\n\nUses format directives: `~a` (display), `~s` (write), `~%` (newline).\nDoes not add a trailing newline.\n\n```scheme\n(print \"Processing ~a...\" filename)\n```", "line": 5086 "line": 4982 }, { "name": "println", "kind": "syntax", "description": "Print a formatted string to standard output with a newline.\n\nThe recommended way to print output in Sigil programs.\n\n```scheme\n(println \"Hello, ~a!\" name)\n(println \"Result: ~a\" (* 6 7))\n```", "line": 5100 "line": 4996 }, { "name": "eprint", "kind": "syntax", "description": "Print a formatted string to standard error.\n\nUse for error messages and diagnostics.\n\n```scheme\n(eprint \"Warning: ~a\" message)\n```", "line": 5115 "line": 5011 }, { "name": "eprintln", "kind": "syntax", "description": "Print a formatted string to standard error with a newline.\n\n```scheme\n(eprintln \"Error: ~a\" error-message)\n```", "line": 5126 "line": 5022 } ]}build/dev/lib/sigil/core.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/coroutines.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/css.jsonmodified
{ "module": "(sigil css)", "package": "sigil-css", "source": "/home/daviwil/Projects/Code/sigil/sigil-css/src/sigil/css.sgl", "source": "/home/daviwil/Projects/Code/sigil/sigil-web-styles/.sigil/deps/sigil-css/src/sigil/css.sgl", "description": "(sigil css) - S-expression CSS DSL\n\nWrite CSS using S-expressions for composability and theming. Properties\nare written as `(property-name value)` and nested selectors use `&`.\n\n## Basic Usage\n\n```scheme\n(import (sigil css))\n\n(css->string\n (css \".button\"\n (background \"#007bff\")\n (padding \"0.5rem 1rem\")\n (border-radius \"4px\")))\n```\n\n## Nested Selectors\n\nUse `&` to create nested rules (like Sass/SCSS):\n\n```scheme\n(css \".card\"\n (padding \"1rem\")\n (& \":hover\"\n (box-shadow \"0 2px 8px rgba(0,0,0,0.3)\"))\n (& \" .title\"\n (font-weight \"bold\")))\n```\n\n## CSS Variables\n\nDefine custom properties with `css-vars`:\n\n```scheme\n(css->string\n (css-vars\n (--bg \"#0a0a0a\")\n (--fg \"#e0e0e0\"))\n (css \"body\"\n (background \"var(--bg)\")\n (color \"var(--fg)\")))\n```\n\n## Media Queries and Keyframes\n\n```scheme\n(css-media \"(max-width: 768px)\"\n (css \".sidebar\" (display \"none\")))\n\n(css-keyframes \"fade-in\"\n (from (opacity \"0\"))\n (to (opacity \"1\")))\n```", "exports": [ {build/dev/lib/sigil/css.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/deps/fetch.jsonmodified
{ "module": "(sigil deps fetch)", "package": "sigil-build", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-build/src/sigil/deps/fetch.sgl", "source": "/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-build/src/sigil/deps/fetch.sgl", "description": "(sigil deps fetch) - Dependency Fetching\n\nThis module handles fetching git dependencies using bare repos and worktrees.\nDependencies are cached globally in ~/.sigil/repos/ as bare repos, and\nworktrees are created per-project in .sigil/deps/.", "exports": [ {build/dev/lib/sigil/deps/fetch.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/deps/lock.jsonadded
{ "module": "(sigil deps lock)", "package": "sigil-build", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-build/src/sigil/deps/lock.sgl", "description": "(sigil deps lock) - Dependency Lockfile\n\nManages sigil.lock files for reproducible dependency resolution.\nThe lockfile records the exact git ref (commit hash) for every\nresolved dependency, enabling deterministic builds.\n\nLockfile format:\n (lock\n (package name: \"sigil-stdlib\"\n url: \"codeberg:sigil/sigil\"\n ref: \"v0.9.0\"\n sha: \"abc123def456...\"\n package-selector: \"sigil-stdlib\")\n (package name: \"sigil-peg\"\n url: \"codeberg:sigil/sigil-peg\"\n ref: \"v0.9.0\"\n sha: \"789abc012def...\"))", "exports": [ { "name": "lock-entry", "kind": "procedure", "description": "Construct a `lock-entry` struct.", "line": 55 }, { "name": "lock-entry?", "kind": "procedure", "description": "Test if a value is a `lock-entry` struct.", "line": 55 }, { "name": "lock-entry-name", "kind": "procedure", "description": "Get the `name` field of a `lock-entry` struct.", "line": 55 }, { "name": "lock-entry-url", "kind": "procedure", "description": "Get the `url` field of a `lock-entry` struct.", "line": 55 }, { "name": "lock-entry-ref", "kind": "procedure", "description": "Get the `ref` field of a `lock-entry` struct.", "line": 55 }, { "name": "lock-entry-sha", "kind": "procedure", "description": "Get the `sha` field of a `lock-entry` struct.", "line": 55 }, { "name": "lock-entry-package-selector", "kind": "procedure", "description": "Get the `package-selector` field of a `lock-entry` struct.", "line": 55 }, { "name": "lock-entry-version", "kind": "procedure", "description": "Get the `version` field of a `lock-entry` struct.", "line": 55 }, { "name": "load-lockfile", "kind": "procedure", "description": "Load a sigil.lock file.\nReturns a list of lock-entry records, or '() if file doesn't exist.", "line": 79 }, { "name": "parse-lock-package", "kind": "procedure", "description": "Parse a (package name: \"...\" url: \"...\" ...) form into a lock-entry", "line": 96 }, { "name": "read-all-exprs", "kind": "procedure", "description": "Read all S-expressions from a port", "line": 102 }, { "name": "write-lockfile", "kind": "procedure", "description": "Write a lockfile from a list of lock-entry records.", "line": 114 }, { "name": "write-lock-field", "kind": "procedure", "description": "Write an optional field to the lockfile", "line": 127 }, { "name": "write-lock-entry", "kind": "procedure", "description": "Write a single lock-entry as a (package ...) form", "line": 133 }, { "name": "find-lock-entry", "kind": "procedure", "description": "Find a lock entry by package name", "line": 148 }, { "name": "lockfile->ref-map", "kind": "procedure", "description": "Convert lockfile entries to a simple (name . sha) alist\nfor quick lookups during fetch", "line": 157 } ]}build/dev/lib/sigil/deps/lock.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/deps/redirects.jsonmodified
{ "module": "(sigil deps redirects)", "package": "sigil-build", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-build/src/sigil/deps/redirects.sgl", "source": "/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-build/src/sigil/deps/redirects.sgl", "description": "(sigil deps redirects) - Dependency Redirects\n\nAllows redirecting dependencies during development, enabling work on\nlibraries while building apps that depend on them.\n\nUsage:\n Load redirects from a file via SIGIL_REDIRECTS env var:\n SIGIL_REDIRECTS=./my-redirects.sgl sigil build\n\n Or via --redirects flag:\n sigil build --redirects ./my-redirects.sgl\n\nRedirects file format:\n (redirects\n repos: (list\n (for-repo\n url: \"https://github.com/user/repo\"\n use: (from-path dir: \"/local/path\")))\n packages: (list\n (for-package\n name: \"pkg-name\"\n use: (from-path dir: \"/local/path\"))))", "exports": [ {build/dev/lib/sigil/deps/redirects.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/deps/semver.jsonadded
{ "module": "(sigil deps semver)", "package": "sigil-build", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-build/src/sigil/deps/semver.sgl", "description": "(sigil deps semver) - Semantic Versioning\n\nParses semver version strings and resolves version range constraints\nagainst lists of available versions (from git tags).\n\nRange syntax (Cargo-style for pre-1.0):\n \"^0.9.0\" → >=0.9.0, <0.10.0 (caret = minor-compatible)\n \"^1.2.3\" → >=1.2.3, <2.0.0 (caret = major-compatible for >=1.0)\n \"~0.9.0\" → >=0.9.0, <0.9.1 (tilde = patch only)\n \"~1.2.3\" → >=1.2.3, <1.3.0 (tilde = minor-compatible for >=1.0)\n \"0.9.0\" → =0.9.0 (exact match)\n \"*\" → any version", "exports": [ { "name": "parse-semver", "kind": "procedure", "description": "Parse a semver string into a list of three integers.\nReturns (major minor patch) or #f if invalid.\nHandles optional \"v\" prefix: \"v1.2.3\" → (1 2 3)", "line": 55 }, { "name": "parse-version-range", "kind": "procedure", "description": "Parse a version range string into a range record.\nReturns (min-version . max-version) where both are semver lists,\nor 'any for wildcard, or #f if invalid.\nmin is inclusive, max is exclusive.", "line": 108 }, { "name": "version-in-range?", "kind": "procedure", "description": "Check if a version satisfies a range.", "line": 154 }, { "name": "tag->version", "kind": "procedure", "description": "Strip \"v\" prefix from a tag to get a version string.", "line": 169 }, { "name": "version->tag", "kind": "procedure", "description": "Add \"v\" prefix to a version string.", "line": 176 }, { "name": "resolve-version", "kind": "procedure", "description": "Resolve a version range against a list of git tags.\nReturns the tag string for the highest matching version,\nor #f if no match found.\n\ntags: list of tag strings (e.g., (\"v0.9.1\" \"v0.9.0\" \"v0.8.0\"))\nrange-str: version range string (e.g., \"^0.9.0\")", "line": 189 }, { "name": "ranges-compatible?", "kind": "procedure", "description": "Check if two version ranges can be satisfied by a single version.\nReturns #t if compatible, #f if conflicting.", "line": 218 }, { "name": "check-version-conflict", "kind": "procedure", "description": "Check if two resolved versions for the same package conflict.\nReturns #f if they're the same, or a conflict description string.", "line": 233 } ]}build/dev/lib/sigil/deps/semver.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/diagnostic.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/dict.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/env.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/error.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/exceptions.jsonadded
{ "module": "(sigil exceptions)", "package": "sigil-stdlib", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-stdlib/src/sigil/exceptions.sgl", "description": "(sigil exceptions) - Exception Handling (DEPRECATED)\n\nThis module is deprecated. Use `(sigil error)` instead.\nThis module re-exports all symbols from `(sigil error)` for\nbackward compatibility.", "exports": [ { "name": "make-exception", "kind": "procedure", "description": null, "source_module": "(sigil core)", "line": 0 }, { "name": "make-exception-with-trace", "kind": "procedure", "description": null, "source_module": "(sigil core)", "line": 0 }, { "name": "exception?", "kind": "procedure", "description": null, "source_module": "(sigil core)", "line": 0 }, { "name": "exception-kind", "kind": "procedure", "description": null, "source_module": "(sigil core)", "line": 0 }, { "name": "exception-message", "kind": "procedure", "description": null, "source_module": "(sigil core)", "line": 0 }, { "name": "exception-irritants", "kind": "procedure", "description": null, "source_module": "(sigil core)", "line": 0 }, { "name": "exception-stack-trace", "kind": "procedure", "description": null, "source_module": "(sigil core)", "line": 0 }, { "name": "raise", "kind": "procedure", "description": null, "source_module": "(sigil core)", "line": 0 }, { "name": "raise-continuable", "kind": "procedure", "description": null, "source_module": "(sigil core)", "line": 0 }, { "name": "error", "kind": "procedure", "description": null, "source_module": "(sigil core)", "line": 0 }, { "name": "with-exception-handler", "kind": "procedure", "description": null, "source_module": "(sigil core)", "line": 0 }, { "name": "current-exception-handler", "kind": "procedure", "description": null, "source_module": "(sigil core)", "line": 0 }, { "name": "make-error", "kind": "procedure", "description": null, "source_module": "(sigil error)", "line": 0 }, { "name": "error?", "kind": "procedure", "description": null, "source_module": "(sigil error)", "line": 0 }, { "name": "type-error?", "kind": "procedure", "description": null, "source_module": "(sigil error)", "line": 0 }, { "name": "range-error?", "kind": "procedure", "description": null, "source_module": "(sigil error)", "line": 0 }, { "name": "arity-error?", "kind": "procedure", "description": null, "source_module": "(sigil error)", "line": 0 }, { "name": "guard", "kind": "variable", "description": null, "source_module": "(sigil error)", "line": 0 }, { "name": "print-exception", "kind": "procedure", "description": null, "source_module": "(sigil error)", "line": 0 }, { "name": "format-exception", "kind": "procedure", "description": null, "source_module": "(sigil error)", "line": 0 }, { "name": "format-stack-trace", "kind": "procedure", "description": null, "source_module": "(sigil error)", "line": 0 } ]}build/dev/lib/sigil/fs.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/gc.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/generators.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/git.jsonmodified
{ "module": "(sigil git)", "package": "sigil-git", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-git/src/sigil/git.sgl", "source": "/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-git/src/sigil/git.sgl", "description": "(sigil git) - Git Operations Library\n\nProvides git operations for Sigil tools including URL parsing,\nbare repository management, and worktree operations.", "exports": [ {build/dev/lib/sigil/git.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/inspect.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/io.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/json.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/list.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/math.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/package.jsonmodified
{ "module": "(sigil package)", "package": "sigil-build", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-build/src/sigil/package.sgl", "source": "/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-build/src/sigil/package.sgl", "description": "(sigil package) - Package Definition Library\n\nThis library provides struct types for defining Sigil packages.\nA package.sgl file uses these structs to declare package metadata,\nbuild configurations, tasks, and dependencies.\n\nExample package.sgl:\n\n (package\n name: \"my-app\"\n version: \"0.1.0\"\n entry: '((my-app main) main)\n configs: (list\n (config name: 'dev debug?: #t)\n (config name: 'release optimize: 2))\n dependencies: (list\n (from-git url: \"https://example.com/lib\" tag: \"v1.0\")))", "exports": [ { "name": "%from-git--type", "kind": "variable", "description": "Workspace-level tasks as `<task>` records.", "line": 396 "line": 404 }, { "name": "from-git", "description": "Package name to find in workspace (alternative to subpath).\nWhen set, the resolver clones the repo, reads its workspace definition,\nand locates the package by name. Mutually exclusive with subpath.", "line": 380 }, { "name": "from-git-version", "kind": "procedure", "description": "Semver version range constraint. When set, the resolver fetches\navailable tags from the remote and selects the highest matching version.\nSupports Cargo-style ranges:\n `\"^0.9.0\"` → `>=0.9.0, <0.10.0`\n `\"~0.9.0\"` → `>=0.9.0, <0.9.1`\n `\"*\"` → any version (latest tag)\nWhen `#f`, uses tag/branch/commit or HEAD.", "line": 380 }, { "name": "from-git-tag", "kind": "procedure", "name": "%from-path--type", "kind": "variable", "description": "Pin to an exact commit hash.", "line": 414 "line": 422 }, { "name": "from-path", "kind": "procedure", "description": "A local path dependency for development or monorepo setups.\n\nIf `package` is specified, `dir` points to a workspace root and the\nnamed package is resolved within it. If omitted, `dir` is the package\ndirectory itself.\n\n```scheme\n(from-path dir: \"../my-local-lib\")\n(from-path dir: \"../workspace\" package: \"specific-pkg\")\n```", "line": 408 "line": 416 }, { "name": "from-path?", "kind": "procedure", "description": "Test if a value is a `from-path` struct.", "line": 408 "line": 416 }, { "name": "from-path-dir", "kind": "procedure", "description": "Filesystem path to the package directory or workspace root.", "line": 408 "line": 416 }, { "name": "from-path-package", "kind": "procedure", "description": "Package name to find in workspace (if `dir` is a workspace).", "line": 408 "line": 416 }, { "name": "from-path-name", "kind": "procedure", "description": "Override inferred package name. If `#f`, uses directory name.", "line": 408 "line": 416 }, { "name": "%from-workspace--type", "kind": "variable", "description": "Override inferred package name. If `#f`, uses directory name.", "line": 408 "line": 416 }, { "name": "from-workspace", "kind": "procedure", "description": "A workspace dependency referencing a sibling package.\nUsed by monorepo packages to declare dependencies on other packages\nin the same repository. When fetched externally, resolves to the\nsame worktree/ref as the parent package.\n\n```scheme\n(from-workspace name: \"sigil-stdlib\")\n```", "line": 424 "line": 432 }, { "name": "from-workspace?", "kind": "procedure", "description": "Test if a value is a `from-workspace` struct.", "line": 424 "line": 432 }, { "name": "from-workspace-name", "kind": "procedure", "description": "Package name within the workspace.", "line": 424 "line": 432 }, { "name": "alist-get", "kind": "procedure", "description": "Helper to get value from alist", "line": 429 "line": 437 }, { "name": "package-provides-ref", "kind": "procedure", "description": "Look up a value from a package's provides list by keyword.\n\nReturns the value following the keyword, or `#f` if not found.\n\n```scheme\n(package-provides-ref pkg mcp-tools:)\n;; => (sigil web mcp tools)\n```", "line": 441 "line": 449 }, { "name": "find-package-file", "kind": "procedure", "description": "Find package.sgl in current directory or ancestors", "line": 455 "line": 463 }, { "name": "load-package", "kind": "procedure", "description": "Load and evaluate a package.sgl file\nReturns the <package> record\n\nAutomatically imports (sigil package) and (sigil build) so that\npackage files don't need explicit import statements.\n\nNote: All expressions are wrapped in a single (begin ...) form and\nevaluated together.", "line": 474 "line": 482 }, { "name": "load-package-or-workspace", "kind": "procedure", "description": "Load and evaluate a package.sgl file, returning either package or workspace\nReturns the <package> or <workspace> record", "line": 493 "line": 501 }, { "name": "package->workspace", "kind": "procedure", "description": "Wrap a standalone package in a workspace\nThis normalizes the API so all code can work with workspaces", "line": 515 "line": 523 }, { "name": "read-all-exprs", "kind": "procedure", "description": "Read all expressions from a port", "line": 529 "line": 537 }, { "name": "package-output-dir", "kind": "procedure", "description": "Get output directory for a config", "line": 537 "line": 545 }, { "name": "resolve-config", "kind": "procedure", "description": "Resolve a config by name from a package", "line": 544 "line": 552 }, { "name": "workspace-resolve-config", "kind": "procedure", "description": "Resolve a config by name from a workspace", "line": 552 "line": 560 }, { "name": "workspace-package-paths", "kind": "procedure", "description": "Get absolute paths to all packages in a workspace\nworkspace-dir: directory containing the workspace package.sgl", "line": 561 "line": 569 }, { "name": "workspace-load-packages", "kind": "procedure", "description": "Load all packages from a workspace\nReturns alist of (package-name . package) pairs", "line": 570 "line": 578 } ]}build/dev/lib/sigil/package.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/path.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/process.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/profile.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/random.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/resources.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/spec.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/string.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/struct.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/syntax.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/test.jsonmodified
{ "module": "(sigil test)", "package": "sigil-test", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-test/src/sigil/test.sgl", "source": "/home/daviwil/Projects/Code/sigil/sigil-web-styles/.sigil/deps/sigil-test/src/sigil/test.sgl", "description": "(sigil test) - Test Framework for Sigil\n\nProvides a simple but powerful test framework with support for\ntest groups, assertions, and structured results for CLI integration.\n\nUsage:\n (import (sigil test))\n\n (test-group \"Arithmetic\"\n (test \"addition\"\n (assert-equal 3 (+ 1 2)))\n (test \"multiplication\"\n (assert-equal 12 (* 3 4))))\n\n (run-tests)", "exports": [ {build/dev/lib/sigil/test.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/test/cli.jsonmodified
{ "module": "(sigil test cli)", "package": "sigil-test", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-test/src/sigil/test/cli.sgl", "source": "/home/daviwil/Projects/Code/sigil/sigil-web-styles/.sigil/deps/sigil-test/src/sigil/test/cli.sgl", "description": "(sigil test cli) - Reusable Test CLI Logic\n\nProvides argument parsing and test execution for both the `sigil test`\ncommand and standalone test harnesses. This module allows test harnesses\nto share the exact same behavior as `sigil test`.", "exports": [ {build/dev/lib/sigil/test/cli.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/test/native.jsonmodified
{ "module": "(sigil test native)", "package": "sigil-test", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-test/src/sigil/test/native.sgl", "source": "/home/daviwil/Projects/Code/sigil/sigil-web-styles/.sigil/deps/sigil-test/src/sigil/test/native.sgl", "description": "(sigil test native) - Native Test Runner\n\nRuns C test executables and parses their output in real-time.\nOutput format expected from C tests:\n PASS: test_name\n FAIL: test_name - message (file:line)\n SUMMARY: X passed, Y failed\n\nResults are printed with the same symbols as Sigil tests\nand returned as structured data for aggregation.", "exports": [ {build/dev/lib/sigil/test/native.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/test/runner.jsonmodified
{ "module": "(sigil test runner)", "package": "sigil-test", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-test/src/sigil/test/runner.sgl", "source": "/home/daviwil/Projects/Code/sigil/sigil-web-styles/.sigil/deps/sigil-test/src/sigil/test/runner.sgl", "description": "(sigil test runner) - Beautiful Test Runner for CLI\n\nProvides test discovery, execution, and beautiful colored output\nfor the `sigil test` command.", "exports": [ {build/dev/lib/sigil/test/runner.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/threads.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/time.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/version.jsonmodified
{ "module": "(sigil version)", "package": "sigil-version", "source": "/home/daviwil/Projects/Code/sigil/sigil/packages/sigil-version/src/sigil/version.sgl", "source": "/home/daviwil/.sigil/deps/codeberg-sigil-sigil-180f6cda9d7a32429da2663532249ff764b48599/packages/sigil-version/src/sigil/version.sgl", "description": "(sigil version) - Semantic Versioning\n\nParse, compare, and check version constraints using semantic versioning\n(semver 2.0.0). Useful for package management and compatibility checks.\n\n```scheme\n(import (sigil version))\n\n(define v (parse-version \"1.2.3-alpha.1\"))\n(version-major v) ; => 1\n(version<? v (parse-version \"1.2.4\")) ; => #t\n\n;; Check version constraints\n(version-satisfies? v \">= 1.0.0\") ; => #t\n(version-satisfies? v \"^1.2.0\") ; => #t (compatible)\n```\n\n## Version Format\n\nVersions follow the pattern: `MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]`\n\n- **MAJOR**: Incremented for breaking changes\n- **MINOR**: Incremented for new features (backwards compatible)\n- **PATCH**: Incremented for bug fixes\n- **PRERELEASE**: Optional pre-release identifier (e.g., `alpha.1`)\n- **BUILD**: Optional build metadata (ignored in comparisons)\n\n## Constraint Operators\n\n| Operator | Example | Meaning |\n|----------|---------|---------|\n| (none) | `1.2.3` | Exact version |\n| `=` | `= 1.2.3` | Exact version |\n| `>` | `> 1.2.3` | Greater than |\n| `>=` | `>= 1.2.3` | Greater than or equal |\n| `<` | `< 1.2.3` | Less than |\n| `<=` | `<= 1.2.3` | Less than or equal |\n| `^` | `^1.2.3` | Compatible (same major, >= given) |\n| `~` | `~1.2.3` | Approximately (same major.minor, >= given) |\n| `*` | `*` | Any version |", "exports": [ {build/dev/lib/sigil/version.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/watch.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/web/styles.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/web/styles/palette.sgbbinary
Binary. Not rendered here.
build/dev/lib/sigil/web/styles/typography.sgbbinary
Binary. Not rendered here.
package.sglmodified
;;; Provides palettes, typography, component styles, and layouts that give;;; Sigil web apps a consistent look with customizable color themes.(define sigil-repo "codeberg:sigil/sigil#v0.8.0")(define sigil-css-repo "codeberg:sigil/sigil-css#v0.8.0")(package name: "sigil-web-styles" version: "0.1.0" authors: (list "David Wilson <[email protected]>") dependencies: (list (from-git url: sigil-repo package: "sigil-stdlib") (from-git url: sigil-css-repo package: "sigil-css")) (from-git url: "codeberg:sigil/sigil" package: "sigil-stdlib" version: "^0.9.0") (from-git url: "codeberg:sigil/sigil-css" version: "^0.9.0")) dev-dependencies: (list (from-git url: sigil-repo package: "sigil-test")) (from-git url: "codeberg:sigil/sigil" package: "sigil-test" version: "^0.9.0")) tasks: (list (tasksigil.lockadded
;; Auto-generated by sigil deps install. Do not edit.(lock (package name: "sigil-stdlib" url: "codeberg:sigil/sigil" ref: "^0.9.0" sha: "962b7e2788e982264792032d3ba31ed3c237334e" package-selector: "sigil-stdlib" version: "0.9.1") (package name: "sigil-css" url: "codeberg:sigil/sigil-css" ref: "^0.9.0" sha: "0d8253368180a3b9bc8c096de19176f1d830a5b1" version: "0.8.0") (package name: "sigil-test" url: "codeberg:sigil/sigil" ref: "^0.9.0" sha: "962b7e2788e982264792032d3ba31ed3c237334e" package-selector: "sigil-test" version: "0.9.1"))