Upgrade llama.cpp to b10682 and bump build tooling - #404
Merged
Conversation
Bumps the four pin sites: llama/CMakeLists.txt GIT_TAG, the README badge, CLAUDE.md, and LlamaCppVersion.LLAMA_CPP_VERSION. No project-source change was required, and this range cannot require one -- that is a checked result, not an assumption. The whole delta is ten files, 575 insertions / 59 deletions, 53 KB, so it is well under the runbook 100 KiB chunking threshold and was taken as a single step: ggml/src/ggml-metal/ggml-metal-tuning.cpp #27932 M1 Max flash-attn vec tunings ggml/src/ggml-vulkan/** (+3 shaders) #27925 mul_mat_id pads K, not N scripts/snapdragon/*.py + docs/ #27903 Windows SDK setup tests/test-backend-ops.cpp upstream test, never compiled here Not one of those is on the priority review list. Nothing under common/, include/, tools/server/, tools/mtmd/ or ggml/include/ moved, so the request field set, its bounds, the emitted response keys, the getMetrics() class of silent contract break and the mtmd_helper::gen_audio surface are all provably out of scope rather than merely checked and unchanged. The 42 files touched by the eight local patches were intersected against the range changed-file list: empty. No patch context can have moved, so all eight apply unchanged and 0001 stays at its 37-file form. Verified by a real build rather than by inspection alone: fresh build directory through the FetchContent PATCH_COMMAND (fail-loud, and it pins its stamp to the checked-out commit, which is why a fresh directory is mandatory). Configure reports ggml commit 5ea1b124e = b10682 and applies all eight patches clean. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AnNYn8W1xuVxVJtyL34GyH
The b10682 bump made this assertion fail locally with
Linked build-info "b10682-5ea1b124e" must start with the pinned tag "b10679-"
while every pin site already read b10682 and the linked library was correct.
The message names exactly one cause -- a GIT_TAG/constant drift -- which is the
one that did not apply, so it points the reader at the wrong place.
LLAMA_CPP_VERSION is a static final String, so javac inlines its value into
every referencing class, this test included. An incremental build recompiles the
constant but not the test class (its own source did not change), leaving the
previous literal in the test bytecode -- confirmed with strings on the .class,
which still carried b10679- from the earlier build. A clean build is green:
1476 run / 0 failures / 17 model-gated skips, smoke test 4/4 with 0 skipped.
The message now names both causes, says which one the shown tag distinguishes,
gives the fix, and records that CI always builds clean and cannot hit it. Same
class of defect as the CI crash-log text that asserted an abort it could not
observe: a diagnostic that is confidently wrong costs more than none.
Also fills in the b10679-b10682 verification row with the real numbers.
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AnNYn8W1xuVxVJtyL34GyH
nullaway 0.13.8 -> 0.14.0, spotless-maven-plugin 3.10.0 -> 3.10.1, palantir-java-format 2.96.0 -> 2.97.0, pitest-maven 1.25.9 -> 1.30.0. nullaway is an alignment, not just a bump: streambuffer had already merged a Dependabot bump to 0.14.0, so the four repos had silently stopped being identical while workspace/crossrepostatus.md still listed 0.13.8 as the canonical value for all of them. That row is corrected in the same sweep. Deliberately NOT taken, though versions:display-dependency-updates offers them: jqwik 1.9.3 -> 1.10.1 is forbidden by workspace/policies/jqwik-prompt-injection.md (1.10.0 added a prompt-injection string to test stdout and upstream states the library is not meant for AI agents); the maven-compiler/jar/source 4.0.0-beta, surefire 3.6.0-M1, slf4j 2.1.0-alpha1 and log4j 3.0.0-beta2 offers are all pre-releases the plugin does not filter by qualifier. Verified with real exit codes: spotless:check and clean compile both pass. Those are the two checks that matter here -- palantir 2.97.0 would fail spotless:check if the formatter had changed its output, and nullaway 0.14.0 would fail the compile under -Werror if its new release flagged existing code. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AnNYn8W1xuVxVJtyL34GyH
bernardladenthin
had a problem deploying
to
startgate
August 29, 2026 15:45 — with
GitHub Actions
Error
bernardladenthin
had a problem deploying
to
maven-central
August 29, 2026 15:45 — with
GitHub Actions
Failure
bernardladenthin
had a problem deploying
to
maven-central
August 29, 2026 15:45 — with
GitHub Actions
Failure
|
7 tasks
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.



Summary
mul_mat_idchange that pads K rather than N (ggml-org/llama.cpp#27925), the Snapdragon Windows SDK scripts (ggml-org/llama.cpp#27903), documentation, and one upstream test this project never compiles. Not one changed file is on the priority review list, and the 42 files the eight local patches touch have an empty intersection with the range's changed-file list — so all eight apply unchanged and0001stays at its 37-file form.0.13.8 → 0.14.0, spotless-maven-plugin3.10.0 → 3.10.1, palantir-java-format2.96.0 → 2.97.0, pitest-maven1.25.9 → 1.30.0, logcaptor2.12.6 → 2.12.7.The diagnostic defect this bump exposed
The first (incremental) local run of
NativeLibraryLoadSmokeTest.nativeBuildInfoMatchesPinnedVersionConstantfailed witheven though every pin site already read b10682 and the freshly linked library was correct. The assertion message names exactly one cause — a
GIT_TAG/constant drift — which is the one that did not apply, so it points the reader at the wrong place.LLAMA_CPP_VERSIONis astatic final String, i.e. a compile-time constant that javac inlines into every referencing class, this test included. An incremental build recompiles the constant but not the test class, whose own source did not change, so the previous literal survives in the test bytecode. Confirmed rather than assumed:stringson the.classshowed it was from the earlier build and still carriedb10679-. Acleanbuild is green.The message now names both causes, says which one the shown tag distinguishes, gives the fix, and records that CI always builds from a clean checkout and cannot hit it. Same class of defect as the CI crash-log text that asserted an abort it could not observe: a diagnostic that is confidently wrong costs more than none at all.
Tooling: what was deliberately not taken
versions:display-dependency-updatesalso offers these; each is refused on purpose, recorded here so a future Dependabot PR does not quietly undo the decision:1.9.3 → 1.10.1— forbidden byworkspace/policies/jqwik-prompt-injection.md. 1.10.0 added a deliberate prompt-injection string to test stdout, and upstream states the library "is not meant to be used by any 'AI' coding agents at all." The pin is the decision, not an oversight.maven-compiler/jar/source/resources4.0.0-beta-*,surefire 3.6.0-M1,slf4j 2.1.0-alpha1,log4j 3.0.0-beta2— pre-releases the plugin offers because it does not filter by qualifier.maven-gpg-plugin 3.2.8 → 1.5 / 1.6 / 3.0.1— regressions, an artifact of version ordering.nullaway is an alignment, not merely a bump: streambuffer had already merged a Dependabot bump to 0.14.0, so the four repos had silently stopped being identical while
crossrepostatus.mdstill listed 0.13.8 as canonical for all of them. That row is corrected in the workspace PR of this sweep.Test plan
cmake -B build-b10682 -DBUILD_TESTING=ONthrough the real FetchContentPATCH_COMMAND— fail-loud, and it pins its stamp to the checked-out commit, which is why a fresh build directory is mandatory. Configure reportedggml commit: 5ea1b124e(= b10682) and applied all 8 patches clean. Release build clean,ctest520/520. Java 1476 run / 0 failures / 17 model-gated skips,NativeLibraryLoadSmokeTest4/4 with 0 skipped — including the pin cross-check against the freshly linkedlibjllama.so.mvn spotless:applyproduced no changes.rc=$?after a pipe and measuredtail, so it reported success unconditionally; redone):spotless:checkOK andclean compileOK. Those are the two checks that matter — palantir 2.97.0 would failspotless:checkif the formatter's output had changed, and nullaway 0.14.0 would fail the compile under-Werrorif its new release flagged existing code.value/args/exception/jsongate is atmutationThreshold100; a localmutationCoveragerun was still in flight when this PR was opened, so CI is the authority on that one. If it goes red, the pitest bump alone is what to revert — nothing else here depends on it.CLAUDE.md,README.md,CHANGELOG.md,docs/history/llama-cpp-breaking-changes.md(inventory + verification row for b10679–b10682).Related issues / PRs
mul_mat_idpads K rather than NPart of a cross-repo sweep landing the same tooling alignment in
BitcoinAddressFinder,srcmorph,streambufferandBroomCabinet, with the canonical matrix corrected inworkspace.Checklist
CONTRIBUTING.mdandCODE_OF_CONDUCT.mdGenerated by Claude Code