jolt/test/integration
Yogthos 3cf303578e feat(compile): Phase 2 — native ops + direct calls (fib30 50s -> 0.076s, ~660x)
Two changes unlock native Janet speed in compile mode:

- Hot numeric primitives (+ - * < > <= >=) emit as native Janet SYMBOLS rather
  than the variadic core fns, so Janet's compiler uses its arithmetic/compare
  opcodes. = / not= / quot / rem / mod / division stay as core fns (their
  semantics differ from Janet's). Trade-off: the strict non-number checks are
  relaxed under compilation (documented perf-mode divergence).
- emit-invoke emits a DIRECT call (f arg...) when the callee is a function
  reference (core/local/symbol/fn), instead of wrapping every call in jolt-call.
  jolt-call is kept only for keyword/collection literals in call position
  ((:k m), ({:a 1} :a)) so IFn dispatch still works.

compiled fib(30): 3.4s -> 0.076s (native ceiling), faster than jank's 0.8s.
Updated compiler-test string assertions (core-+ -> +); compile-mode-test gains
native-op + IFn-dispatch cases; README documents compile mode. jpm test green.
2026-06-05 18:00:46 -04:00
..
api-test.janet test: restructure into unit / integration / spec layers + shared harness 2026-06-05 00:00:16 -04:00
bootstrap-test.janet test: restructure into unit / integration / spec layers + shared harness 2026-06-05 00:00:16 -04:00
clojure-test-suite-test.janet feat: distinguish map entries from vectors; min-key NaN ordering; subvec float coercion 2026-06-05 14:22:06 -04:00
compile-mode-test.janet feat(compile): Phase 2 — native ops + direct calls (fib30 50s -> 0.076s, ~660x) 2026-06-05 18:00:46 -04:00
conformance-test.janet feat: distinguish map entries from vectors; min-key NaN ordering; subvec float coercion 2026-06-05 14:22:06 -04:00
features-test.janet chore: remove dev artifacts; keep only published code/tests/docs 2026-06-05 15:45:04 -04:00
jank-conformance-test.janet test: restructure into unit / integration / spec layers + shared harness 2026-06-05 00:00:16 -04:00
namespace-test.janet test(spec): macros, reader, host-interop, namespaces — fix def-doc, resolve, %& 2026-06-05 00:35:48 -04:00
sci-bootstrap-test.janet test: restructure into unit / integration / spec layers + shared harness 2026-06-05 00:00:16 -04:00
sci-runtime-test.janet test: restructure into unit / integration / spec layers + shared harness 2026-06-05 00:00:16 -04:00
suite-worker.janet feat: read N/M/ratio/radix/exponent number literals; clean suite measurement 2026-06-05 09:54:14 -04:00
systematic-coverage-test.janet feat(strictness): numeric ops reject non-numbers/non-integers like Clojure 2026-06-05 10:58:21 -04:00