Judy 2.5.2

PHP Judy implements sparse dynamic arrays (aka Judy Arrays)


PHP Judy implements sparse dynamic arrays (aka Judy Arrays). This extension is based
on the Judy C library. A Judy array consumes memory only when it is populated,
yet can grow to take advantage of all available memory if desired. Judy's key benefits
are scalability, high performance, and memory efficiency.

License: PHP

Changes

- PERF: mergeWith() no longer re-descends from the root for a key its own
cursor is already standing on. The slot-to-zval conversion is shared with the
descending read path so the two cannot drift, and the cursor's slot is reused
only where it genuinely holds the value: directly on the integer-keyed and
trie types, and on *_HASH / *_ADAPTIVE only when the payload is mirrored
(an optimizeIteration instance of STRING_TO_INT_HASH, or long-keyed
STRING_TO_INT_ADAPTIVE). Behaviour-preserving: the three new .phpt files pass
against the pre-change build too. **No performance number is claimed** — the
redundant descend is gone, but no benchmark accompanies the change and none
should be inferred pending a run on an idle host. baselines/latest.json and
BENCHMARK.md figures are untouched.
- DOC: API.md now documents that toArray() coerces integer-looking string keys
on string-keyed types ("42" comes back as int 42, while "07" and " 42" stay
strings) and that feeding such a key back as an offset throws. The warning
reached the stub and AGENTS.md in 2.5.1 but not API.md, which is the reference
composer.json advertises.
- DOC: BENCHMARK.md records why php-code-coverage and Infection were examined
and rejected as Judy fits.