2022-10-05 22:53:35 by Adam Ciarcinski | Files touched by this commit (3) | |
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.
|
2022-03-31 09:28:01 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-pybind11: updated to 2.9.2
Version 2.9.2 (Mar 29, 2022)
Changes:
Enum now has an __index__ method on Python <3.8 too.
Local internals are now cleared after finalizing the interpreter.
Bug fixes:
Better support for Python 3.11 alphas.
PYBIND11_TYPE_CASTER now uses fully qualified symbols, so it can be used outside \
of pybind11::detail.
Some fixes for PyPy 3.9.
Fixed a potential memleak in PyPy in get_type_override.
Fix usage of VISIBILITY_INLINES_HIDDEN.
Build system improvements:
Uses sysconfig module to determine installation locations on Python >= 3.10, \
instead of distutils which has been deprecated.
Support Catch 2.13.5+ (supporting GLIBC 2.34+).
Fix test failures with numpy 1.22 by ignoring whitespace when comparing str() of \
dtypes.
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.
clang-format was added to the pre-commit actions, and the entire code base \
automatically reformatted (after several iterations preparing for this leap).
|
2022-02-05 15:53:33 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-pybind11: updated to 2.9.1
Version 2.9.1
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.
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.
Propagate Python exception traceback using raise_from if a pybind11 function \
runs out of overloads.
py::multiple_inheritance is now only needed when C++ bases are hidden from pybind11.
Bug fixes:
Remove a boolean cast in numpy.h that causes MSVC C4800 warnings when compiling \
against Python 3.10 or newer.
Render py::bool_ and py::float_ as bool and float respectively.
Build system improvements:
Fix CMake extension suffix computation on Python 3.10+.
Allow CMAKE_ARGS to override CMake args in pybind11's own setup.py.
Remove a few deprecated c-headers.
More uniform handling of test targets.
Add clang-tidy readability check to catch potentially swapped function args.
|
2022-01-12 07:46:15 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-pybind11: updated to 2.9.0
Version 2.9.0
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.
Changes:
Make str/bytes/memoryview more interoperable with std::string_view.
Replace _ with const_name in internals, avoid defining pybind::_ if _ defined as \
macro (common gettext usage)
Bug fixes:
Fix a rare warning about extra copy in an Eigen constructor.
Fix caching of the C++ overrides.
Add missing std::forward calls to some cpp_function overloads.
Support PyPy 7.3.7 and the PyPy3.8 beta. Test python-3.11 on PRs with the python \
dev label.
Replace usage of deprecated Eigen::MappedSparseMatrix with \
Eigen::Map<Eigen::SparseMatrix<...>> for Eigen 3.3+.
Tweaks to support Microsoft Visual Studio 2022.
Build system improvements:
Nicer CMake printout and IDE organisation for pybind11's own tests.
CMake: report version type as part of the version string to avoid a spurious \
space in the package status message.
Flags starting with -g in $CFLAGS and $CPPFLAGS are no longer overridden by \
.Pybind11Extension.
Ensure ThreadPool is closed in setup_helpers.
Avoid LTS on mips64 and ppc64le (reported broken).
|
2022-01-05 16:41:32 by Thomas Klausner | Files touched by this commit (289) |
Log message:
python: egg.mk: add USE_PKG_RESOURCES flag
This flag should be set for packages that import pkg_resources
and thus need setuptools after the build step.
Set this flag for packages that need it and bump PKGREVISION.
|
2022-01-04 21:55:40 by Thomas Klausner | Files touched by this commit (1595) |
Log message:
*: bump PKGREVISION for egg.mk users
They now have a tool dependency on py-setuptools instead of a DEPENDS
|
2021-10-28 11:09:29 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-pybind11: updated to 2.8.1
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").
Add C++ Exception type to throw and catch AttributeError. Useful for defining \
custom __setattr__ and __getattr__ methods.
Fixes:
Fixed the potential for dangling references when using properties with \
std::optional types.
Modernize usage of PyCodeObject on Python 3.9+ (moving toward support for Python \
3.11a1)
A long-standing bug in eigen.h was fixed. The bug was unmasked by newly added \
static_assert's in the Eigen 3.4.0 release.
Support multiple raw inc…
|
2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016) |
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
Could not be committed due to merge conflict:
devel/py-traitlets/distinfo
The following distfiles were unfetchable (note: some may be only fetched
conditionally):
./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
|
2021-10-11 19:47:18 by Adam Ciarcinski | Files touched by this commit (2) | |
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.
|
2021-10-07 15:44:44 by Nia Alarie | Files touched by this commit (3017) |
Log message:
devel: Remove SHA1 hashes for distfiles
|