Merge branch 'master' into smart_holder

This commit is contained in:
Ralf W. Grosse-Kunstleve 2021-07-06 14:12:08 -07:00
commit 704daac879
12 changed files with 22 additions and 11 deletions

View File

@ -386,7 +386,7 @@ jobs:
run: yum -y install https://developer.download.nvidia.com/hpc-sdk/20.9/nvhpc-20-9-20.9-1.x86_64.rpm https://developer.download.nvidia.com/hpc-sdk/20.9/nvhpc-2020-20.9-1.x86_64.rpm run: yum -y install https://developer.download.nvidia.com/hpc-sdk/20.9/nvhpc-20-9-20.9-1.x86_64.rpm https://developer.download.nvidia.com/hpc-sdk/20.9/nvhpc-2020-20.9-1.x86_64.rpm
# On CentOS 7, we have to filter a few tests (compiler internal error) # On CentOS 7, we have to filter a few tests (compiler internal error)
# and allow deeper templete recursion (not needed on CentOS 8 with a newer # and allow deeper template recursion (not needed on CentOS 8 with a newer
# standard library). On some systems, you many need further workarounds: # standard library). On some systems, you many need further workarounds:
# https://github.com/pybind/pybind11/pull/2475 # https://github.com/pybind/pybind11/pull/2475
- name: Configure - name: Configure

View File

@ -83,6 +83,17 @@ repos:
stages: [manual] stages: [manual]
additional_dependencies: [cmake, ninja] additional_dependencies: [cmake, ninja]
- repo: https://github.com/codespell-project/codespell
rev: v2.1.0
hooks:
- id: codespell
name: codespell
description: Checks for common misspellings in text files.
entry: codespell
language: python
types: [text]
args: ["-q", "3", "--skip", "*.supp", "-L", "nd,ot,thist,readded"]
# The original pybind11 checks for a few C++ style items # The original pybind11 checks for a few C++ style items
- repo: local - repo: local
hooks: hooks:

View File

@ -504,7 +504,7 @@ v2.4.0 (Sep 19, 2019)
`#1888 <https://github.com/pybind/pybind11/pull/1888>`_. `#1888 <https://github.com/pybind/pybind11/pull/1888>`_.
* ``py::details::overload_cast_impl`` is available in C++11 mode, can be used * ``py::details::overload_cast_impl`` is available in C++11 mode, can be used
like ``overload_cast`` with an additional set of parantheses. like ``overload_cast`` with an additional set of parentheses.
`#1581 <https://github.com/pybind/pybind11/pull/1581>`_. `#1581 <https://github.com/pybind/pybind11/pull/1581>`_.
* Fixed ``get_include()`` on Conda. * Fixed ``get_include()`` on Conda.

View File

@ -93,7 +93,7 @@ to a memory dependent number.
If you are developing rapidly and have a lot of C++ files, you may want to If you are developing rapidly and have a lot of C++ files, you may want to
avoid rebuilding files that have not changed. For simple cases were you are avoid rebuilding files that have not changed. For simple cases were you are
using ``pip install -e .`` and do not have local headers, you can skip the using ``pip install -e .`` and do not have local headers, you can skip the
rebuild if a object file is newer than it's source (headers are not checked!) rebuild if an object file is newer than its source (headers are not checked!)
with the following: with the following:
.. code-block:: python .. code-block:: python

View File

@ -180,7 +180,7 @@ How can I create smaller binaries?
To do its job, pybind11 extensively relies on a programming technique known as To do its job, pybind11 extensively relies on a programming technique known as
*template metaprogramming*, which is a way of performing computation at compile *template metaprogramming*, which is a way of performing computation at compile
time using type information. Template metaprogamming usually instantiates code time using type information. Template metaprogramming usually instantiates code
involving significant numbers of deeply nested types that are either completely involving significant numbers of deeply nested types that are either completely
removed or reduced to just a few instructions during the compiler's optimization removed or reduced to just a few instructions during the compiler's optimization
phase. However, due to the nested nature of these types, the resulting symbol phase. However, due to the nested nature of these types, the resulting symbol

View File

@ -281,7 +281,7 @@ Within pybind11's CMake build system, ``pybind11_add_module`` has always been
setting the ``-fvisibility=hidden`` flag in release mode. From now on, it's setting the ``-fvisibility=hidden`` flag in release mode. From now on, it's
being applied unconditionally, even in debug mode and it can no longer be opted being applied unconditionally, even in debug mode and it can no longer be opted
out of with the ``NO_EXTRAS`` option. The ``pybind11::module`` target now also out of with the ``NO_EXTRAS`` option. The ``pybind11::module`` target now also
adds this flag to it's interface. The ``pybind11::embed`` target is unchanged. adds this flag to its interface. The ``pybind11::embed`` target is unchanged.
The most significant change here is for the ``pybind11::module`` target. If you The most significant change here is for the ``pybind11::module`` target. If you
were previously relying on default visibility, i.e. if your Python module was were previously relying on default visibility, i.e. if your Python module was

View File

@ -329,7 +329,7 @@ inline bool deregister_instance(instance *self, void *valptr, const type_info *t
inline PyObject *make_new_instance(PyTypeObject *type) { inline PyObject *make_new_instance(PyTypeObject *type) {
#if defined(PYPY_VERSION) #if defined(PYPY_VERSION)
// PyPy gets tp_basicsize wrong (issue 2482) under multiple inheritance when the first inherited // PyPy gets tp_basicsize wrong (issue 2482) under multiple inheritance when the first inherited
// object is a a plain Python type (i.e. not derived from an extension type). Fix it. // object is a plain Python type (i.e. not derived from an extension type). Fix it.
ssize_t instance_size = static_cast<ssize_t>(sizeof(instance)); ssize_t instance_size = static_cast<ssize_t>(sizeof(instance));
if (type->tp_basicsize < instance_size) { if (type->tp_basicsize < instance_size) {
type->tp_basicsize = instance_size; type->tp_basicsize = instance_size;

View File

@ -85,7 +85,7 @@ class Pybind11Extension(_Extension):
* ``stdlib=libc++`` on macOS * ``stdlib=libc++`` on macOS
* ``visibility=hidden`` and ``-g0`` on Unix * ``visibility=hidden`` and ``-g0`` on Unix
Finally, you can set ``cxx_std`` via constructor or afterwords to enable Finally, you can set ``cxx_std`` via constructor or afterwards to enable
flags for C++ std, and a few extra helper flags related to the C++ standard flags for C++ std, and a few extra helper flags related to the C++ standard
level. It is _highly_ recommended you either set this, or use the provided level. It is _highly_ recommended you either set this, or use the provided
``build_ext``, which will search for the highest supported extension for ``build_ext``, which will search for the highest supported extension for

View File

@ -521,7 +521,7 @@ def test_void_caster_2():
def test_const_ref_caster(): def test_const_ref_caster():
"""Verifies that const-ref is propagated through type_caster cast_op. """Verifies that const-ref is propagated through type_caster cast_op.
The returned ConstRefCasted type is a mimimal type that is constructed to The returned ConstRefCasted type is a minimal type that is constructed to
reference the casting mode used. reference the casting mode used.
""" """
x = False x = False

View File

@ -65,7 +65,7 @@ TEST_SUBMODULE(kwargs_and_defaults, m) {
#endif #endif
m.def("arg_refcount_h", [](py::handle h) { GC_IF_NEEDED; return h.ref_count(); }); m.def("arg_refcount_h", [](py::handle h) { GC_IF_NEEDED; return h.ref_count(); });
m.def("arg_refcount_h", [](py::handle h, py::handle, py::handle) { GC_IF_NEEDED; return h.ref_count(); }); m.def("arg_refcount_h", [](py::handle h, py::handle, py::handle) { GC_IF_NEEDED; return h.ref_count(); });
// TODO replace the following nolints as appropiate // TODO replace the following nolints as appropriate
// NOLINTNEXTLINE(performance-unnecessary-value-param) // NOLINTNEXTLINE(performance-unnecessary-value-param)
m.def("arg_refcount_o", [](py::object o) { GC_IF_NEEDED; return o.ref_count(); }); m.def("arg_refcount_o", [](py::object o) { GC_IF_NEEDED; return o.ref_count(); });
m.def("args_refcount", [](py::args a) { m.def("args_refcount", [](py::args a) {

View File

@ -39,7 +39,7 @@ TEST_SUBMODULE(numpy_vectorize, m) {
// test_type_selection // test_type_selection
// NumPy function which only accepts specific data types // NumPy function which only accepts specific data types
// Alot of these no lints could be replaced with const refs, and probably should at some point. // A lot of these no lints could be replaced with const refs, and probably should at some point.
// NOLINTNEXTLINE(performance-unnecessary-value-param) // NOLINTNEXTLINE(performance-unnecessary-value-param)
m.def("selective_func", [](py::array_t<int, py::array::c_style>) { return "Int branch taken."; }); m.def("selective_func", [](py::array_t<int, py::array::c_style>) { return "Int branch taken."; });
// NOLINTNEXTLINE(performance-unnecessary-value-param) // NOLINTNEXTLINE(performance-unnecessary-value-param)

View File

@ -2,7 +2,7 @@
# #
# On updating a dependency, to get a list of "default" leaks in e.g. NumPy, run # On updating a dependency, to get a list of "default" leaks in e.g. NumPy, run
# `PYTHONMALLOC=malloc valgrind --leak-check=full --show-leak-kinds=definite,indirect python3.9-dbg -c "import numpy"` # `PYTHONMALLOC=malloc valgrind --leak-check=full --show-leak-kinds=definite,indirect python3.9-dbg -c "import numpy"`
# To use theses suppression files, add e.g. `--suppressions=valgrind-numpy-scipy.supp` # To use these suppression files, add e.g. `--suppressions=valgrind-numpy-scipy.supp`
{ {
Leaks when importing NumPy Leaks when importing NumPy