jolt/docs
Yogthos d79ad6dc6a Static-link :jolt/native C libraries into built binaries by default
A :jolt/native spec can now carry a :static archive; `jolt build` links it
into the executable, so the app calls the C code with no shared object on the
target. --dynamic (or :jolt/build {:dynamic-natives true}) keeps the old
runtime load-shared-object behavior; a spec with no :static is unchanged.

The cc link force-loads the archive (-force_load on macOS, --whole-archive on
Linux) and exports the executable's symbols (-rdynamic on Linux) so the baked-in
symbols resolve via (load-shared-object #f) + foreign-procedure at startup. Build
step 1 evaluates the app's foreign-procedure forms in-process, so a static
archive is preloaded there as a throwaway shared object to resolve them.

The distributed self-contained joltc has no external cc/Chez but must build these
apps, so it now bundles the Chez kernel (libkernel.a + scheme.h) and the launcher
source and re-links a custom stub with the archives baked in — needing only a
system cc, no Chez. run/repl skip static-only specs (nothing to load); keep a
:darwin/:linux candidate to use such a lib interpreted.

Adds static-native-smoke (cc path) to ci and a static phase to the joltc
self-build smoke (distributed path).
2026-07-01 09:52:00 -04:00
..
rfc Run core.memoize's test suite on jolt 2026-06-25 13:23:05 -04:00
spec Honor *print-length* / *print-level* / *default-data-reader-fn* 2026-06-26 19:04:42 -04:00
building-and-deps.md cli: rename nrepl command to --nrepl-server flag 2026-06-28 17:26:03 -04:00
grammar.ebnf Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
host-interop.md Regex: accept Java-compatible char-class dash and (X+)* quantifier 2026-06-26 17:35:08 -04:00
libraries.md algo.monads: a seq reports IPersistentList for protocol dispatch 2026-06-27 17:38:48 -04:00
MODULES.md AOT build: set per-ns ns context and register aliases 2026-06-24 01:27:49 -04:00
seed-overlay-registry.md Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
tools-deps.md Static-link :jolt/native C libraries into built binaries by default 2026-07-01 09:52:00 -04:00