Release v2.2.9
Overview
- Material improvements in performance. Pruned dead code, and refactored allocator and dispatch. Some minor conformance improvements. Speed improvements especially in nested array access. Should perform faster than jsonata-js in most use cases now.
Changes
- Merge pull request #161 from txjmb/claude/lectrec-closure-issue-n2ti8v (0b1cb6f)
- fix(release): build the aarch64 Linux wheel in the manylinux_2_28 cross image (5d692d6)
- chore: Bump version to 2.2.9 (5a2a8b5)
- Merge pull request #160 from txjmb/claude/lectrec-closure-issue-n2ti8v (bc63b77)
- ci(release): optional release_name input flows into the release title and changelog heading (8572256)
- refactor(evaluator): typed PartialApplication replaces the marker-string partial protocol (0d01c35)
- refactor(evaluator): carry the closure in JValue::Lambda; delete the scope side table and escape-analysis GC (2dac8e7)
- test: letrec/closure stress suite pinning current behavior (#157 prerequisite) (7fe490e)
- Merge pull request #158 from txjmb/claude/nested-arrays-performance-fvc5ba (e1a32a0)
- refactor(evaluator): delete the fast path's drifted tuple branch (6087342)
- fix(evaluator): unify field-extraction onto compiled_field_step; fix ArrayGroup undefined handling (1f5be51)
- fix(errors): one definition of coded errors; stop burying spec codes (7cf4376)
- feat(capi): jsonata_set_limits — evaluation guardrails for C embedders (64151bd)
- fix(numbers): match jsonata-js number stringification exactly (8b1c920)
- Merge pull request #156 from txjmb/claude/nested-arrays-performance-fvc5ba (59656ab)
- refactor(evaluator): name the end-of-path result policy (ec7dc1b)
- refactor(evaluator): share StoredLambda via Rc in the scope side table (cbdca68)
- fix(evaluator): $var.field skipped nested-array elements (3048374)
- refactor(evaluator): retire the drifted bare-Name field-access copy (24ef40d)
- refactor(builtins): one BuiltinSpec table as the single source of truth (a3df4f4)
- refactor: dedupe signature errors, hofFuncArgs shaping, encoding arms; ast_transform guards (fa21e00)
- refactor(evaluator): remove vestigial explicit-null plumbing, unify twins (d097f0a)
- feat: Expression API — bytecode VM for Rust callers, one shared dispatch (ce3283d)
- fix(regex): stop dropping the m flag in $match and ~> chain-pipe (ec7e8de)
- refactor: apply whole-codebase cleanup review findings (69ee415)
- perf(python): faster data conversion via exact-type dispatch and mimalloc (130684d)
- docs(benchmarks): update performance.md for v2.2.8 (201198d)
Test Suite Compatibility
See the README for the current
reference-suite pass count -- this changelog no longer hardcodes a number here, since a
stale hardcoded count is exactly the kind of bug this project has previously shipped
and had to correct.
Installation
pip install jsonatapy==2.2.9Verification
import jsonatapy
print(jsonatapy.__version__) # Should print: 2.2.9