@@ -18,21 +18,91 @@ below inherit that of the preceding release.
1818Version TBD (not yet released)
1919------------------------------
2020
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
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/bfacaf7fe0b9d7cfd67eb1b10b7ed1fdb18f32cc> `__).
55+
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