Subject: CVS commit: pkgsrc/devel/py-pybind11
From: Adam Ciarcinski
Date: 2023-07-17 21:08:10
Message id:

Log Message:
py-pybind11: updated to 2.11.1

Version 2.11.1


PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF is now provided as an option for \ 
disabling the default-on PyGILState_Check()'s in pybind11::handle's inc_ref() \ 
& dec_ref().

PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF was disabled for PyPy in general (not \ 
just PyPy Windows).

Version 2.11.0

New features:

The newly added pybind11::detail::is_move_constructible trait can be specialized \ 
for cases in which std::is_move_constructible does not work as needed. This is \ 
very similar to the long-established pybind11::detail::is_copy_constructible.
Introduce recursive_container_traits.
pybind11/type_caster_pyobject_ptr.h was added to support automatic wrapping of \ 
APIs that make use of PyObject *. This header needs to included explicitly (i.e. \ 
it is not included implicitly with pybind/pybind11.h).
format_descriptor<> & npy_format_descriptor<> PyObject * \ 
specializations were added. The latter enables py::array_t<PyObject *> \ 
to/from-python conversions.
buffer_info gained an item_type_is_equivalent_to<T>() member function.
The capsule API gained a user-friendly constructor (py::capsule(ptr, \ 
"name", dtor)).


PyGILState_Check()'s in pybind11::handle's inc_ref() & dec_ref() are now \ 
enabled by default again.
py::initialize_interpreter() using PyConfig_InitPythonConfig() instead of \ 
PyConfig_InitIsolatedConfig(), to obtain complete sys.path.
Cast errors now always include Python type information, even if \ 
PYBIND11_DETAILED_ERROR_MESSAGES is not defined. This increases binary sizes \ 
slightly (~1.5%) but the error messages are much more informative.
The docstring generation for the std::array-list caster was fixed. Previously, \ 
signatures included the size of the list in a non-standard, non-spec compliant \ 
way. The new format conforms to PEP 593. Tooling for processing the docstrings \ 
may need to be updated accordingly.
Setter return values (which are inaccessible for all practical purposes) are no \ 
longer converted to Python (only to be discarded).
Allow lambda specified to function definition to be noexcept(true) in C++17.
Get rid of recursive template instantiations for concatenating type signatures \ 
on C++17 and higher.
Compatibility with Python 3.12 (beta). Note that the minimum pybind11 ABI \ 
version for Python 3.12 is version 5. (The default ABI version for Python \ 
versions up to and including 3.11 is still version 4.).
With PYBIND11_INTERNALS_VERSION 5 (default for Python 3.12+), MSVC builds use \ 
std::hash<std::type_index> and std::equal_to<std::type_index> \ 
instead of string-based type comparisons. This resolves issues when binding \ 
types defined in the unnamed namespace.
Python exception __notes__ (introduced with Python 3.11) are now added to the \ 
error_already_set::what() output.

Build system improvements:

CMake 3.27 support was added, CMake 3.4 support was dropped. FindPython will be \ 
used if FindPythonInterp is not present.
Update clang-tidy to 15 in CI.
Moved the linting framework over to Ruff.
Skip lto checks and target generation when CMAKE_INTERPROCEDURAL_OPTIMIZATION is \ 
No longer inject -stdlib=libc++, not needed for modern Pythons (macOS 10.9+).
PyPy 3.10 support was added, PyPy 3.7 support was dropped.
Testing with Python 3.12 beta releases was added.