Skip to content

Concurrency Hardening - #782

Merged
ashvardanian merged 4 commits into
mainfrom
main-dev
Aug 22, 2026
Merged

Concurrency Hardening#782
ashvardanian merged 4 commits into
mainfrom
main-dev

Conversation

@ashvardanian

Copy link
Copy Markdown
Member

No description provided.

ashvardanian and others added 4 commits August 22, 2026 15:12
Point the citation metadata at the Zenodo concept DOI instead of the versioned one. The old `10.5281/zenodo.7949416` resolves to v0.5.0 from May 2023, while `version:` had been bumped to 2.26.0 by the release automation, which never touches the DOI line. The concept DOI always resolves to the newest release, so the two can no longer drift; the version DOI and the Software Heritage release object move into `identifiers`, where CFF expects them. Reflow the abstract to a uniform width and correct the ScyllaDB spelling.

Declare the NumKong submodule against the tag it is actually pinned to rather than the moving `main-dev` branch, matching how StringZilla is declared, and bound the NumKong crate below the next major so a future 8.0 is not picked up silently.

Read the Node and Python versions from the workflow `env` blocks where they were hardcoded, so the release and pre-release wheel jobs stay on the same interpreter. Widen the Windows x86 architecture check to accept both spellings `file` uses for 32-bit PE objects.

Reattach the docstring for `test_replacing_update`, which `test_slot_lookup_churn` displaced when it was inserted between the comment and its function.
index_gt::view walked the memory-mapped levels[] array (sized from the
file's header.size) before the only file-size check, and index_dense::view
formed a matrix_rows*matrix_cols span into the mapping with no bound plus
an unsigned-underflow header guard. A crafted .usearch index over-read the
mapping. Bound the levels region before the offset-precompute loop, bound
the vectors span with a checked multiply, and make the header guard
underflow-safe.

Co-authored-by: Nathan K <professor-moody@users.noreply.github.com>
Co-authored-by: Ash Vardanian <1983160+ashvardanian@users.noreply.github.com>
`try_reserve` fed the keyed lookup's power-of-two capacity back in as the member limit,
so vector and graph storage grew to the hash table's load-factor slack, and a later
reserve that only lowered thread counts shrank member-addressed storage.

Co-authored-by: Bruno Volpato <3207647+bvolpato@users.noreply.github.com>
Co-authored-by: Ash Vardanian <1983160+ashvardanian@users.noreply.github.com>
build.rs hardcoded `/MD`, overriding the runtime `cc` derives from `crt-static`;
under `+crt-static` the crate emits `/MT` and the later `/MD` won, mixing runtimes.

Co-authored-by: Bruno Volpato <3207647+bvolpato@users.noreply.github.com>
Co-authored-by: Ash Vardanian <1983160+ashvardanian@users.noreply.github.com>
@ashvardanian
ashvardanian merged commit 6bf5f1b into main Aug 22, 2026
29 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants