Subject: CVS commit: pkgsrc/devel/py-pybind11
From: Adam Ciarcinski
Date: 2021-10-11 19:47:18
Message id: 20211011174719.0117AFA97@cvs.NetBSD.org

Log Message:
py-pybind11: updated to 2.8.0

Version 2.8.0

New features:

Added py::raise_from to enable chaining exceptions.
Allow exception translators to be optionally registered local to a module \ 
instead of applying globally across all pybind11 modules. Use \ 
register_local_exception_translator(ExceptionTranslator&& translator) \ 
instead of register_exception_translator(ExceptionTranslator&& \ 
translator) to keep your exception remapping code local to the module.
Add make_simple_namespace function for instantiating Python SimpleNamespace objects.
pybind11::scoped_interpreter and initialize_interpreter have new arguments to \ 
allow sys.argv initialization.
Allow Python builtins to be used as callbacks in CPython.
Added view to view arrays with a different datatype.
Implemented reshape on arrays.
Enable defining custom __new__ methods on classes by fixing bug preventing \ 
overriding methods if they have non-pybind11 siblings.
Add make_value_iterator(), and fix make_key_iterator() to return references \ 
instead of copies.
Improve the classes generated by bind_map:
Change .items from an iterator to a dictionary view.
Add .keys and .values (both dictionary views).
Allow __contains__ to take any object.
pybind11::custom_type_setup was added, for customizing the PyHeapTypeObject \ 
corresponding to a class, which may be useful for enabling garbage collection \ 
support, among other things.

Changes:

Set __file__ constant when running eval_file in an embedded interpreter.
Python objects and (C++17) std::optional now accepted in py::slice constructor.
The pybind11 proxy types str, bytes, bytearray, tuple, list now consistently \ 
support passing ssize_t values for sizes and indexes. Previously, only size_t \ 
was accepted in several interfaces.
Avoid evaluating PYBIND11_TLS_REPLACE_VALUE arguments more than once.

Fixes:

Bug fix: enum value's __int__ returning non-int when underlying type is bool or \ 
of char type
Fixes bug in setting error state in Capsule's pointer methods.
A long-standing memory leak in py::cpp_function::initialize was fixed.
Fixes thread safety for some pybind11::type_caster which require lifetime \ 
extension, such as for std::string_view.
Restore compatibility with gcc 4.8.4 as distributed by ubuntu-trusty, linuxmint-17.

Build system improvements:

Fix regression in CMake Python package config: improper use of absolute path.
Cached Python version information could become stale when CMake was re-run with \ 
a different Python version. The build system now detects this and updates this \ 
information.
Specified UTF8-encoding in setup.py calls of open().
Fix a harmless warning from CMake 3.21 with the classic Python discovery.
Eigen repo and version can now be specified as cmake options.

Backend and tidying up:

Reduced thread-local storage required for keeping alive temporary data for type \ 
conversion to one key per ABI version, rather than one key per extension module. \ 
This makes the total thread-local storage required by pybind11 2 keys per ABI \ 
version.
Optimize NumPy array construction with additional moves.
Conversion to std::string and std::string_view now avoids making an extra copy \ 
of the data on Python >= 3.3.
Remove const modifier from certain C++ methods on Python collections (list, set, \ 
dict) such as (clear(), append(), insert(), etc...) and annotated them with \ 
py-non-const.
Enable readability clang-tidy-const-return and remove useless consts.
The clang-tidy google-explicit-constructor option was enabled.
Mark a pytype move constructor as noexcept (perf).
Enable clang-tidy check to guard against inheritance slicing.
Legacy warning suppression pragma were removed from eigen.h. On Unix platforms, \ 
please use -isystem for Eigen include directories, to suppress compiler warnings \ 
originating from Eigen headers. Note that CMake does this by default. No \ 
adjustments are needed for Windows.
Format pybind11 with isort consistent ordering of imports
The warnings-suppression "pragma clamp" at the top/bottom of pybind11 \ 
was removed, clearing the path to refactoring and IWYU cleanup.
Enable most bugprone checks in clang-tidy and fix the found potential bugs and \ 
poor coding styles.
Add clang-tidy-readability rules to make boolean casts explicit improving code \ 
readability. Also enabled other misc and readability clang-tidy checks.
Move object in .pop() for list.

Files:
RevisionActionfile
1.5modifypkgsrc/devel/py-pybind11/Makefile
1.6modifypkgsrc/devel/py-pybind11/distinfo