Skip to content
Merged
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
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ from version 5.0.0 onward. Pre-fork releases (`1.x`–`4.2.0`) were authored by
## [Unreleased]

### Added
- **`ModelParameters.setMoeCacheMib(int)`** (`--moe-cache-mib`, llama.cpp b11480, EXPERIMENTAL upstream): a
GPU cache for the MoE expert weights a `setCpuMoeLayers` / `--cpu-moe` setup keeps in host memory,
split among several GPUs like the layers; `0` (the default) disables it.
- **Kolibri-1 support** (Aleph Alpha, architecture `kolibri1`, 78B German/English reasoning MoE) ahead of upstream
llama.cpp ([ggml-org/llama.cpp#29922](https://github.com/ggml-org/llama.cpp/issues/29922)), as the carried patch
`0016-model-kolibri1.patch`. It combines the two community ports and, unlike either of them, loads the GGUFs of
Expand Down Expand Up @@ -76,6 +79,14 @@ from version 5.0.0 onward. Pre-fork releases (`1.x`–`4.2.0`) were authored by
GitHub retires the `macos-14` image by 2026-11-02 and fails every `macos-14` job during its October
brownouts. The label is pinned rather than `macos-latest`, and it is not `macos-15`, which the
shipped Metal build and the no-Metal build already run on.
- **Upgraded the pinned llama.cpp from b11476 to b11512**, in 7 reviewed steps, each ending at a tag.
No carried patch needed a refresh, and every drop-check still finds its defect. The chat parser now
receives the generated tokens next to the text (#29876, `common_chat_input`) -- a change in the C++
tests here, not on the wire: request fields, their bounds and the response keys are identical across
the range. Two things a user can notice: the embedded server speaks cpp-httplib 0.60.1 (b11505), and
a slot state file written from b11512 on carries the context checkpoints (#26004) in an appendix an
older file simply lacks, so files from earlier releases still restore. The new `--moe-cache-mib` is
under *Added*. Per-step record: `docs/history/llama-cpp-breaking-changes.md`.
- **Upgraded the pinned llama.cpp from b11320 to b11476**, in 25 reviewed steps, each ending at a tag.
Every carried patch that broke was traced to the one upstream commit that broke it, and the step
containing that commit ends at the first tag after it: `0007` at #29818 (b11361) and #29895 (b11401), `0014` at #29895, `0008`
Expand Down
10 changes: 5 additions & 5 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

Java bindings for [llama.cpp](https://github.com/ggerganov/llama.cpp) via JNI, providing a high-level API for LLM inference in Java. The Java layer communicates with a native C++ library through JNI.

Current llama.cpp pinned version: **b11476**
Current llama.cpp pinned version: **b11512**

## Natives jars: one directory per backend (`.github/natives.csv`)

Expand Down Expand Up @@ -77,7 +77,7 @@ step, not by Maven.

## CPU variants (Linux x86-64 and aarch64): `JLLAMA_CPU_VARIANTS`

The two Linux CPU jars, `cpu-linux-x86-64` and `cpu-linux-aarch64`, are built since 5.3.0 the way
The two Linux CPU jars, `cpu-linux-x86-64` and `cpu-linux-aarch64`, are built since 5.2.0 the way
upstream builds its own release binaries: `GGML_BACKEND_DL` + `GGML_CPU_ALL_VARIANTS`, one small
`ggml-cpu-<level>` module per instruction-set level, of which `ggml_backend_load_best` loads the best
at run time (it scores each module's own feature check against the running CPU). Before, each jar
Expand Down Expand Up @@ -787,7 +787,7 @@ needs no extra step here, `build-webui` re-reads the tag and rebuilds the matchi
ships no UI):
```bash
# needs node/npm + network for the asset build; the embed step is plain cmake -P
git clone --depth 1 --branch b11476 https://github.com/ggml-org/llama.cpp /tmp/lc
git clone --depth 1 --branch b11512 https://github.com/ggml-org/llama.cpp /tmp/lc
( cd /tmp/lc/tools/ui && npm ci && npm run build )
mkdir -p webui-generated /tmp/ui-gen
cmake -DUI_SOURCE_DIR=/tmp/lc/tools/ui -DUI_BINARY_DIR=/tmp/ui-gen \
Expand Down Expand Up @@ -827,7 +827,7 @@ cache lives in **Depot Cache** over sccache's **WebDAV** backend:
- `SCCACHE_WEBDAV_TOKEN: ${{ secrets.DEPOT_TOKEN }}` — a Depot **organization** token, stored
as the repo secret **`DEPOT_TOKEN`**.

Because `sccache` is **content-addressed** and llama.cpp is pinned (`GIT_TAG b11476`), the
Because `sccache` is **content-addressed** and llama.cpp is pinned (`GIT_TAG b11512`), the
~280 upstream object files are byte-identical every run, so a warm cache recompiles only the
*changed* files. Depot's cache is **shared across all branches** (unlike GitHub's
per-branch `actions/cache`), so every branch builds incrementally; a `b<nnnn>` version bump
Expand Down Expand Up @@ -1966,7 +1966,7 @@ ctest --test-dir build --output-on-failure -R "ResultsToJson"

#### Upstream source location (in CMake build tree)

llama.cpp is fetched via CMake FetchContent, pinned to `GIT_TAG b11476`.
llama.cpp is fetched via CMake FetchContent, pinned to `GIT_TAG b11512`.

**GoogleTest** is a separate `BUILD_TESTING`-only FetchContent (`GIT_TAG v1.18.0`), used solely
by the `jllama_test` C++ unit-test binary — not by the shipped library, and not coupled to the
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
**Build:**
![Java 8+](https://img.shields.io/badge/Java-8%2B-informational)
![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows%20%7C%20Android-lightgrey)
[![llama.cpp b11476](https://img.shields.io/badge/llama.cpp-%23b11476-informational)](https://github.com/ggml-org/llama.cpp/releases/tag/b11476)
[![llama.cpp b11512](https://img.shields.io/badge/llama.cpp-%23b11512-informational)](https://github.com/ggml-org/llama.cpp/releases/tag/b11512)
[![JPMS](https://img.shields.io/badge/JPMS-modular%20JAR-25A162)](https://openjdk.org/projects/jigsaw/)
![JUnit](https://img.shields.io/badge/tested%20with-JUnit6-25A162)
[![JSpecify](https://img.shields.io/badge/JSpecify-1.0.0%20%40NullMarked-25A162)](https://jspecify.dev)
Expand Down
2 changes: 1 addition & 1 deletion TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ so everything below is genuinely still open.

### CPU variants (`JLLAMA_CPU_VARIANTS`) -- Windows, GPU modules, loader follow-ups

Linux x86-64 and aarch64 ship the variant build since 5.3.0 (CLAUDE.md "CPU variants"). The rest,
Linux x86-64 and aarch64 ship the variant build since 5.2.0 (CLAUDE.md "CPU variants"). The rest,
with what a measurement on a Windows 11 machine (Ryzen 7 5800H, RTX 3070, JDK 21, upstream b11476
binaries; 2026-10-08) established:

Expand Down
Loading
Loading