@@ -18,21 +18,94 @@ 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
23- <https://github.com/wjakob/nanobind/pull/1191> `__)
21+ - ABI version 17.
2422
2523- Nanobind now officially supports **MinGW-w64 ** and **Intel ICX ** (the modern
2624 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 >`__).
25+ ensure compatibility with these compilers on an ongoing basis. (PR `#1188
26+ <https://github.com/wjakob/nanobind/pull/1188> `__).
27+
28+ - Version 2.10 drops support for Python 3.8, which reached *End-Of-Life * in
29+ October 2025. (PR `#1236 <https://github.com/wjakob/nanobind/pull/1236 >`__).
30+
31+ - The new :cpp:class: `nb::array_api <array_api> ` framework tag can be used to
32+ create an nd-array wrapper object that supports both the Python buffer
33+ protocol and the DLPack methods ``__dlpack__ `` and ``__dlpack_device__ ``.
34+
35+ Furthermore, nanobind now supports importing/exporting tensors via the legacy
36+ (unversioned) DLPack interface, as well a new versioned interface. The latter
37+ provides a flag indicating whether an nd-array is read-only. (PR `#1175
38+ <https://github.com/wjakob/nanobind/pull/1175> `__).
39+
40+ - Added ``bfloat `` to the nd-array import conversion code, fixing imports of
41+ bfloat16 tensors. (PR `#1228
42+ <https://github.com/wjakob/nanobind/pull/1228> `__).
43+
44+ - nanobind now uses per-module precomputed constants, particularly strings, to
45+ avoid costs from creating these repeatedly. This improves the performance of
46+ nd-array and enumeration casts. (PR `#1184
47+ <https://github.com/wjakob/nanobind/pull/1184> `__).
48+
49+ - Fixed a segfault in garbage collection traversal of Python subclasses of
50+ class bindings with :cpp:class: `nb::is_weak_referenceable
51+ <is_weak_referenceable> `. (PR `#1206
52+ <https://github.com/wjakob/nanobind/pull/1206> `__).
53+
54+ - Fixed a potential reference leak in the ``std::array `` type caster. (commit
55+ `bfacaf7
56+ <https://github.com/wjakob/nanobind/commit/bfacaf7fe0b9d7cfd67eb1b10b7ed1fdb18f32cc> `__).
57+
58+ - STL type casters now directly reject incorrectly sized inputs, which avoids
59+ performance pitfalls when passing large arrays. (commit `edf5753
60+ <https://github.com/wjakob/nanobind/commit/edf5753a13f98132b8da3d56fe94c31c678b2273> `__,
61+ `dc35d69
62+ <https://github.com/wjakob/nanobind/commit/dc35d69f370697b6086ff42dc4f326d7b2a0bcd4> `__).
63+
64+ - Fixed ``__new__ `` overloads with variadic positional arguments but no
65+ variadic keyword arguments, which incorrectly prevented nullary calls. (PR
66+ `#1172 <https://github.com/wjakob/nanobind/pull/1172 >`__).
67+
68+ - Removed zero-length arrays to improve compiler compatibility. (PR `#1158
69+ <https://github.com/wjakob/nanobind/pull/1158> `__).
70+
71+ - Fixed a data race related caused by writes to a bit-field in free-threaded
72+ extension builds (PR `#1191
73+ <https://github.com/wjakob/nanobind/pull/1191> `__)
74+
75+ - **Stub generation improvements **:
76+
77+ - Added a new ``--exclude-values `` flag that forces all values to be rendered
78+ as ``... `` in stub files. (PR `#1185
79+ <https://github.com/wjakob/nanobind/pull/1185> `__).
80+
81+ - Added support for ``typing.ParamSpec `` in generated stubs.
82+ (PR `#1194 <https://github.com/wjakob/nanobind/pull/1194 >`__).
83+
84+ - NumPy boolean arrays now use ``np.bool_ `` dtype in generated stubs instead
85+ of deprecated alternatives.
86+ (commit `20fab93
87+ <https://github.com/wjakob/nanobind/commit/20fab93b77f20ac20e12e0d6c942e47a18a4a81c> `__).
88+
89+ - Auto-generated enum APIs are now excluded from stub files.
90+ (PR `#1182 <https://github.com/wjakob/nanobind/pull/1182 >`__).
91+
92+ - Pattern files now support ``__prefix__ `` and ``__suffix__ `` patterns
93+ within classes for further customization of class stubs.
94+ (PR `#1235 <https://github.com/wjakob/nanobind/pull/1235 >`__).
95+
96+ - Various minor improvements to the stub generator.
97+ (PR `#1179 <https://github.com/wjakob/nanobind/pull/1179 >`__).
98+
99+ - Minor/miscellaneous fixes: PRs `#1157
100+ <https://github.com/wjakob/nanobind/pull/1157> `__, `#1186
101+ <https://github.com/wjakob/nanobind/pull/1186> `__, `#1193
102+ <https://github.com/wjakob/nanobind/pull/1193> `__, `#1198
103+ <https://github.com/wjakob/nanobind/pull/1198> `__, `#1212
104+ <https://github.com/wjakob/nanobind/pull/1212> `__, `#1218
105+ <https://github.com/wjakob/nanobind/pull/1218> `__, `#1223
106+ <https://github.com/wjakob/nanobind/pull/1223> `__, `#1225
107+ <https://github.com/wjakob/nanobind/pull/1225> `__.
108+
36109
37110Version 2.9.2 (Sep 4, 2025)
38111---------------------------
0 commit comments