Repository navigation
docs(llamacpp): pin the undecidable penalties window exactly, and say why - #1079
Merged
Merged
Conversation
… why
Documentation-only; no behaviour change. The undecidable arity window was
described as ggml == 0.18.0, "upstream b10192..~b10264". The approximation is now
measured away, and the window's INTERNAL structure recorded, which is the part
that was missing.
Measured release by release against real upstream headers:
b10255..b10257 ggml 0.18.0 4-arg
b10258 ggml 0.18.0 5-arg <- the signature flips here, the merge
of ggml-org/llama.cpp#26520
b10261, b10262 ggml 0.18.0 5-arg <- last 0.18.0 actually tagged
b10263, b10264 never tagged
b10265 ggml 0.18.1 5-arg
So the window is b10192..b10262, and the signature flips INSIDE it at b10258.
b10192..b10257 really are 4-arg; b10258..b10262 really are 5-arg. localm reports
UNKNOWN for both halves, because ggml 0.18.0 does not distinguish them and
nothing else in the binary does either - conservative by about five releases at
the top end, costing them the repetition-penalty sampler rather than risking a
mis-marshalled call. That is the intended trade, but it was not written down, so
a reader could not tell deliberate conservatism from an oversight.
The b10258 boundary was found by another session bisecting raw headers and
confirming b10258 is identical to #26520's merge commit; independently
re-measured here (b10257 4-arg, b10258 5-arg) before writing it in.
Also expands the comment on why the fingerprint test drifts TWO fields rather
than one, since the first version of that test drifted one, failed, and thereby
confirmed the scored fingerprint works - a note worth keeping so the fixture
does not get "simplified" back and silently stop testing what it names.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Documentation-only; no behaviour change. The undecidable penalties-arity window was described as ggml == 0.18.0, "upstream b10192..~b10264". The approximation is now measured away, and the window's internal structure recorded - which is the part that was actually missing.
Measured release by release against real upstream headers: b10255-b10257 are 4-arg, b10258 is 5-arg (the merge of ggml-org/llama.cpp#26520), b10262 is the last ggml 0.18.0 actually tagged (b10263/b10264 never were), and b10265 is the first 0.18.1.
So the window is b10192..b10262 and the signature flips inside it, at b10258. localm reports UNKNOWN for both halves, because ggml 0.18.0 does not distinguish them and nothing else in the binary does either - conservative by about five releases at the top end, costing those builds the repetition-penalty sampler rather than risking a mis-marshalled call. That is the intended trade, but it was not written down, so a reader could not tell deliberate conservatism from an oversight.
Also expands the comment on why a fingerprint test drifts two fields rather than one: the first version drifted one, failed, and thereby confirmed the scored fingerprint works. Worth keeping so the fixture is not "simplified" back into silently testing nothing.