1. 01 Jan, 2021 1 commit
    • Yannick Jadoul's avatar
      Fix various minor memory leaks in the tests (found by Valgrind in #2746) (#2758) · e57dd471
      Yannick Jadoul authored
      * Fix leak in the test_copy_move::test_move_fallback
      
      * Fix leaking PyMethodDef in test_class::test_implicit_conversion_life_support
      
      * Plumb leak in test_buffer, occuring when a mutable buffer is requested for a read-only object, and enable test_buffer.py
      
      * Fix weird return_value_policy::reference in test_stl_binders, and enable those tests
      
      * Cleanup nodelete holder objects in test_smart_ptr, and enable those tests
      e57dd471
  2. 31 Dec, 2020 1 commit
  3. 28 Dec, 2020 1 commit
  4. 24 Dec, 2020 1 commit
  5. 19 Dec, 2020 1 commit
  6. 16 Dec, 2020 2 commits
    • Yannick Jadoul's avatar
      fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro,... · 30eb39ed
      Yannick Jadoul authored
      fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro, after the argument has been moved-out (if necessary) (#2701)
      
      30eb39ed
    • Laramie Leavitt's avatar
      Adjusting `type_caster<std::reference_wrapper<T>>` to support const/non-const... · 5469c238
      Laramie Leavitt authored
      Adjusting `type_caster<std::reference_wrapper<T>>` to support const/non-const propagation in `cast_op`. (#2705)
      
      
      * Allow type_caster of std::reference_wrapper<T> to be the same as a native reference.
      
      Before, both std::reference_wrapper<T> and std::reference_wrapper<const T> would
      invoke cast_op<type>. This doesn't allow the type_caster<> specialization for T
      to distinguish reference_wrapper types from value types.
      
      After, the type_caster<> specialization invokes cast_op<type&>, which allows
      reference_wrapper to behave in the same way as a native reference type.
      
      * Add tests/examples for std::reference_wrapper<const T>
      
      * Add tests which use mutable/immutable variants
      
      This test is a chimera; it blends the pybind11 casters with a custom
      pytype implementation that supports immutable and mutable calls.
      
      In order to detect the immutable/mutable state, the cast_op needs
      to propagate it, even through e.g. std::reference<const T>
      
      Note: This is still a work in progress; some things are crashing,
      which likely means that I have a refcounting bug or something else
      missing.
      
      * Add/finish tests that distinguish const& from &
      
      Fixes the bugs in my custom python type implementation,
      demonstrate test that requires const& and reference_wrapper<const T>
      being treated differently from Non-const.
      
      * Add passing a const to non-const method.
      
      * Demonstrate non-const conversion of reference_wrapper in tests.
      
      Apply formatting presubmit check.
      
      * Fix build errors from presubmit checks.
      
      * Try and fix a few more CI errors
      
      * More CI fixes.
      
      * More CI fixups.
      
      * Try and get PyPy to work.
      
      * Additional minor fixups. Getting close to CI green.
      
      * More ci fixes?
      
      * fix clang-tidy warnings from presubmit
      
      * fix more clang-tidy warnings
      
      * minor comment and consistency cleanups
      
      * PyDECREF -> Py_DECREF
      
      * copy/move constructors
      
      * Resolve codereview comments
      
      * more review comment fixes
      
      * review comments: remove spurious &
      
      * Make the test fail even when the static_assert is commented out.
      
      This expands the test_freezable_type_caster a bit by:
      1/ adding accessors .is_immutable and .addr to compare identity
      from python.
      2/ Changing the default cast_op of the type_caster<> specialization
      to return a non-const value. In normal codepaths this is a reasonable
      default.
      3/ adding roundtrip variants to exercise the by reference, by pointer
      and by reference_wrapper in all call paths.  In conjunction with 2/, this
      demonstrates the failure case of the existing std::reference_wrpper conversion,
      which now loses const in a similar way that happens when using the default cast_op_type<>.
      
      * apply presubmit formatting
      
      * Revert inclusion of test_freezable_type_caster
      
      There's some concern that this test is a bit unwieldly because of the use
      of the raw <Python.h> functions. Removing for now.
      
      * Add a test that validates const references propagation.
      
      This test verifies that cast_op may be used to correctly detect
      const reference types when used with std::reference_wrapper.
      
      * mend
      
      * Review comments based changes.
      
      1. std::add_lvalue_reference<type> -> type&
      2. Simplify the test a little more; we're never returning the ConstRefCaster
      type so the class_ definition can be removed.
      
      * formatted files again.
      
      * Move const_ref_caster test to builtin_casters
      
      * Review comments: use cast_op and adjust some comments.
      
      * Simplify ConstRefCasted test
      
      I like this version better as it moves the assertion that matters
      back into python.
      5469c238
  7. 19 Nov, 2020 1 commit
  8. 10 Nov, 2020 1 commit
  9. 09 Nov, 2020 1 commit
  10. 05 Nov, 2020 1 commit
  11. 29 Oct, 2020 2 commits
  12. 27 Oct, 2020 1 commit
  13. 20 Oct, 2020 1 commit
  14. 19 Oct, 2020 1 commit
  15. 16 Oct, 2020 2 commits
    • Yannick Jadoul's avatar
      fix: test_factory_constructors.py failure triggered by test_register_duplicate_class (#2564) · 6364b732
      Yannick Jadoul authored
      * Demonstrate test_factory_constructors.py failure without functional changes from #2335
      
      * Revert "Demonstrate test_factory_constructors.py failure without functional changes from #2335"
      
      This reverts commit ca33a8021fc2a3617c3356b188796528f4594419.
      
      * Fix test crash where registered Python type gets garbage collected
      
      * Clean up some more internal structures when class objects go out of scope
      
      * Reduce length of std::erase_if-in-C++20 comment
      
      * Clean up code for cleaning up type internals
      
      * Move cleaning up of type info in internals to tp_dealloc on pybind11_metaclass
      6364b732
    • Henry Schreiner's avatar
      style: use Black everywhere (#2594) · c50f90ec
      Henry Schreiner authored
      * style: use Black everywhere
      
      * style: minor touchup from review
      c50f90ec
  16. 15 Oct, 2020 3 commits
  17. 14 Oct, 2020 1 commit
  18. 13 Oct, 2020 1 commit
  19. 12 Oct, 2020 1 commit
  20. 09 Oct, 2020 1 commit
    • Yannick Jadoul's avatar
      feat: deprecate public constructors of module_ class (#2552) · 0c5cc031
      Yannick Jadoul authored
      * Deprecated public constructors of module
      
      * Turn documentation comment of module_::add_object into valid doxygen documentation
      
      * Move definition of PYBIND11_DETAIL_MODULE_STATIC_DEF and PYBIND11_DETAIL_MODULE_CREATE macros up
      
      * Move detail::create_top_level_module to module_::create_extension_module, and unify Python 2 and 3 signature again
      
      * Throw error_already_set if module creation fails in module_::create_extension_module
      
      * Mention module_::create_extension_module in deprecation warning message of module_::module_
      0c5cc031
  21. 08 Oct, 2020 2 commits
    • Yannick Jadoul's avatar
      Check scope's __dict__ instead of using hasattr when registering classes and exceptions (#2335) · 71aea49b
      Yannick Jadoul authored
      * Check scope's __dict__ instead of using hasattr when registering classes and exceptions, to allow registering the same name in a derived class scope
      
      * Extend test_base_and_derived_nested_scope test
      
      * Add tests on error being thrown registering duplicate classes
      
      * Circumvent bug with combination of test_class.py::test_register_duplicate_class and test_factory_constructors.py::test_init_factory_alias
      71aea49b
    • Henry Schreiner's avatar
      test: hide segfault (#2559) · deba040b
      Henry Schreiner authored
      * tests: Don't run tests that often segfault
      
      * tests: drop all cross module gil tests
      
      * tests: try skipping all macOS Python 3.9 tests
      
      * tests: drop macOS Python 3.9
      deba040b
  22. 06 Oct, 2020 1 commit
    • Henry Schreiner's avatar
      feat: py::prepend tag (#1131) · 9a0c96dd
      Henry Schreiner authored
      * feat: add a priority overload with py::prepend
      
      * doc: fix wording as suggested by rwgk
      
      * feat: add get_pointer
      
      * refactor: is_prepended -> prepend (internal)
      
      * docs: suggestion from @wjakob
      
      * tests: add test covering get_pointer/set_pointer
      9a0c96dd
  23. 05 Oct, 2020 2 commits
    • Yannick Jadoul's avatar
      Fail on passing py::object with wrong Python type to py::object subclass using... · f537093a
      Yannick Jadoul authored
      Fail on passing py::object with wrong Python type to py::object subclass using PYBIND11_OBJECT macro (#2349)
      
      * Fail on passing py::object with wrong Python type to py::object subclass using PYBIND11_OBJECT macro
      
      * Split off test_non_converting_constructors from test_constructors
      
      * Fix test_as_type, as py::type constructor now throws an error itself if the argument is not a type
      
      * Replace tp_name access by pybind11::detail::get_fully_qualified_tp_name
      
      * Move forward-declaration of get_fully_qualified_tp_name to detail/common.h
      
      * Don't add the builtins module name in get_fully_qualified_tp_name for PyPy
      
      * Add PYBIND11_BUILTINS_MODULE macro, and use it in get_fully_qualified_tp_name
      f537093a
    • Yannick Jadoul's avatar
      chore: drop support for PyPy < 7.3.1 and clean up old PyPy workarounds (#2456) · 14112077
      Yannick Jadoul authored
      
      
      * Remove code inside 'PYPY_VERSION_NUM < 0x06000000' preprocessor if branch
      
      * fix: more cleanup
      
      * Remove more references to PyPy 5.7 and 5.9 in the docs
      
      * Update comment on PyUnicode_UTF* in PyPy
      Co-authored-by: default avatarHenry Schreiner <henryschreineriii@gmail.com>
      14112077
  24. 03 Oct, 2020 3 commits
    • Fritz Reese's avatar
      Fix buffer_info for ctypes buffers (pybind#2502) (#2503) · e8ad33bb
      Fritz Reese authored
      * tests: New test for ctypes buffers (pybind#2502)
      
      * fix: fix buffer_info segfault on views with no stride (pybind11#2502)
      
      * Explicit conversions in buffer_info to make clang happy (pybind#2502)
      
      * Another explicit cast in buffer_info constructor for clang (pybind#2502)
      
      * Simpler implementation of buffer_info constructor from Py_buffer.
      
      * Move test_ctypes_buffer into test_buffers
      
      * Comment on why view->strides may be NULL (and fix some whitespace)
      
      * Use c_strides() instead of zero when view->strides is NULL.
      
      c_strides and f_strides are moved from numpy.h (py::array)
      to buffer_info.h (py::detail) so they can be used from the
      buffer_info Py_buffer constructor.
      
      * Increase ctypes buffer test coverage in test_buffers.
      
      * Split ctypes tests and skip one which is broken in PyPy2.
      e8ad33bb
    • Henry Schreiner's avatar
      refactor: module -> module_ with typedef (#2544) · 6bcd220c
      Henry Schreiner authored
      * WIP: module -> module_ without typedef
      
      * refactor: allow py::module to work again
      6bcd220c
    • Henry Schreiner's avatar
      refactor: import check as a common function (#2526) · 3488494a
      Henry Schreiner authored
      * feat: import check as a common function
      
      * docs: add cmake to docs
      3488494a
  25. 02 Oct, 2020 6 commits
  26. 22 Sep, 2020 1 commit