Skip to content

Pin llama.cpp by number with a commit override; bump to b11632 and drop patch 0012 - #537

Merged
bernardladenthin merged 3 commits into
mainfrom
claude/tender-brown-6w4vq8
Oct 14, 2026
Merged

bernardladenthin merged 3 commits into
mainfrom
claude/tender-brown-6w4vq8

Conversation

@bernardladenthin

Copy link
Copy Markdown
Owner

Summary

  • Virtual b-number pin. The pin is set(JLLAMA_GIT_TAG b<nnnn>) now, plus an optional set(JLLAMA_GIT_COMMIT "<hash>") for a number upstream has not tagged yet. Only the two fetches read the hash (FetchContent, the build-webui checkout); jllama-build.txt, the loader, LlamaCppVersion, README and docs keep the number, and the configure asserts that the fetched commit's git rev-list --count is the number (upstream's own tag-numbering rule, and how llama.cpp's build-info derives b<nnnn>-<commit>, so the Java pin check holds unchanged). llama-next-version.sh --resolve b<nnnn> prints the hash, the helper accepts a virtual current pin and says when JLLAMA_GIT_COMMIT is stale. Measured on three configures: by tag, by the matching commit, and by a wrong commit, which the pin check refuses naming the number the hash really is.
  • Bump b11612 → b11617 → b11632, the last one master's head of 2026-10-14 (62df1815b) pinned through its commit ahead of the tag, the first use of the mechanism. All twelve remaining patches apply unchanged; the range brings cpp-httplib 0.61.0, the RPC transfer logs, --spec-draft-n-ubatch (not exposed yet), a conv_1d layout fix and a CUDA GDN kernel.
  • Patch 0012 dropped (thirteen → twelve): upstream merged the zero-split-sum fallback as model: fix "invalid vector subscript" when loading on a full GPU ggml-org/llama.cpp#29677 (df18bee11, b11626). The patch stops applying exactly there, so the drop was forced, not silent. Its guard test_model_split.cpp goes with it: the two functions it linked existed only through the patch, the fixed line sits in a member function with no seam, and the end-to-end route needs two GPU-type devices, which a GPU-less runner cannot provide in one process (0015's server state is global). Recorded in docs/history/dropped-llama-patches.md.

Test plan

  • Affected unit / integration tests pass locally: through the production path (FetchContent by commit, the applier, pin check 11632 = b11632) ctest 601/601 (608 minus the seven of test_model_split.cpp) and the model-free native Java tests 27/27 against the linked b11632-62df1815b; check-patches.py 12/95/0, check-natives.py, check-run-scripts.py, the buildcheck unit tests and spotless clean
  • CI is green on this branch (the model-backed Java suite and the modular build run only in CI)
  • Docs updated: runbook section "Pinning a number upstream has not tagged yet", CLAUDE.md upgrade section, the drop note for 0012, TODO.md, llama-cpp-breaking-changes.md rows

Related issues / PRs

Follows #536 (b11612). Upstream: ggml-org/llama.cpp#29677 (df18bee11). Once upstream tags b11632, clear JLLAMA_GIT_COMMIT; nothing else moves.

Checklist

  • I have read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • My commits follow Conventional Commits
  • No security-sensitive changes (if there are, I have notified the maintainer privately per SECURITY.md)

🤖 Generated with Claude Code

https://claude.ai/code/session_017kVXQfPe1ACLAuk29Y4d2H


Generated by Claude Code

Five upstream commits: four Vulkan (bf16 mulmat activations, Intel Arc
shader count, the Intel Windows free-memory workaround, a compile fix)
and #30480, which hands the k-pool selection of glm5-next / qwen4exp to
the attention in the mask layout. No patch-target file in the range; all
thirteen patches apply unchanged, ctest 608/608, the model-free native
Java tests 27/27 over the b11617 library. No project source change.

The 0012 drop rule now keys on the fixing commit (df18bee11 / #29677)
rather than on "past b11612": b11617 is past b11612 and still lacks the
fix, and no tag up to b11618 carries it. Patch header, test header,
CLAUDE.md row and the TODO.md section say so.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kVXQfPe1ACLAuk29Y4d2H
…m has not tagged yet

The pin is set(JLLAMA_GIT_TAG b<nnnn>) now, and everything that names the
version keeps reading the number: jllama-build.txt, LlamaCppVersion, the
README badge, the WebUI job, llama-next-version.sh. A number upstream has
not tagged yet -- the tags trail master, and a fix worth bumping to can
sit in between -- is pinned the same way plus set(JLLAMA_GIT_COMMIT
"<hash>"), the master commit the number names. Only the two fetches read
the hash (FetchContent and the build-webui checkout); the configure then
asserts that the fetched commit's `git rev-list --count` is the number,
which is upstream's own tag-numbering rule and also how llama.cpp's
build-info derives b<nnnn>-<commit>, so the Java pin check holds against
a virtual number unchanged. llama-next-version.sh resolves a number to
its hash (--resolve b<nnnn>), accepts a virtual current pin, and says
when JLLAMA_GIT_COMMIT is stale because the tag has been published.

Measured on three configures: fetched by tag (count 11617 = b11617),
fetched by b11617's commit with JLLAMA_GIT_COMMIT set (same), and
fetched by b11618's commit under JLLAMA_GIT_TAG b11617, which the pin
check refuses naming the number the hash really is.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kVXQfPe1ACLAuk29Y4d2H
b11632 is master's head of 2026-10-14 (62df1815b), pinned ahead of the
tag: JLLAMA_GIT_TAG b11632 with JLLAMA_GIT_COMMIT naming the commit, the
first use of the virtual-number pin. Upstream merged the zero-split-sum
fallback as ggml-org/llama.cpp#29677 (df18bee11, b11626) on the way;
patch 0012 stops applying exactly there -- upstream's line is inside the
block it replaced -- so it is dropped, not refreshed, and its runnable
guard test_model_split.cpp goes with it: the two functions it linked
existed only through the patch, the fixed line sits in a member function
with no seam, and the end-to-end route needs two GPU-type devices, which
a GPU-less runner cannot provide in one process. The drop note in
docs/history/dropped-llama-patches.md records all of that.

The other twelve patches apply unchanged at 62df1815b. Besides the fix:
cpp-httplib 0.61.0, the RPC transfer logs, --spec-draft-n-ubatch (a new
speculative field, not exposed yet), a conv_1d layout fix and a CUDA GDN
kernel. Through the production path (FetchContent by commit, the
applier, the pin check reporting count 11632 = b11632): ctest 601/601,
the model-free native Java tests 27/27 against the linked
b11632-62df1815b. Clear JLLAMA_GIT_COMMIT once upstream tags b11632.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kVXQfPe1ACLAuk29Y4d2H
@bernardladenthin
bernardladenthin merged commit eb0c1bf into main Oct 14, 2026
10 of 15 checks passed
@bernardladenthin
bernardladenthin deleted the claude/tender-brown-6w4vq8 branch October 14, 2026 14:29
@sonarqubecloud

Copy link
Copy Markdown

This branch had an error being deployed

1 failed deployment
maven-central — a84a9a27 Deployed Oct 14, 2026 by bernardladenthin via Verify GPG signing key (no secrets printed) #1254
startgate — a84a9a27 Deployed Oct 14, 2026 by bernardladenthin via Start gate (abort window) #1254
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.

2 participants