Repository navigation
native: ship libjvector-aarch64.so in the Linux aarch64 wheel; state the real provider default - #145
Merged
Merged
Conversation
…the real provider default (#144) The jvector 4.0.2 jar carries libjvector-aarch64.so, but build-image.sh and build_wheel.py shipped a jvector library on x86-64 only. Both now take the library of the Linux architecture (libraries_to_ship), test-native.yml gates that a Linux wheel contains libjvector-<arch>.so, and the notices name both. The ArcadeNative comment said "unset: jvector chooses"; the engine forces the scalar DefaultVectorizationProvider in every image (arcadedb#10077), so Highway runs only with ARCADEDB_VECTOR_PROVIDER=native. The default is unchanged. Also: the step summary of test-jvm.yml and the select_matrix.py comment gave a stale reason for Windows ARM64; the real blockers are no jpype1 win_arm64 wheel and no GraalVM CE Windows ARM64 build. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…64 for x86_64) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #144
The Linux aarch64 native wheel now ships
libjvector-aarch64.sonext tolibarcadedb.so, and theArcadeNativecomment states the real provider default. The default itself is unchanged.native/scripts/build-image.sh: on Linux, copylibjvector-x86_64.soorlibjvector-aarch64.so(byuname -m) from the jvector 4.0.2 jar; it used to copy only on x86-64.native/wheel/build_wheel.py:libraries_to_ship()adds the library of the architecture on Linux (macOS and Windows have none in the jar).LibraryLoaderalready maps aarch64 to/libjvector-aarch64.soandlib.pyalready pointsARCADEDB_NATIVE_LIBDIRat the directory oflibarcadedb.so.ArcadeNative: the comment said "unset: jvector chooses"; the engine forces the scalarDefaultVectorizationProviderin every native image (fix(#10072): a native image uses scalar vector math instead of the uncompiled Vector API arcadedb#10077), so Highway runs only withARCADEDB_VECTOR_PROVIDER=native.test-native.yml: new gate that a Linux wheel containsarcadedb/_native/libjvector-<arch>.so;NOTICEandTHIRD_PARTY_NOTICES.md(andgen_notices.py) name both libraries.test-jvm.ymlstep summary and theselect_matrix.pycomment: the Windows ARM64 reason was stale (windows-11-armrunners exist). The real blockers: nojpype11.7.1 wheel for win_arm64 (win_amd64 only) and no GraalVM CE 25.4.4.1.1 build for Windows ARM64 (windows-x64 only), so neither package can be built there.blackalso rewrapped one long line inselect_matrix.py.Tests:
tests/test_native_jvector_library.py(8 cases: ship list per platform and architecture, loader names, the build script's copy step, the comment); all 8 fail onorigin/mainand pass here, together withtest_native_wheel_template.pyandtest_select_matrix.py. pre-commit (black, isort, shfmt, actionlint) and bandit are clean on the changed files; the extraction of both libraries from the 4.0.2 jar was run by hand (145912 B and 111480 B). Not run: an aarch64 image build orauditwheelon the aarch64 wheel (the library needs glibc 2.17 andGLIBCXX_3.4.21at most); the new CI gate and the existing glibc-floor and auditwheel gates cover it on the aarch64 leg.Not decided here: whether Highway should become the default (jvector#771: slower than Panama at 128-d on AVX2); that waits for measurements.
🤖 Generated with Claude Code