jolt/host/chez/java
Yogthos bd7b75fb5d BigDecimal arithmetic: value-position + compare (Phase 1)
bigdec values existed but +,-,*,/ and compare threw — the header even said
"arithmetic contagion is not modelled". Add the scale-aware engine on the
{unscaled, scale} pair (jbd-add/-sub/-mul/-div + comparison helpers) following
java.math.BigDecimal's rules: add/sub align to the larger scale, multiply adds
scales, divide gives the exact quotient at minimal scale or throws
ArithmeticException on a non-terminating expansion. Clojure contagion: a bigdec
mixed with an integer stays bigdec, a flonum operand wins (result is a double).

Wire it into the value-position shims only — jolt-add/-sub/-mul/-div (what
(reduce + bigs)/(apply * bigs) lower to) and compare — so the inlined native hot
path is untouched. A call-position (+ 1.5M 2.5M) still reaches the raw Chez op;
that needs the analyzer's :bigdec type (next).

Runtime .ss only, no re-mint. 13 JVM-certified corpus rows.
2026-06-25 19:42:12 -04:00
..
async.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
bigdec.ss BigDecimal arithmetic: value-position + compare (Phase 1) 2026-06-25 19:42:12 -04:00
byte-buffer.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
concurrency.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
dot-forms.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
ffi.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
host-class.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
host-static-classes.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
host-static-methods.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
host-static.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
inst-time.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
io-streams.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
io.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
java-time.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
math.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
natives-array.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
natives-queue.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
natives-str.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
records-interop.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00