Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,54 @@
# Changelog

## v0.8.53

llama.cpp bumped to `a894dae93`
([`b11064`](https://github.com/ggml-org/llama.cpp/releases/tag/b11064)),
13 commits from `5b59b83f4` (b11050+1). No change to any header the NIF
includes (`llama.h`, `ggml-backend.h`, `ggml-rpc.h`, `chat.h`,
`json-schema-to-grammar.h`, `speculative.h`) and none to
`llama_model_default_params` / `llama_context_default_params`, so the NIF
source is untouched. RPC protocol stays at 7.0.0.

### Changed

- Chat parsing: a dedicated Ling 3.0 / Bailing V3 parser (#28682) — those
templates pre-open the think block, so a tool call arriving before `</think>`
used to be classified entirely as reasoning and clients saw empty content
with no `tool_calls`; the Gemma 4 required-tool grammar is fixed (#29115);
and the PEG parser now handles invalid UTF-8 in model output by returning
the maximal subpart per the Unicode recommendation instead of failing the
parse (#29161).
- `json_schema_to_grammar` accepts an escaped hyphen (`\-`) in a regex
`pattern`, inside or outside a character class (#29127). A schema such as
`"pattern": "^[a-z\\-]+$"` used to come back from
`LlamaCppEx.Grammar.from_json_schema/1` as `{:error, _}`; it now yields a
grammar.
- Metal: `dsv4_hc_pre` supports arbitrary `hc` instead of falling back to
CPU for anything but 4 (#29169, needed by Kimi-K3's cross-layer residual
stack); the FWHT kernel reads F16 input directly (#29094).
- CUDA: sparse flash attention enabled for Qwen4 (#28770).
- Mamba: time-step projection input is made contiguous (#28832), a
correctness fix for SSM models on backends that require it.
- Hexagon: `TOP_K`, `GEGLU_QUICK`, and I32 `GET_ROWS` (#29113, #29114,
#29116).

All three upstream defects listed in `docs/release-guide.md` still stand at
this build (source diff): `ggml-cpu/CMakeLists.txt`, `ggml-cuda.cu`, and
`ggml-rpc.cpp` are all untouched in this range, so the `-mcpu=native` probe,
`ggml_backend_cuda_comm_init`, the RPC buffer's `NULL` 2-D tensor hooks, and
the `void` `ggml_backend_rpc_start_server` are exactly as at `5b59b83f4`.

Verified on macOS (Metal), M1 Max: default build **430 passed, 157 excluded**
with no model; **573 passed, 14 excluded** for `--include smoke --include
embeddings --include slow --include mtp` (Qwen3.5-0.8B-UD-Q4_K_XL,
Qwen3-Embedding-0.6B-f16, Qwen3.6-35B-A3B-MTP-UD-Q4_K_XL); **436 passed, 6
skipped** for `--include mtp_sidecar` with the Qwen 3.8 pair
(Qwen3.8-27B-Q4_K_M plus mtp-Qwen3.8-27B-Q4_0; the Gemma 4 E4B pair was not on
disk, so `MTPE4BSidecarTest` skipped). The Hex tarball source build
(`LLAMA_BACKEND=cpu`) clones `a894dae93` and compiles clean. `rpc_live` was
not re-run at this build.

## v0.8.52

llama.cpp bumped to `5b59b83f4` (one past
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ endif
# Pinned llama.cpp commit, used when vendor/llama.cpp has to be cloned. MUST
# match the vendor/llama.cpp submodule; bump both together, see
# docs/release-guide.md. Override to build the NIF against another revision.
LLAMA_COMMIT ?= 5b59b83f4e2101ea173d4f853a0522d9971f48c6
LLAMA_COMMIT ?= a894dae939d426954ce54bb604824f1ae918a0c5

# The commit actually on disk. A submodule can be bumped without LLAMA_COMMIT
# following it, and the build has to key off what is really there.
Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ end
defmodule LlamaCppEx.MixProject do
use Mix.Project

@version "0.8.52"
@version "0.8.53"
@source_url "https://github.com/nyo16/llama_cpp_ex"

def project do
Expand Down
2 changes: 1 addition & 1 deletion vendor/llama.cpp
Submodule llama.cpp updated 61 files
+2 −0 common/arg.h
+6 −6 common/chat-peg-parser.cpp
+8 −0 common/chat.cpp
+8 −8 common/hf-cache.cpp
+3 −0 common/hf-cache.h
+2 −1 common/json-schema-to-grammar.cpp
+4 −0 common/parsers/gemma4.cpp
+194 −0 common/parsers/ling3.cpp
+2 −0 common/parsers/parsers.h
+1 −0 common/parsers/sources.cmake
+50 −24 common/peg-parser.cpp
+21 −4 common/peg-parser.h
+19 −14 common/unicode.cpp
+1 −1 common/unicode.h
+1 −1 docs/ops.md
+298 −292 docs/ops/Hexagon.csv
+10 −6 ggml/src/ggml-cuda/fattn-common.cuh
+19 −8 ggml/src/ggml-cuda/fattn-mma-f16.cuh
+33 −17 ggml/src/ggml-cuda/fattn.cu
+40 −3 ggml/src/ggml-hexagon/ggml-hexagon.cpp
+67 −1 ggml/src/ggml-hexagon/htp/act-ops.c
+555 −0 ggml/src/ggml-hexagon/htp/argsort-ops.c
+5 −2 ggml/src/ggml-hexagon/htp/get-rows-ops.c
+1 −0 ggml/src/ggml-hexagon/htp/htp-ctx.h
+2 −0 ggml/src/ggml-hexagon/htp/htp-ops.h
+1 −0 ggml/src/ggml-hexagon/htp/htp-tensor.h
+4 −0 ggml/src/ggml-hexagon/htp/main.c
+18 −0 ggml/src/ggml-metal/ggml-metal-common.cpp
+1 −0 ggml/src/ggml-metal/ggml-metal-common.h
+22 −15 ggml/src/ggml-metal/ggml-metal-device.cpp
+2 −1 ggml/src/ggml-metal/ggml-metal-device.h
+6 −1 ggml/src/ggml-metal/ggml-metal-device.m
+1 −0 ggml/src/ggml-metal/ggml-metal-impl.h
+3 −19 ggml/src/ggml-metal/ggml-metal-ops.cpp
+26 −29 ggml/src/ggml-metal/kernels/misc.metal
+130 −0 models/templates/inclusionai-ling-3.0-flash.jinja
+2 −0 src/models/mamba-base.cpp
+1 −4 src/models/qwen4exp.cpp
+41 −7 tests/peg-parser/test-unicode.cpp
+30 −13 tests/test-backend-ops.cpp
+35 −0 tests/test-chat-peg-parser.cpp
+228 −0 tests/test-chat.cpp
+27 −1 tests/test-json-schema-to-grammar.cpp
+17 −12 tools/server/server-models.cpp
+9 −13 tools/server/server.cpp
+4 −1 ...ponents/app/chat/ChatAttachments/ChatAttachmentsList/ChatAttachmentsListItem/ChatAttachmentsListItem.svelte
+1 −1 ...at/ChatAttachments/ChatAttachmentsList/ChatAttachmentsListItem/ChatAttachmentsListItemThumbnailImage.svelte
+1 −1 ...ui/src/lib/components/app/chat/ChatMessages/ChatMessage/ChatMessageToolCall/ChatMessageToolCallBlock.svelte
+11 −7 ...ib/components/app/chat/ChatMessages/ChatMessage/ChatMessageToolCall/ChatMessageToolCallBlockEditFile.svelte
+81 −33 ...lib/components/app/chat/ChatMessages/ChatMessage/ChatMessageToolCall/ChatMessageToolCallBlockGetInfo.svelte
+11 −7 ...ib/components/app/chat/ChatMessages/ChatMessage/ChatMessageToolCall/ChatMessageToolCallBlockReadFile.svelte
+4 −2 ...b/components/app/chat/ChatMessages/ChatMessage/ChatMessageToolCall/ChatMessageToolCallBlockReadMedia.svelte
+11 −7 ...b/components/app/chat/ChatMessages/ChatMessage/ChatMessageToolCall/ChatMessageToolCallBlockWriteFile.svelte
+6 −1 tools/ui/src/lib/components/app/chat/ChatMessages/ChatMessage/ChatMessageUser/ChatMessageUserBubble.svelte
+6 −1 tools/ui/src/lib/components/app/content/CollapsibleContentBlock.svelte
+6 −1 tools/ui/src/lib/components/app/content/CollapsibleTerminalBlock.svelte
+17 −6 tools/ui/src/lib/components/app/content/MarkdownContent/markdown-content.css
+2 −0 tools/ui/src/lib/components/app/content/MarkdownContent/markdown-processor.ts
+34 −0 tools/ui/src/lib/components/app/content/MarkdownContent/plugins/rehype/enhance-tables.ts
+4 −1 tools/ui/src/routes/+layout.svelte
+19 −0 tools/ui/tests/stories/a11y/ChatScreenForm.a11y.stories.svelte
Loading