Skip to content

Commit caa72e2

Browse files
committed
Bump version to 0.3.43
- This release focuses on improving compatibility with the rapidly evolving llama.cpp ecosystem, especially around experimental APIs, ABI changes, MTMD processing, and latest model integrations. Signed-off-by: JamePeng <jame_peng@sina.com>
1 parent a641283 commit caa72e2

2 files changed

Lines changed: 76 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 75 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,85 @@
22

33
All notable changes to this project will be documented in this file.
44

5-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88
## [Unreleased]
99

10+
## [0.3.43] Better llama.cpp ABI Compatibility, MTMD Performance and Extension API Support
11+
12+
- patch(Gemma4ChatHandler): Synchronize huggingface gemma4 latest chat template
13+
- fix: chat template — null handling, reasoning preservation, turn-tag balance, input validation
14+
- https://huggingface.co/google/gemma-4-31B-it/commit/68abe48010cbe15293462fa11e901a60639a44e5
15+
16+
- feat(llama_ext): support optional llama-ext.h API bindings
17+
- Add Python ctypes bindings for the experimental APIs exposed by
18+
llama-ext.h, including NextN/MTP embeddings, and model metadata extraction.
19+
- Extension symbols are loaded optionally to handle ABI changes, renamed
20+
symbols, and builds that do not export experimental APIs without breaking
21+
the main Python bindings.
22+
23+
- feat(ctypes): handle missing optional symbols gracefully
24+
- Allow ctypes bindings to mark symbols as optional through the `required`
25+
flag.
26+
- Missing symbols caused by ABI naming differences, API changes, or experimental
27+
extensions will no longer break library loading. Optional APIs emit diagnostic
28+
warnings and provide runtime unavailable stubs instead.
29+
30+
- fix(ctypes): validate argument types before binding shared library functions
31+
- Add explicit validation for ctypes function argument declarations before
32+
assigning them to the loaded shared library function.
33+
- This provides clearer error messages when invalid Python types are passed
34+
to `argtypes`, instead of exposing the internal ctypes error about missing
35+
`from_param()` methods.
36+
37+
- fix(ctypes): validate argument types before binding shared library functions
38+
- Add explicit validation for ctypes function argument declarations before
39+
assigning them to the loaded shared library function.
40+
- This provides clearer error messages when invalid Python types are passed
41+
to `argtypes`, instead of exposing the internal ctypes error about missing
42+
`from_param()` methods.
43+
44+
- feat(ctypes): support ABI-compatible symbol aliases
45+
- Allow ctypes_function_for_shared_library to accept either a single
46+
symbol name or an ordered iterable of ABI-compatible aliases.
47+
- Resolve aliases in order and bind the first exported symbol found while
48+
preserving the selected symbol name for runtime diagnostics. Also improve
49+
error reporting for empty alias lists and missing symbols.
50+
51+
- refactor(mtmd): cache Generic MTMD chat template resolution for accelerate the processing speed of `__call__`.
52+
- Refactor MTMD chat template handling to resolve and analyze the chat template only
53+
once per handler instance instead of on every request.
54+
- Add template initialization state, cache parsed media placeholder tags, and support
55+
explicit chat template overrides through a dedicated field. Improve lifecycle cleanup
56+
by resetting cached template state and MTMD resources during handler close.
57+
- This keeps `GenericMTMDChatHandler` runtime processing focused on message rendering and media tokenization
58+
while avoiding repeated chat template resolution overhead.
59+
60+
- fix(mtmd): preserve subclass chat format during MTMD initialization
61+
- Ensure MTMDChatHandler initialization remains compatible with specialized chat
62+
handlers that define their own chat_format before calling super().__init__().
63+
- Initialize chat_format only when it is not already provided by the subclass,
64+
then apply chat_format_override or fallback to the built-in MTMD template.
65+
This prevents AttributeError during inherited handler initialization while
66+
keeping template override behavior unchanged.
67+
68+
- refactor(embedding): rename `llama_cpp` import alias to `llama_cpp_lib`
69+
- Rename the `llama_cpp.llama_cpp` import alias to `llama_cpp_lib` to avoid potential namespace conflicts with the local `.llama_cpp` imports. Update all affected call sites in `llama_embedding.py`.
70+
71+
- patch(Llama): Increase chunk preview limit to 128 in Llama.eval exception
72+
- Raises the maximum tokens captured for the error message preview from 16 to 128, improving visibility into the offending chunk during fatal backend crashes.
73+
74+
- ci(metal): get package version from importlib metadata
75+
* Avoid importing llama_cpp when detecting the package version.
76+
* This prevents initialization side effects and keeps CI version extraction reliable.
77+
78+
- feat: Update llama.cpp to [ggml-org/llama.cpp/commit/86d86ed4396b4130922f7b9af26e3d9fc11a591b](https://github.com/ggml-org/llama.cpp/commit/86d86ed4396b4130922f7b9af26e3d9fc11a591b)
79+
80+
- feat: Sync llama.cpp llama/mtmd/ggml API Binding 20260716
81+
82+
More information see: https://github.com/JamePeng/llama-cpp-python/compare/e522cecb93907c67ffe2e339b7009c93d3fb0f59...a64128351a1d04c6dd644e3908070f7ea2002f20
83+
1084
## [0.3.42] More Reliable Dynamic Backend Loading, Safer MTMD Processing, and Advanced Batch Support
1185

1286
- fix(loader): improve Windows DLL search path handling and diagnostics

llama_cpp/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
from .llama_cpp import *
22
from .llama import *
33

4-
__version__ = "0.3.42"
4+
__version__ = "0.3.43"

0 commit comments

Comments
 (0)