scikit-learn-intelex icon indicating copy to clipboard operation
scikit-learn-intelex copied to clipboard

Update dependency pybind11 to v2.10.0

Open renovate[bot] opened this issue 4 years ago • 0 comments
trafficstars

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
pybind11 (changelog) ==2.8.0 -> ==2.10.0 age adoption passing confidence

Release Notes

pybind/pybind11

v2.10.0

Compare Source

Removed support for Python 2.7, Python 3.5, and MSVC 2015. Support for MSVC 2017 is limited due to availability of CI runners; we highly recommend MSVC 2019 or 2022 be used. Initial support added for Python 3.11.

New features:

  • py::anyset & py::frozenset were added, with copying (cast) to std::set (similar to set). #​3901
  • Support bytearray casting to string. #​3707
  • type_caster<std::monostate> was added. std::monostate is a tag type that allows std::variant to act as an optional, or allows default construction of a std::variant holding a non-default constructible type. #​3818
  • pybind11::capsule::set_name added to mutate the name of the capsule instance. #​3866
  • NumPy: dtype constructor from type number added, accessors corresponding to Python API dtype.num, dtype.byteorder, dtype.flags and dtype.alignment added. #​3868

Changes:

  • Python 3.6 is now the minimum supported version. #​3688 #​3719
  • The minimum version for MSVC is now 2017. #​3722
  • Fix issues with CPython 3.11 betas and add to supported test matrix. #​3923
  • error_already_set is now safer and more performant, especially for exceptions with long tracebacks, by delaying computation. #​1895
  • Improve exception handling in python str bindings. #​3826
  • The bindings for capsules now have more consistent exception handling. #​3825
  • PYBIND11_OBJECT_CVT and PYBIND11_OBJECT_CVT_DEFAULT macro can now be used to define classes in namespaces other than pybind11. #​3797
  • Error printing code now uses PYBIND11_DETAILED_ERROR_MESSAGES instead of requiring NDEBUG, allowing use with release builds if desired. #​3913
  • Implicit conversion of the literal 0 to pybind11::handle is now disabled. #​4008

Bug fixes:

  • Fix exception handling when pybind11::weakref() fails. #​3739
  • module_::def_submodule was missing proper error handling. This is fixed now. #​3973
  • The behavior or error_already_set was made safer and the highly opaque "Unknown internal error occurred" message was replaced with a more helpful message. #​3982
  • error_already_set::what() now handles non-normalized exceptions correctly. #​3971
  • Support older C++ compilers where filesystem is not yet part of the standard library and is instead included in std::experimental::filesystem. #​3840
  • Fix -Wfree-nonheap-object warnings produced by GCC by avoiding returning pointers to static objects with return_value_policy::take_ownership. #​3946
  • Fix cast from pytype rvalue to another pytype. #​3949
  • Ensure proper behavior when garbage collecting classes with dynamic attributes in Python >=3.9. #​4051
  • A couple long-standing PYBIND11_NAMESPACE __attribute__((visibility("hidden"))) inconsistencies are now fixed (affects only unusual environments). #​4043
  • pybind11::detail::get_internals() is now resilient to in-flight Python exceptions. #​3981
  • Arrays with a dimension of size 0 are now properly converted to dynamic Eigen matrices (more common in NumPy 1.23). #​4038
  • Avoid catching unrelated errors when importing NumPy. #​3974

Performance and style:

  • Added an accessor overload of (object &&key) to reference steal the object when using python types as keys. This prevents unnecessary reference count overhead for attr, dictionary, tuple, and sequence look ups. Added additional regression tests. Fixed a performance bug the caused accessor assignments to potentially perform unnecessary copies. #​3970
  • Perfect forward all args of make_iterator. #​3980
  • Avoid potential bug in pycapsule destructor by adding an error_guard to one of the dtors. #​3958
  • Optimize dictionary access in strip_padding for numpy. #​3994
  • stl_bind.h bindings now take slice args as a const-ref. #​3852
  • Made slice constructor more consistent, and improve performance of some casters by allowing reference stealing. #​3845
  • Change numpy dtype from_args method to use const ref. #​3878
  • Follow rule of three to ensure PyErr_Restore is called only once. #​3872
  • Added missing perfect forwarding for make_iterator functions. #​3860
  • Optimize c++ to python function casting by using the rvalue caster. #​3966
  • Optimize Eigen sparse matrix casting by removing unnecessary temporary. #​4064
  • Avoid potential implicit copy/assignment constructors causing double free in strdup_gaurd. #​3905
  • Enable clang-tidy checks misc-definitions-in-headers, modernize-loop-convert, and modernize-use-nullptr. #​3881 #​3988

Build system improvements:

  • CMake: Fix file extension on Windows with cp36 and cp37 using FindPython. #​3919
  • CMake: Support multiple Python targets (such as on vcpkg). #​3948
  • CMake: Fix issue with NVCC on Windows. #​3947
  • CMake: Drop the bitness check on cross compiles (like targeting WebAssembly via Emscripten). #​3959
  • Add MSVC builds in debug mode to CI. #​3784
  • MSVC 2022 C++20 coverage was added to GitHub Actions, including Eigen. #​3732, #​3741

Backend and tidying up:

  • New theme for the documentation. #​3109
  • Remove idioms in code comments. Use more inclusive language. #​3809
  • #include <iostream> was removed from the pybind11/stl.h header. Your project may break if it has a transitive dependency on this include. The fix is to "Include What You Use". #​3928
  • Avoid setup.py <command> usage in internal tests. #​3734

v2.9.2

Compare Source

Changes:

  • Enum now has an __index__ method on Python <3.8 too. #​3700
  • Local internals are now cleared after finalizing the interpreter. #​3744

Bug fixes:

  • Better support for Python 3.11 alphas. #​3694
  • PYBIND11_TYPE_CASTER now uses fully qualified symbols, so it can be used outside of pybind11::detail. #​3758
  • Some fixes for PyPy 3.9. #​3768
  • Fixed a potential memleak in PyPy in get_type_override. #​3774
  • Fix usage of VISIBILITY_INLINES_HIDDEN. #​3721

Build system improvements:

  • Uses sysconfig module to determine installation locations on Python >= 3.10, instead of distutils which has been deprecated. #​3764
  • Support Catch 2.13.5+ (supporting GLIBC 2.34+). #​3679
  • Fix test failures with numpy 1.22 by ignoring whitespace when comparing str() of dtypes. #​3682

Backend and tidying up:

  • clang-tidy: added readability-qualified-auto, readability-braces-around-statements, cppcoreguidelines-prefer-member-initializer, clang-analyzer-optin.performance.Padding, cppcoreguidelines-pro-type-static-cast-downcast, and readability-inconsistent-declaration-parameter-name. #​3702, #​3699, #​3716, #​3709
  • clang-format was added to the pre-commit actions, and the entire code base automatically reformatted (after several iterations preparing for this leap). #​3713

v2.9.1

Compare Source

Changes:

  • If possible, attach Python exception with py::raise_from to TypeError when casting from C++ to Python. This will give additional info if Python exceptions occur in the caster. Adds a test case of trying to convert a set from C++ to Python when the hash function is not defined in Python. #​3605
  • Add a mapping of C++11 nested exceptions to their Python exception equivalent using py::raise_from. This attaches the nested exceptions in Python using the __cause__ field. #​3608
  • Propagate Python exception traceback using raise_from if a pybind11 function runs out of overloads. #​3671
  • py::multiple_inheritance is now only needed when C++ bases are hidden from pybind11. #​3650 and #​3659

Bug fixes:

  • Remove a boolean cast in numpy.h that causes MSVC C4800 warnings when compiling against Python 3.10 or newer. #​3669
  • Render py::bool_ and py::float_ as bool and float respectively. #​3622

Build system improvements:

  • Fix CMake extension suffix computation on Python 3.10+. #​3663
  • Allow CMAKE_ARGS to override CMake args in pybind11's own setup.py. #​3577
  • Remove a few deprecated c-headers. #​3610
  • More uniform handling of test targets. #​3590
  • Add clang-tidy readability check to catch potentially swapped function args. #​3611

v2.9.0

Compare Source

This is the last version to support Python 2.7 and 3.5.

New Features:

  • Allow py::args to be followed by other arguments; the remaining arguments are implicitly keyword-only, as if a py::kw_only{} annotation had been used. #​3402

Changes:

  • Make str/bytes/memoryview more interoperable with std::string_view. #​3521
  • Replace _ with const_name in internals, avoid defining pybind::_ if _ defined as macro (common gettext usage) #​3423

Bug fixes:

  • Fix a rare warning about extra copy in an Eigen constructor. #​3486
  • Fix caching of the C++ overrides. #​3465
  • Add missing std::forward calls to some cpp_function overloads. #​3443
  • Support PyPy 7.3.7 and the PyPy3.8 beta. Test python-3.11 on PRs with the python dev label. #​3419
  • Replace usage of deprecated Eigen::MappedSparseMatrix with Eigen::Map<Eigen::SparseMatrix<...>> for Eigen 3.3+. #​3499
  • Tweaks to support Microsoft Visual Studio 2022. #​3497

Build system improvements:

  • Nicer CMake printout and IDE organisation for pybind11's own tests. #​3479
  • CMake: report version type as part of the version string to avoid a spurious space in the package status message. #​3472
  • Flags starting with -g in $CFLAGS and $CPPFLAGS are no longer overridden by .Pybind11Extension. #​3436
  • Ensure ThreadPool is closed in setup_helpers. #​3548
  • Avoid LTS on mips64 and ppc64le (reported broken). #​3557

v2.8.1

Compare Source

v2.8.1 (Oct 27, 2021)

Changes and additions:

  • The simple namespace creation shortcut added in 2.8.0 was deprecated due to usage of CPython internal API, and will be removed soon. Use py::module_::import("types").attr("SimpleNamespace"). #​3374
  • Add C++ Exception type to throw and catch AttributeError. Useful for defining custom __setattr__ and __getattr__ methods. #​3387

Fixes:

  • Fixed the potential for dangling references when using properties with std::optional types. #​3376
  • Modernize usage of PyCodeObject on Python 3.9+ (moving toward support for Python 3.11a1) #​3368
  • A long-standing bug in eigen.h was fixed (originally PR #​3343). The bug was unmasked by newly added static_assert's in the Eigen 3.4.0 release. #​3352
  • Support multiple raw inclusion of CMake helper files (Conan.io does this for multi-config generators). #​3420
  • Fix harmless warning on upcoming CMake 3.22. #​3368
  • Fix 2.8.0 regression with MSVC 2017 + C++17 mode + Python 3. #​3407
  • Fix 2.8.0 regression that caused undefined behavior (typically segfaults) in make_key_iterator/make_value_iterator if dereferencing the iterator returned a temporary value instead of a reference. #​3348

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • [ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Mend Renovate. View repository job log here.

renovate[bot] avatar Oct 27 '21 23:10 renovate[bot]