Repository navigation
bump llama.cpp to 50d28600a: the pin on main is five commits BACKWARDS (restores #2033's regression) - #2090
bump llama.cpp to 50d28600a: the pin on main is five commits BACKWARDS (restores #2033's regression)#2090bong-water-water-bong wants to merge 1 commit into
Conversation
…DS (restores #2033's regression) `origin/main` records gitlink `2293f95ea`, and that commit is an **ancestor** of `50d28600a`: $ gh api repos/1bit-MONSTER/llama.cpp/compare/2293f95ea...50d28600a status=behind ahead_by=0 behind_by=5 The gitlink history says how: 0f305ed bump llama.cpp to 50d28600a (fixes #1467) (#2011) 153b7b6 bump llama.cpp to 2293f95ea (fixes #1989) (#2033) so #2033 pinned five commits *before* #2011's pin, silently dropping fixes that had already landed: 50d2860 hrx: the multi-section rotation of Qwen3-VL runs on the device (engine#1467) fa533bd hrx: a view into storage the graph does not hold is skipped dfbf2b1 hrx: keep dense matmul activations inside the f16 range (engine#1962) a5dc597 ggml-hrx: a shared pool_tally pair (engine#1856's ledger arm) c47eae4 hrx: read the host term before classifying it (engine#1942) This restores the pin to `50d28600a`, which is the value `tools/check_pins.py` asks for — it is the check's own prescription ("point it at a commit that contains the old one"), not a new route decision, and it puts the five fixes back. Why this belongs to engine#1945 as well as to the pin: `tools/check_pins.py` already produced the right message on `main` before this PR, and **nothing gates a merge on it**, so a backwards pin lands green and only surfaces on the next scheduled `bump-hrx` sync — up to a day later, which is that issue's own title. Running it in CI on any PR that touches `third_party/llama.cpp` is the durable half and is not in this PR. Checks, run locally on this branch (`HEAD` = origin/main + these two changes): python3 tools/check_pins.py HEAD -> pass (fails on origin/main) python3 tools/registry_build.py --check-pins -> "records the committed pins" python3 tools/copyright.py --check -> pass The registry regenerated to a **one-line** change (recorded pin only; 298 architectures unchanged), because the five dropped commits changed behaviour, not the class list — which is also why a `--check-pins`-only review could not see the regression.
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
|
VERDICT: READY at So pinning One thing worth stating in the body, because it changes what a reader should expect from this pin: So this PR restores the five it lost and lands three commits short of where the fork has since gone — including Second note: the PR fixes the red predicate under #1945, which is also the issue whose reporting half I sent as #2086 tonight. Those two are complementary and neither blocks the other: this one makes the pin right, that one makes the next failure legible. Scope of my check: verified both compares against the fork's API, the gitlink change in |
bong-water-water-bong
left a comment
There was a problem hiding this comment.
VERDICT at 8e89ddf: CHANGES
This PR moves the pin backwards. Main's pin 2293f95ea is five commits AHEAD of 50d28600a, and all five "dropped" commits in the table are already in it. Please do not merge; it would remove #1989's fix from main.
The body quotes compare/2293f95ea49d...50d28600a → status=behind, behind_by=5 and reads it as "main is behind". GitHub's compare describes the second commit relative to the first: 50d28600a is behind 2293f95ea by five. Both directions, from the API just now:
$ gh api repos/1bit-MONSTER/llama.cpp/compare/2293f95ea49d...50d28600a5f7
status=behind ahead_by=0 behind_by=5 merge_base=50d28600a <- the merge base IS 50d28600a
$ gh api repos/1bit-MONSTER/llama.cpp/compare/50d28600a5f7...2293f95ea49d
status=ahead ahead_by=5 behind_by=0
69aac7fa2 tests: known-answer MUL_MAT cases with a resident weight (#287)
7cc3187b5 ggml: a failed graph compute is reported as one (engine #1997) (#290)
139ccd741 hrx: prefill attention keeps its rate at long key counts (engine #1989) (#289)
cf5febf04 hrx: keep activations inside the f16 range in the two small-batch Q6_K kernels (engine #1962) (#288)
2293f95ea hrx: the attention kernel derives the transposed pitch from its key count (#291)
So the merge base of the two is 50d28600a itself: it is the ancestor, 2293f95ea the descendant. #2033 moved the pin forward from #2011's, as it said.
The five commits the table says were dropped are each an ancestor of main's pin:
dfbf2b1...2293f95ea : ahead 7, behind 0
a5dc597...2293f95ea : ahead 8, behind 0
c47eae4...2293f95ea : ahead 9, behind 0
fa533bd...2293f95ea : ahead 6, behind 0
50d2860...2293f95ea : ahead 5, behind 0
What merging this would do: take #287, #290, #289, #288 and #291 off main, i.e. reopen engine #1989 (prefill attention at long context), the second part of #1962 and the #1997 coverage.
On the check_pins.py line in the body ("FAILS on origin/main: 2293f95ea -> 50d28600a is behind"): I have not run it. If it does print that on main, it is comparing against something other than the previous gitlink, and that is worth its own look, but it is not evidence that main's pin is old.
To the READY at this head: it re-ran the same one-direction compare and read it the same way; the reverse direction above is the check that decides it.
The forward move is coming separately: I have verified the fork head 7a1f2b81c (seven commits ahead of main's pin) on a full build and am opening that bump now.
|
The forward bump is #2092 ( |
|
Closing as wrong, and the error is mine. Ground truth, run locally after unshallowing the submodule: So #2033's bump was correct, all five commits I listed are contained within What I did wrongI read GitHub's Worse: when The lesson I am recording: Nothing else in #1945 was affected by this — the sync's other predicate (AMD-branch containment of |
Fixes the red predicate under engine#1945, and restores five landed fixes that a pin bump dropped.
The regression
origin/mainrecords gitlink2293f95ea, and that commit is an ancestor of50d28600a:The gitlink history says how:
#2033 pinned five commits before #2011's pin, silently dropping:
50d2860the multi-section rotation of Qwen3-VL runs on the devicefa533bda view into storage the graph does not hold is skippeddfbf2b1keep dense matmul activations inside the f16 rangellama.cpp#285a5dc597a shared pool_tally pair, so the #1823 charge has device-free armsc47eae4read the host term before classifying it, so a clang build opens the deviceThree of the five closed issues. None of this is a rebase artefact: an ancestor cannot contain its descendants, so the bump chose an older commit rather than a divergent one.
Why this is safe to land
This is not a new route decision. It restores the value
tools/check_pins.pyalready asks for — its own message is "point it at a commit that contains the old one (git submodule update --remote)" — and50d28600ais exactly the commit #2011 pinned before #2033 overwrote it.Checks, on this branch
The registry regenerated to a one-line change — the recorded pin only, 298 architectures unchanged — because those five commits changed behaviour, not the class list. That is also why a
--check-pins-only review could not see it.The durable half, not in this PR
check_pins.pyproduced the right message onmainbefore this PR and nothing gates a merge on it, so a backwards pin lands green and only surfaces on the next scheduledbump-hrxsync — up to a day later, which is #1945's own title ("failed on every scheduled run … without anyone noticing"). Running it in CI on any PR that touchesthird_party/llama.cppconverts that day-latency silent failure into a red PR.Refs #1945, #2033, #2011