Skip to content

Bump llama.cpp b11069 → b11080, drop patch 0010 - #451

Merged
bernardladenthin merged 1 commit into
mainfrom
claude/gallant-thompson-u3awva
Sep 21, 2026
Merged

bernardladenthin merged 1 commit into
mainfrom
claude/gallant-thompson-u3awva

Conversation

@bernardladenthin

Copy link
Copy Markdown
Owner

Summary

  • Upgrade llama.cpp from b11069 to b11080 (11 upstream commits, 1244 KiB). The key change is llama.cpp #28518 ("json: Fixed json enum handling"), which adds an std::is_enum-gated constructor to common_json_value, fixing the enum-to-boolean serialization trap at its root.
  • Drop local patch 0010 (cast vocab_type to int for common_json). The patch became redundant once upstream fixed the underlying defect. It still applied cleanly, which is why the by-hand drop-check exists — the fail-loud applier cannot detect "upstream already fixed this".
  • Re-point the CommonJsonEnumTrap test guard to CommonJsonEnum (three tests instead of two) to pin upstream's contract: uncast enum stays numeric, explicit cast is equivalent, real booleans remain booleans. A future bump that loses the enum constructor will red C++ Tests everywhere instead of shipping a silent regression.
  • Update all version pins and documentation (CLAUDE.md, CHANGELOG.md, TODO.md, CMakeLists.txt, LlamaCppVersion.java, README.md, verify-patches-applied.sh).

The server wire contract is unchanged: schema, task and context translation units are byte-identical; request-field set (68), bounded-field set (23), and response-key set (142) verified mechanically. All eight remaining patches apply unchanged; all four drop-checks still say "still required".

Test plan

  • Affected unit / integration tests pass locally (CommonJsonEnum trio in test_json_helpers.cpp)
  • CI is green on this branch
  • Docs / CHANGELOG updated (CLAUDE.md patch table, CHANGELOG.md, TODO.md, verify-patches-applied.sh)

Related issues / PRs

Upstream: ggml-org/llama.cpp#28518 ("json: Fixed json enum handling")

Checklist

  • I have read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • My commits follow Conventional Commits
  • No security-sensitive changes

https://claude.ai/code/session_012eNXhF4RyXvmZEVZo16G4S

Eleven upstream commits, 1244 KiB, no project-source change. The size is
almost entirely #29197, which rewrites 46 files under ggml/src/ggml-hexagon/
for a backend this project does not build; the rest of ggml/src is additive
ARM repack kernels (#23492), a Metal fusion-list simplification (#29206) and
a SYCL softmax tweak (#28918). ggml/include is byte-identical.

The consequential commit is #28518 ("json: Fixed json enum handling"):
common_json_value gains an std::is_enum-gated constructor delegating to the
underlying type, and common_json_is_value now accepts enums. That fixes at
its root the trap patches/0010 cast around at upstream's get_res_model_info()
emit site, so the patch became a redundant carry and is dropped rather than
refreshed (the 0009/0011/0013 precedent).

Worth recording: 0010 still applied cleanly at b11080 -- upstream never
touched the emit site -- so the fail-loud applier said nothing. This is
exactly the case the by-hand drop-check exists for, and the reason it is
worded around the defect rather than around the patch text.

The runnable guard is kept and re-pointed (the 0011 precedent): the
CommonJsonEnumTrap pair in test_json_helpers.cpp is now the CommonJsonEnum
trio and pins upstream's contract -- an uncast enum serialises as its numeric
value, an explicit static_cast<int> is equivalent, and a real bool is still a
boolean. jllama.cpp keeps its own two "vocab_type" casts, correct either way.
verify-patches-applied.sh loses its third check (0010 was the only patch with
no runnable guard) and keeps its two generic assertions; the matching TODO.md
coverage-gap entry is resolved and removed.

Also in range, neither requiring a change: six existing sampling flags gained
environment defaults (#27380), and a router no longer forwards
LLAMA_ARG_API_KEY_FILE to spawned children (#28938). tools/server/'s schema,
task and context translation units are byte-identical, and the request-field
set (68), bounded-field set (23) and response-key set (142) were verified
unchanged mechanically, so the server wire contract cannot have moved.

The other eight patches apply unchanged and all four remaining drop-checks
still report "still required" at the pristine tag.

Verified from a fresh configure through the real FetchContent path: stamp
head 1d72b05d3 with eight SHA-256 lines, verify-patches-applied.sh green,
wire-name extraction unchanged at 138 CLI / 57 request / 15 trainer names,
Release build clean, ctest 559/559 (558 -> 559, the re-pointed guard gained a
case), nm -D 40 Java_* exports, NativeLibraryLoadSmokeTest 4/4 with 0 skipped
after a mvn clean, full mvn test 1772 run / 0 failures / 0 errors (272
model-gated skips, no GGUF in this sandbox), clang-format 23.1.1 clean,
spotless clean, SpotBugs 0 findings.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012eNXhF4RyXvmZEVZo16G4S
@bernardladenthin
bernardladenthin merged commit d238476 into main Sep 21, 2026
7 of 14 checks passed
@bernardladenthin
bernardladenthin deleted the claude/gallant-thompson-u3awva branch September 21, 2026 20:29

This branch had an error being deployed

1 failed deployment
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