Skip to content

Commit 6e8b3bb

Browse files
committed
Update changelog
1 parent 4faab3c commit 6e8b3bb

File tree

1 file changed

+85
-12
lines changed

1 file changed

+85
-12
lines changed

docs/changelog.rst

Lines changed: 85 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,94 @@ below inherit that of the preceding release.
1818
Version 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

37110
Version 2.9.2 (Sep 4, 2025)
38111
---------------------------

0 commit comments

Comments
 (0)