Path to this page:
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: