ludic/tools/x
Orkuncakilkaya 075a7b1430
All checks were successful
bootstrap / cfree-fixpoint (push) Successful in 19s
ci / build-and-test (push) Successful in 1m37s
commit-lint / conventional-commits (push) Successful in 1s
docs / build-and-deploy (push) Successful in 26s
feat(pkg): x build-lib / prebuilt consumption — binary packages end-to-end (#64)
The package-manager half of prebuilt binary packages, on top of the compiler
foundation (dynamic system registration + --emit-module).

- x build-lib [module.ludic]: compile a package's module to a per-target native
  dylib under lib/<target>/, with an @rpath install name so a consumer resolves
  it from the content-addressed store.
- x link-flags: print the clang flags (the dylib, an rpath to its store dir,
  -export_dynamic) so any build system links a project's prebuilt module dylibs;
  x app splices them automatically for in-repo builds.
- kind prebuilt is resolved + linked like any dependency; a missing build target
  stays a hard error.

Proven hermetically (macOS-gated, since dylibs are native): a module exporting a
component + an @System(Update) + a function is built with x build-lib, fetched
as a prebuilt dep, and linked into a consumer game that never saw its source —
the module's system mutates the shared world and its function is callable
("3 42"). Package suite 17/0; full suite 87/0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-01 07:52:06 +03:00
..
build.ludic feat(pkg): x build-lib / prebuilt consumption — binary packages end-to-end (#64) 2026-09-01 07:52:06 +03:00
checks.ludic feat(tooling): port the doc/lint/grammar checks to Ludic (no Python) 2026-08-31 01:06:38 +03:00
docgen.ludic feat(tooling): port the docgen site generator to Ludic (no Python) (#41) 2026-08-31 02:12:32 +03:00
docgen_check.ludic feat(tooling): port the docgen site generator to Ludic (no Python) (#41) 2026-08-31 02:12:32 +03:00
docgen_gen.ludic feat(tooling): port the docgen site generator to Ludic (no Python) (#41) 2026-08-31 02:12:32 +03:00
json.ludic feat(tooling): port the doc/lint/grammar checks to Ludic (no Python) 2026-08-31 01:06:38 +03:00
main.ludic feat(pkg): x build-lib / prebuilt consumption — binary packages end-to-end (#64) 2026-09-01 07:52:06 +03:00
pkg.ludic feat(pkg): x build-lib / prebuilt consumption — binary packages end-to-end (#64) 2026-09-01 07:52:06 +03:00
pkg_test.ludic feat(pkg): x build-lib / prebuilt consumption — binary packages end-to-end (#64) 2026-09-01 07:52:06 +03:00
prelude.ludic ci: add build + test + bootstrap-cfree workflows for the Forgejo runner 2026-08-30 23:23:23 +03:00
release.ludic feat(release): SemVer + ludicc --version, changesets, and x release 2026-08-30 23:46:59 +03:00
selfhost.ludic feat(types): IVec2 + Rect 2D value types (#1) 2026-08-31 18:29:41 +03:00
selfhost_test.ludic feat(types): tagged-union enums — variant payloads + binding match + exhaustiveness (#56) 2026-09-01 03:07:46 +03:00
test.ludic feat(pkg): package manager — fetch + MVS resolve + namespace registration (#63) 2026-09-01 07:08:12 +03:00
tools.ludic feat(lang): new Type { field: value } record initialisers 2026-08-31 01:20:06 +03:00