Repository navigation
Declare the opt-in modules in natives.csv, so the smokes know what the loader leaves out - #527
Merged
Merged
Conversation
…e loader leaves out Package JARs failed in run 38164077038 with: classpath: the loader did not put the openvino module jar of Linux/x86_64 in place. That is a consequence of making openvino opt-in, which I should have foreseen when I added OPT_IN_BACKENDS: smoke-natives-jars.sh asserts the loader line names every GPU module of the platform, read from natives.csv, and the list had no way to say that one of them is deliberately left out. The loader even printed the reason -- is on the classpath but not used: it is opt-in -- and nothing read it. Declared where every consumer already looks: an optin column in natives.csv. check-natives.py validates it (yes or no, only a module can be opt-in, and the rows of one backend cannot disagree, since the loader decides per backend) and holds LlamaLoader.OPT_IN_BACKENDS to it in both directions. A backend the list calls opt-in while the loader does not would ship a jar that takes over silently -- the measured OpenVINO regression the opt-in exists for -- and the reverse would leave a jar inert with no row saying why. The two smoke layers now read the same column with different conditions, which is the part worth getting right. The model-backed rows (smoke-lib.sh and its PowerShell twin) stop expecting an opt-in module, because the loader leaves it out and because OpenVINO's CPU plugin would otherwise take over a server round and run 172x slower. smoke-natives-jars.sh instead names every module of the platform through net.ladenthin.llama.backend, opt-in ones included: it only loads the library and exits, so nothing is at risk, and it becomes the only place in CI that loads an opt-in module at all -- the mechanism is exercised rather than merely respected. What this run did answer, for the record: all 54 build jobs green, both ROCm among them (Windows 3:08 h, Linux 2:57 h -- they are the three-hour pipeline, every other job finished inside an hour), and verify-native-deps.py reporting 99 native libraries checked, 0 violations. The SYCL run path and the removed libgomp dependency are therefore proven. Everything behind smoke-natives-jars.sh was skipped and remains unproven. 122 buildcheck tests, four new ones covering the column and both directions of the constant check. Both module lists and the property construction were simulated against the real natives.csv locally, including the macOS case with no module jars at all; check-run-scripts.py parses all 161 scripts. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E2h8gXyyE5UeimkL9vQv9G
bernardladenthin
had a problem deploying
to
maven-central
October 11, 2026 20:24 — with
GitHub Actions
Failure
bernardladenthin
had a problem deploying
to
maven-central
October 11, 2026 20:24 — with
GitHub Actions
Failure
|
This branch had an error being deployed
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.



First, what run 38164077038 answered — and it is the first time any of it has been
verify-native-deps.pySo the SYCL run path is clean and the Linux jars no longer declare
libgomp.so.1with nothingnoticing.
packagegot past the dependency check for the first time.Then it found this, and it is my own loose end
A consequence of making
openvinoopt-in, which I should have foreseen when I addedOPT_IN_BACKENDS:smoke-natives-jars.shasserts the loader line names every GPU module of theplatform, read from
natives.csv— and the list had no way to say that one of them is deliberatelyleft out.
The loader even printed the reason, one line above the failure:
Nothing read it.
The fix: declare it where every consumer already looks
An
optincolumn innatives.csv.check-natives.pyvalidates it — yes/no, only a module canbe opt-in, and the rows of one backend cannot disagree, since the loader decides per backend — and
holds
LlamaLoader.OPT_IN_BACKENDSto it in both directions:the measured OpenVINO regression the opt-in exists for;
The two smoke layers read the same column, with different conditions
smoke-lib.sh+ the PowerShell twin (model-backed rows)smoke-natives-jars.sh(load-only)net.ladenthin.llama.backend, opt-in included — it loads the library and exits, so nothing is at riskThat second row is the part I care about: it makes this script the only place in CI that loads an
opt-in module at all, so the mechanism is exercised rather than merely respected.
Verification
122 buildcheck tests (four new: the column's rules, and both directions of the constant check).
Both module lists and the property construction were simulated against the real
natives.csvlocally rather than left to CI:
check-run-scripts.py161 scripts clean,check-release-gate.py0 violations,check-natives.py0 disagreements.
Still unproven
Everything behind
smoke-natives-jars.shwas skipped, as in every run before: the five smokesets, the four
smoke-nativesrows with the RPC smoke on aarch64, the macOS smoke, the agent smoke.Said in
TODO.mdrather than implied.🤖 Generated with Claude Code
https://claude.ai/code/session_01E2h8gXyyE5UeimkL9vQv9G