docs: note direct-linking in release/optimized builds

This commit is contained in:
Yogthos 2026-06-23 15:52:34 -04:00
parent 7bc277b2e8
commit c908e996c3

View file

@ -96,6 +96,12 @@ a C compiler; `JOLT_CHEZ_CSV` overrides the auto-detected `csv<ver>/<machine>`
dir. `--opt` turns on the inference/flatten/scalar-replace passes; the default dir. `--opt` turns on the inference/flatten/scalar-replace passes; the default
`release` mode is const-fold only. `release` mode is const-fold only.
`release` and `--opt` are closed-world: a call between the app's own functions
binds to its target directly, skipping the var lookup and generic dispatch a
runtime call pays. That assumes app vars are final — mark one `^:redef` (or
`^:dynamic`) to keep it redefinable and indirect. `--dev` keeps everything
indirect/open. Calls into `clojure.core` stay indirect in every mode.
## Limitations ## Limitations
- Pure `clj`/`cljc` only — JVM interop, host classes, and unimplemented - Pure `clj`/`cljc` only — JVM interop, host classes, and unimplemented