pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel/py-pybind11



Module Name:    pkgsrc
Committed By:   adam
Date:           Wed Oct  5 20:53:35 UTC 2022

Modified Files:
        pkgsrc/devel/py-pybind11: Makefile PLIST distinfo

Log Message:
py-pybind11: updated to 2.10.0

Version 2.10.0

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).
Support bytearray casting to string.
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.
pybind11::capsule::set_name added to mutate the name of the capsule instance.
NumPy: dtype constructor from type number added, accessors corresponding to Python API dtype.num, dtype.byteorder, dtype.flags and dtype.alignment added.

Changes:

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

Bug fixes:

Fix exception handling when pybind11::weakref() fails.
module_::def_submodule was missing proper error handling. This is fixed now.
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.
error_already_set::what() now handles non-normalized exceptions correctly.
Support older C++ compilers where filesystem is not yet part of the standard library and is instead included in std::experimental::filesystem.
Fix -Wfree-nonheap-object warnings produced by GCC by avoiding returning pointers to static objects with return_value_policy::take_ownership.
Fix cast from pytype rvalue to another pytype.
Ensure proper behavior when garbage collecting classes with dynamic attributes in Python >=3.9.
A couple long-standing PYBIND11_NAMESPACE __attribute__((visibility("hidden"))) inconsistencies are now fixed (affects only unusual environments).
pybind11::detail::get_internals() is now resilient to in-flight Python exceptions.
Arrays with a dimension of size 0 are now properly converted to dynamic Eigen matrices (more common in NumPy 1.23).
Avoid catching unrelated errors when importing NumPy.

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.
Perfect forward all args of make_iterator.
Avoid potential bug in pycapsule destructor by adding an error_guard to one of the dtors.
Optimize dictionary access in strip_padding for numpy.
stl_bind.h bindings now take slice args as a const-ref.
Made slice constructor more consistent, and improve performance of some casters by allowing reference stealing.
Change numpy dtype from_args method to use const ref.
Follow rule of three to ensure PyErr_Restore is called only once.
Added missing perfect forwarding for make_iterator functions.
Optimize c++ to python function casting by using the rvalue caster.
Optimize Eigen sparse matrix casting by removing unnecessary temporary.
Avoid potential implicit copy/assignment constructors causing double free in strdup_gaurd.
Enable clang-tidy checks misc-definitions-in-headers, modernize-loop-convert, and modernize-use-nullptr.

Build system improvements:

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

Backend and tidying up:

New theme for the documentation.
Remove idioms in code comments. Use more inclusive language.
#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".
Avoid setup.py <command> usage in internal tests.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 pkgsrc/devel/py-pybind11/Makefile \
    pkgsrc/devel/py-pybind11/distinfo
cvs rdiff -u -r1.3 -r1.4 pkgsrc/devel/py-pybind11/PLIST

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/devel/py-pybind11/Makefile
diff -u pkgsrc/devel/py-pybind11/Makefile:1.11 pkgsrc/devel/py-pybind11/Makefile:1.12
--- pkgsrc/devel/py-pybind11/Makefile:1.11      Thu Mar 31 07:28:01 2022
+++ pkgsrc/devel/py-pybind11/Makefile   Wed Oct  5 20:53:35 2022
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.11 2022/03/31 07:28:01 adam Exp $
+# $NetBSD: Makefile,v 1.12 2022/10/05 20:53:35 adam Exp $
 
-DISTNAME=      pybind11-2.9.2
+DISTNAME=      pybind11-2.10.0
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
 CATEGORIES=    devel python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=p/pybind11/}
@@ -16,5 +16,7 @@ PYTHON_SELF_CONFLICT= yes
 
 USE_PKG_RESOURCES=     yes
 
+PYTHON_VERSIONS_INCOMPATIBLE=  27
+
 .include "../../lang/python/egg.mk"
 .include "../../mk/bsd.pkg.mk"
Index: pkgsrc/devel/py-pybind11/distinfo
diff -u pkgsrc/devel/py-pybind11/distinfo:1.11 pkgsrc/devel/py-pybind11/distinfo:1.12
--- pkgsrc/devel/py-pybind11/distinfo:1.11      Thu Mar 31 07:28:01 2022
+++ pkgsrc/devel/py-pybind11/distinfo   Wed Oct  5 20:53:35 2022
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.11 2022/03/31 07:28:01 adam Exp $
+$NetBSD: distinfo,v 1.12 2022/10/05 20:53:35 adam Exp $
 
-BLAKE2s (pybind11-2.9.2.tar.gz) = 0cd37285d8c4e6c29a5c04cb4f425e551d99bade08b18be2b8dbf6a09a24964d
-SHA512 (pybind11-2.9.2.tar.gz) = 5d6f6cefea5279a2e6755c9a68e072d336577e7eb8eb364c7d3f1e31432a2618475b7fed68de0605c24a2b2c18197f24e77ad7537c2fabe3d39574793d22a7f8
-Size (pybind11-2.9.2.tar.gz) = 193212 bytes
+BLAKE2s (pybind11-2.10.0.tar.gz) = 55c4d6fa8a5c2c8afd5ef751fdb8580ff6ddbd9d9b99d0b487eedcd0bc577a72
+SHA512 (pybind11-2.10.0.tar.gz) = ea2a49d45ff9e982ddcde1191136fc8029e9f75d3a4172409890adad76106ecc5e83dccf31fbba567f87ce16fd311d5f82ab4c15cee99a5dc80b89afdb83006b
+Size (pybind11-2.10.0.tar.gz) = 193392 bytes

Index: pkgsrc/devel/py-pybind11/PLIST
diff -u pkgsrc/devel/py-pybind11/PLIST:1.3 pkgsrc/devel/py-pybind11/PLIST:1.4
--- pkgsrc/devel/py-pybind11/PLIST:1.3  Mon Aug  2 20:35:42 2021
+++ pkgsrc/devel/py-pybind11/PLIST      Wed Oct  5 20:53:35 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.3 2021/08/02 20:35:42 adam Exp $
+@comment $NetBSD: PLIST,v 1.4 2022/10/05 20:53:35 adam Exp $
 bin/pybind11-config
 ${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
 ${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
@@ -15,7 +15,6 @@ ${PYSITELIB}/pybind11/__main__.pyc
 ${PYSITELIB}/pybind11/__main__.pyo
 ${PYSITELIB}/pybind11/_version.py
 ${PYSITELIB}/pybind11/_version.pyc
-${PYSITELIB}/pybind11/_version.pyi
 ${PYSITELIB}/pybind11/_version.pyo
 ${PYSITELIB}/pybind11/commands.py
 ${PYSITELIB}/pybind11/commands.pyc
@@ -50,7 +49,6 @@ ${PYSITELIB}/pybind11/include/pybind11/s
 ${PYSITELIB}/pybind11/py.typed
 ${PYSITELIB}/pybind11/setup_helpers.py
 ${PYSITELIB}/pybind11/setup_helpers.pyc
-${PYSITELIB}/pybind11/setup_helpers.pyi
 ${PYSITELIB}/pybind11/setup_helpers.pyo
 ${PYSITELIB}/pybind11/share/cmake/pybind11/FindPythonLibsNew.cmake
 ${PYSITELIB}/pybind11/share/cmake/pybind11/pybind11Common.cmake



Home | Main Index | Thread Index | Old Index