Skip to content

Commit 477f67b

Browse files
committed
Update changelog
1 parent 4faab3c commit 477f67b

File tree

1 file changed

+83
-13
lines changed

1 file changed

+83
-13
lines changed

docs/changelog.rst

Lines changed: 83 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,91 @@ 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
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

37107
Version 2.9.2 (Sep 4, 2025)
38108
---------------------------

0 commit comments

Comments
 (0)