1. Dec 02, 2022
  2. Dec 01, 2022
  3. Nov 28, 2022
  4. Nov 26, 2022
  5. Nov 23, 2022
  6. Nov 13, 2022
  7. Nov 12, 2022
  8. Nov 11, 2022
  9. Nov 03, 2022
    • Ethan Steinberg's avatar
      Fix functional.h bug + introduce test to verify that it is fixed (#4254) · ee2b5226
      Ethan Steinberg authored
      
      
      * Illustrate bug in functional.h
      
      * style: pre-commit fixes
      
      * Make functional casting more robust / add workaround
      
      * Make function_record* casting even more robust
      
      * See if this fixes PyPy issue
      
      * It still fails on PyPy sadly
      
      * Do not make new CTOR just yet
      
      * Fix test
      
      * Add name to ensure correctness
      
      * style: pre-commit fixes
      
      * Clean up tests + remove ifdef guards
      
      * Add comments
      
      * Improve comments, error handling, and safety
      
      * Fix compile error
      
      * Fix magic logic
      
      * Extract helper function
      
      * Fix func signature
      
      * move to local internals
      
      * style: pre-commit fixes
      
      * Switch to simpler design
      
      * style: pre-commit fixes
      
      * Move to function_record
      
      * style: pre-commit fixes
      
      * Switch to internals, update tests and docs
      
      * Fix lint
      
      * Oops, forgot to resolve last comment
      
      * Fix typo
      
      * Update in response to comments
      
      * Implement suggestion to improve test
      
      * Update comment
      
      * Simple fixes
      
      Co-authored-by: default avatarpre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
      Co-authored-by: default avatarAaron Gokaslan <aaronGokaslan@gmail.com>
      ee2b5226
  10. Nov 02, 2022
  11. Nov 01, 2022
  12. Oct 31, 2022
  13. Oct 30, 2022
    • Chekov2k's avatar
      Add `PYBIND11_SIMPLE_GIL_MANAGEMENT` option (cmake, C++ define) (#4216) · b07d08f6
      Chekov2k authored
      * Add option to force the use of the PYPY GIL scoped acquire/release logic to support nested gil access, see https://github.com/pybind/pybind11/issues/1276 and https://github.com/pytorch/pytorch/issues/83101
      
      * Apply suggestions from code review
      
      * Update CMakeLists.txt
      
      * docs: update upgrade guide
      
      * Update docs/upgrade.rst
      
      * All bells & whistles.
      
      * Add Reminder to common.h, so that we will not forget to purge `!WITH_THREAD` branches when dropping Python 3.6
      
      * New sentence instead of semicolon.
      
      * Temporarily pull in snapshot of PR #4246
      
      * Add `test_release_acquire`
      
      * Add more unit tests for nested gil locking
      
      * Add test_report_builtins_internals_keys
      
      * Very minor enhancement: sort list only after filtering.
      
      * Revert change in docs/upgrade.rst
      
      * Add test_multi_acquire_release_cross_module, while also forcing unique PYBIND11_INTERNALS_VERSION for cross_module_gil_utils.cpp
      
      * Hopefully fix appar...
      b07d08f6
  14. Oct 29, 2022
  15. Oct 26, 2022
  16. Oct 24, 2022
  17. Oct 23, 2022
  18. Oct 22, 2022
  19. Oct 20, 2022
  20. Oct 19, 2022
    • Lalaland's avatar
      First draft of Eigen::Tensor support (#4201) · fab1eebe
      Lalaland authored
      * First draft of Eigen::Tensor support
      
      * [pre-commit.ci] auto fixes from pre-commit.com hooks
      
      for more information, see https://pre-commit.ci
      
      * Fix build errors
      
      * Weird allocator stuff?
      
      * [pre-commit.ci] auto fixes from pre-commit.com hooks
      
      for more information, see https://pre-commit.ci
      
      * Remove unused + additional allocator junk
      
      * Disable warning
      
      * Use constexpr
      
      * [pre-commit.ci] auto fixes from pre-commit.com hooks
      
      for more information, see https://pre-commit.ci
      
      * clang tidy fixes
      
      * [pre-commit.ci] auto fixes from pre-commit.com hooks
      
      for more information, see https://pre-commit.ci
      
      * Resolve comments
      
      * [pre-commit.ci] auto fixes from pre-commit.com hooks
      
      for more information, see https://pre-commit.ci
      
      * Remove auto constexpr function
      
      * [pre-commit.ci] auto fixes from pre-commit.com hooks
      
      for more information, see https://pre-commit.ci
      
      * Try again for older C++
      
      * Oops forgot constexpr
      
      * Move...
      fab1eebe
  21. Oct 18, 2022
  22. Oct 13, 2022
    • Ralf W. Grosse-Kunstleve's avatar
      Minor `py::capsule` cleanup. No functional change. (#4238) · 964c4997
      Ralf W. Grosse-Kunstleve authored
      Use `PyCapsule_Destructor` (part of the stable Python ABI) instead of spelling out the C `typedef`.
      
      The deprecation message is misleading. Replace with a message pointing to another existing ctor.
      
      Background: According to @wjakob the original motivation for deprecating the ctor (in PR #752) was to hide Python C API details, but PR #902 brought those back with a new ctor, it cannot be avoided. Having a `PyCapsule_Destructor` or a `void (*destructor)(void *)` are two separate and valid use cases.
      964c4997
    • Aaron Gokaslan's avatar
      8781daf6
  23. Oct 12, 2022
  24. Oct 11, 2022
  25. Oct 10, 2022
    • Ralf W. Grosse-Kunstleve's avatar
      Reproducer and fix for issue encountered in smart_holder update. (#4228) · da104a9e
      Ralf W. Grosse-Kunstleve authored
      * Reproducer for issue encountered in smart_holder update.
      
      * clang-tidy compatibility (untested).
      
      * Add `enable_if_t` to workaround.
      
      * Bug fix: Move `PYBIND11_USING_WORKAROUND_FOR_CUDA_11_4_THROUGH_8` determination to detail/common.h
      
      So that it actually is defined in pybind11.h
      
      * Try using the workaround (which is nicer than the original code) universally.
      
      * Reduce reproducer for CUDA 11.7 issue encountered in smart_holder update.
      
      This commit tested in isolation on top of current master + first version of reproducer (62311eb431849d135a5db84f6c75ec390f2ede7c).
      
      Succeeds with Debian Clang 14.0.6 C++17 (and probably all other compilers).
      
      Fails for CUDA 11.7:
      
      ```
      cd /build/tests && /usr/local/cuda/bin/nvcc -forward-unknown-to-host-compiler -Dpybind11_tests_EXPORTS -I/mounted_pybind11/include -isystem=/usr/include/python3.10 -g --generate-code=arch=compute_52,code=[compute_52,sm_52] -Xcompiler=-fPIC -Xcompiler=-fvisibility=hidden -Werror all-warnings -std=c++17 -MD -MT tests/CMakeFiles/pybind11_tests.dir/test_class.cpp.o -MF CMakeFiles/pybind11_tests.dir/test_class.cpp.o.d -x cu -c /mounted_pybind11/tests/test_class.cpp -o CMakeFiles/pybind11_tests.dir/test_class.cpp.o
      /mounted_pybind11/tests/test_class.cpp(53): error: more than one instance of overloaded function "pybind11::class_<type_, options...>::def [with type_=test_class::pr4220_tripped_over_this::Empty0, options=<>]" matches the argument list:
                  function template "pybind11::class_<test_class::pr4220_tripped_over_this::Empty0> &pybind11::class_<type_, options...>::def(const char *, Func &&, const Extra &...) [with type_=test_class::pr4220_tripped_over_this::Empty0, options=<>]"
      /mounted_pybind11/include/pybind11/pybind11.h(1557): here
                  function template "pybind11::class_<test_class::pr4220_tripped_over_this::Empty0> &pybind11::class_<type_, options...>::def(const T &, const Extra &...) [with type_=test_class::pr4220_tripped_over_this::Empty0, options=<>]"
      /mounted_pybind11/include/pybind11/pybind11.h(1586): here
                  argument types are: (const char [8], <unknown-type>)
                  object type is: pybind11::class_<test_class::pr4220_tripped_over_this::Empty0>
      
      1 error detected in the compilation of "/mounted_pybind11/tests/test_class.cpp".
      ```
      da104a9e