@@ -15,24 +15,94 @@ case, both modules must use the same nanobind ABI version, or they will be
1515isolated from each other. Releases that don't explicitly mention an ABI version
1616below inherit that of the preceding release.
1717
18- Version TBD (not yet released)
19- ------------------------------
18+ Version 2.10.0 (Dec 8, 2025)
19+ ----------------------------
20+
21+ - ABI version 17.
22+
23+ - Nanobind now officially supports the **MinGW-w64 ** and **Intel ICX **
24+ compilers. (PR `#1188 <https://github.com/wjakob/nanobind/pull/1188 >`__).
25+
26+ - Version 2.10 drops support for Python 3.8, which reached *End-Of-Life * in
27+ October 2025. (PR `#1236 <https://github.com/wjakob/nanobind/pull/1236 >`__).
28+
29+ - The new :cpp:class: `nb::array_api <array_api> ` framework tag can be used to
30+ create an nd-array wrapper object that supports both the Python buffer
31+ protocol and the DLPack methods ``__dlpack__ `` and ``__dlpack_device__ ``.
32+
33+ Furthermore, nanobind now supports importing/exporting tensors via the legacy
34+ (unversioned) DLPack interface, as well a new versioned interface. The latter
35+ provides a flag indicating whether an nd-array is read-only. (PR `#1175
36+ <https://github.com/wjakob/nanobind/pull/1175> `__).
37+
38+ - Added ``bfloat `` to the nd-array import conversion code, fixing imports of
39+ bfloat16 tensors. (PR `#1228
40+ <https://github.com/wjakob/nanobind/pull/1228> `__).
41+
42+ - nanobind now uses per-module precomputed constants, particularly strings, to
43+ avoid costs from creating these repeatedly. This improves the performance of
44+ nd-array and enumeration casts. (PR `#1184
45+ <https://github.com/wjakob/nanobind/pull/1184> `__).
46+
47+ - Fixed a segfault in garbage collection traversal of Python subclasses of
48+ class bindings with :cpp:class: `nb::is_weak_referenceable
49+ <is_weak_referenceable> `. (PR `#1206
50+ <https://github.com/wjakob/nanobind/pull/1206> `__).
51+
52+ - Fixed a potential reference leak in the ``std::array `` type caster. (commit
53+ `bfacaf7
54+ <https://github.com/wjakob/nanobind/commit/bfacaf75525c8a5e5f0a80fd69a985c4ae03d3d1> `__).
2055
21- - ABI version 17. The layout of the `nb_inst ` class was changed to fix a data race
22- between `clear_keep_alive ` and other bitfields in the same struct (PR `#1191
56+ - STL type casters now directly reject incorrectly sized inputs, which avoids
57+ performance pitfalls when passing large arrays. (commit `edf5753
58+ <https://github.com/wjakob/nanobind/commit/edf5753a13f98132b8da3d56fe94c31c678b2273> `__,
59+ `dc35d69
60+ <https://github.com/wjakob/nanobind/commit/dc35d69f65936280b2521941b2ce9d5ad16141d1> `__).
61+
62+ - Fixed ``__new__ `` overloads with variadic positional arguments but no
63+ variadic keyword arguments, which incorrectly prevented nullary calls. (PR
64+ `#1172 <https://github.com/wjakob/nanobind/pull/1172 >`__).
65+
66+ - Removed zero-length arrays to improve compiler compatibility. (PR `#1158
67+ <https://github.com/wjakob/nanobind/pull/1158> `__).
68+
69+ - Fixed a data race related caused by writes to a bit-field in free-threaded
70+ extension builds (PR `#1191
2371 <https://github.com/wjakob/nanobind/pull/1191> `__)
2472
25- - Nanobind now officially supports **MinGW-w64 ** and **Intel ICX ** (the modern
26- Clang-based Intel compiler). Continuous integration tests have been added to
27- ensure compatibility with these compilers on an ongoing basis.
28-
29- - The framework ``nb::array_api `` is now available to return an nd-array from
30- C++ to Python as an object that supports both the Python buffer protocol as
31- well as the DLPack methods ``__dlpack__ `` and ``_dlpack_device__ ``.
32- Nanobind now supports importing and exporting nd-arrays via capsules that
33- contain the ``DLManagedTensorVersioned `` struct, which has a flag bit
34- indicating the nd-array is read-only.
35- (PR `#1175 <https://github.com/wjakob/nanobind/pull/1175 >`__).
73+ - **Stub generation improvements **:
74+
75+ - Added a new ``--exclude-values `` flag that forces all values to be rendered
76+ as ``... `` in stub files. (PR `#1185
77+ <https://github.com/wjakob/nanobind/pull/1185> `__).
78+
79+ - Added support for ``typing.ParamSpec `` in generated stubs.
80+ (PR `#1194 <https://github.com/wjakob/nanobind/pull/1194 >`__).
81+
82+ - NumPy boolean arrays now use ``np.bool_ `` dtype in generated stubs instead
83+ of deprecated alternatives.
84+ (commit `20fab93 <https://github.com/wjakob/nanobind/commit/20fab9386cd6c363878f67296d6b39a66af60a0a >`__).
85+
86+ - Auto-generated enum APIs are now excluded from stub files.
87+ (PR `#1182 <https://github.com/wjakob/nanobind/pull/1182 >`__).
88+
89+ - Pattern files now support ``__prefix__ `` and ``__suffix__ `` patterns
90+ within classes for further customization of class stubs.
91+ (PR `#1235 <https://github.com/wjakob/nanobind/pull/1235 >`__).
92+
93+ - Various minor improvements to the stub generator.
94+ (PR `#1179 <https://github.com/wjakob/nanobind/pull/1179 >`__).
95+
96+ - Minor/miscellaneous fixes: PRs `#1157
97+ <https://github.com/wjakob/nanobind/pull/1157> `__, `#1186
98+ <https://github.com/wjakob/nanobind/pull/1186> `__, `#1193
99+ <https://github.com/wjakob/nanobind/pull/1193> `__, `#1198
100+ <https://github.com/wjakob/nanobind/pull/1198> `__, `#1212
101+ <https://github.com/wjakob/nanobind/pull/1212> `__, `#1218
102+ <https://github.com/wjakob/nanobind/pull/1218> `__, `#1223
103+ <https://github.com/wjakob/nanobind/pull/1223> `__, `#1225
104+ <https://github.com/wjakob/nanobind/pull/1225> `__.
105+
36106
37107Version 2.9.2 (Sep 4, 2025)
38108---------------------------
0 commit comments