1. 08 Nov, 2023 1 commit
  2. 05 Nov, 2023 1 commit
  3. 04 Nov, 2023 1 commit
  4. 01 Nov, 2023 1 commit
  5. 27 Oct, 2023 3 commits
  6. 24 Oct, 2023 1 commit
  7. 23 Oct, 2023 1 commit
  8. 21 Oct, 2023 1 commit
    • Workaround NVCC parse failure in `cast_op` (#4893) · 3414c56b
      * Workaround NVCC parse failure in `cast_op`
      
      There is a bug in some CUDA versions (observed in CUDA 12.1 and 11.7 w/ GCC 12.2),
      that makes `cast_op` fail to compile:
        `cast.h:45:120: error: expected template-name before ‘<’ token`
      
      Defining the nested type as an alias and using it allows this to work
      without any change in semantics.
      
      Fixes #4606
      
      * style: pre-commit fixes
      
      * Add comments to result_t referencing PR
      
      ---------
      
      Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
      Alexander Grund committed
  9. 20 Oct, 2023 1 commit
  10. 17 Oct, 2023 1 commit
  11. 16 Oct, 2023 1 commit
    • Update pytest to version 7.2.0 (which removes their dependency on py) (#4880) · 0cbd92ba
      * Update pytest (which removes their dependency on py)
      
      The py library through 1.11.0 for Python allows remote attackers to conduct a ReDoS (Regular expression Denial of Service) attack via a Subversion repository with crafted info data, because the InfoSvnCommand argument is mishandled.
      
      The particular codepath in question is the regular expression at py._path.svnurl.InfoSvnCommand.lspattern and is only relevant when dealing with subversion (svn) projects. Notably the codepath is not used in the popular pytest project. The developers of the pytest package have released version 7.2.0 which removes their dependency on py. Users of pytest seeing alerts relating to this advisory may update to version 7.2.0 of pytest to resolve this issue. See https://github.com/pytest-dev/py/issues/287#issuecomment-1290407715 for additional context.
      
      * Added conditions so that we keep using 7.0.0 on python 3.6
      Pablo Speciale committed
  12. 12 Oct, 2023 1 commit
    • Add pybind11/gil_safe_call_once.h (to fix deadlocks in pybind11/numpy.h) (#4877) · 0e2c3e5d
      * LazyInitializeAtLeastOnceDestroyNever v1
      
      * Go back to using `union` as originally suggested by jbms@. The trick (also suggested by jbms@) is to add empty ctor + dtor.
      
      * Revert "Go back to using `union` as originally suggested by jbms@. The trick (also suggested by jbms@) is to add empty ctor + dtor."
      
      This reverts commit e7b8c4f0fcd72191e88d1c17abf5da08fe3a9c6f.
      
      * Remove `#include <stdalign.h>`
      
      * `include\pybind11/numpy.h(24,10): fatal error C1083: Cannot open include file: 'stdalign.h': No such file or directory`
      
      * @tkoeppe wrote: this is a C interop header (and we're not writing C)
      
      * Suppress gcc 4.8.5 (CentOS 7) warning.
      
      ```
      include/pybind11/eigen/../numpy.h:63:53: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
               return *reinterpret_cast<T *>(value_storage_);
                                                           ^
      ```
      
      * Replace comments:
      
      Document PRECONDITION.
      
      Adopt comment suggested by @tkoeppe: https://github.com/pybind/pybind11/pull/4877#discussion_r1350356093
      
      * Adopt suggestion by @tkoeppe:
      
      * https://github.com/pybind/pybind11/pull/4877#issuecomment-1752969127
      
      * https://godbolt.org/z/Wa79nKz6e
      
      * Add `PYBIND11_CONSTINIT`, but it does not work for the current use cases:
      
      ```
      g++ -o pybind11/tests/test_numpy_array.os -c -std=c++20 -fPIC -fvisibility=hidden -O0 -g -Wall -Wextra -Wconversion -Wcast-qual -Wdeprecated -Wundef -Wnon-virtual-dtor -Wunused-result -Werror -isystem /usr/include/python3.11 -isystem /usr/include/eigen3 -DPYBIND11_STRICT_ASSERTS_CLASS_HOLDER_VS_TYPE_CASTER_MIX -DPYBIND11_ENABLE_TYPE_CASTER_ODR_GUARD_IF_AVAILABLE -DPYBIND11_TEST_BOOST -Ipybind11/include -I/usr/local/google/home/rwgk/forked/pybind11/include -I/usr/local/google/home/rwgk/clone/pybind11/include /usr/local/google/home/rwgk/forked/pybind11/tests/test_numpy_array.cpp
      ```
      
      ```
      In file included from /usr/local/google/home/rwgk/forked/pybind11/tests/test_numpy_array.cpp:10:
      /usr/local/google/home/rwgk/forked/pybind11/include/pybind11/numpy.h: In static member function ‘static pybind11::detail::npy_api& pybind11::detail::npy_api::get()’:
      /usr/local/google/home/rwgk/forked/pybind11/include/pybind11/numpy.h:258:82: error: ‘constinit’ variable ‘api_init’ does not have a constant initializer
        258 |         PYBIND11_CONSTINIT static LazyInitializeAtLeastOnceDestroyNever<npy_api> api_init;
            |                                                                                  ^~~~~~~~
      ```
      
      ```
      In file included from /usr/local/google/home/rwgk/forked/pybind11/tests/test_numpy_array.cpp:10:
      /usr/local/google/home/rwgk/forked/pybind11/include/pybind11/numpy.h: In static member function ‘static pybind11::object& pybind11::dtype::_dtype_from_pep3118()’:
      /usr/local/google/home/rwgk/forked/pybind11/include/pybind11/numpy.h:697:13: error: ‘constinit’ variable ‘imported_obj’ does not have a constant initializer
        697 |             imported_obj;
            |             ^~~~~~~~~~~~
      ```
      
      * Revert "Add `PYBIND11_CONSTINIT`, but it does not work for the current use cases:"
      
      This reverts commit f07b28bda9f91fb723aa898a21c81b6dd6857072.
      
      * Reapply "Add `PYBIND11_CONSTINIT`, but it does not work for the current use cases:"
      
      This reverts commit 36be645758aa82b576d24003808386bec6e55bf9.
      
      * Add Default Member Initializer on `value_storage_` as suggested by @tkoeppe:
      
      https://github.com/pybind/pybind11/pull/4877#issuecomment-1753201342
      
      This fixes the errors reported under commit f07b28bda9f91fb723aa898a21c81b6dd6857072.
      
      * Fix copy-paste-missed-a-change mishap in commit 88cec1152ab5576db19bab95c484672f06f5989a.
      
      * Semi-paranoid placement new (based on https://github.com/pybind/pybind11/pull/4877#discussion_r1350573114).
      
      * Move PYBIND11_CONSTINIT to detail/common.h
      
      * Move code to the right places, rename new class and some variables.
      
      * Fix oversight: update tests/extra_python_package/test_files.py
      
      * Get the name right first.
      
      * Use `std::call_once`, `std::atomic`, following a pattern developed by @tkoeppe
      
      * Make the API more self-documenting (and possibly more easily reusable).
      
      * google-clang-tidy IWYU fixes
      
      * Rewrite comment as suggested by @tkoeppe
      
      * Update test_exceptions.cpp and exceptions.rst
      
      * Fix oversight in previous commit: add `PYBIND11_CONSTINIT`
      
      * Make `get_stored()` non-const for simplicity.
      
      As suggested by @tkoeppe: not seeing any reasonable use in which `get_stored` has to be const.
      
      * Add comment regarding `KeyboardInterrupt` behavior, based heavily on information provided by @jbms.
      
      * Add `assert(PyGILState_Check())` in `gil_scoped_release` ctor (simple & non-simple implementation) as suggested by @EthanSteinberg.
      
      * Fix oversight in previous commit (missing include cassert).
      
      * Remove use of std::atomic, leaving comments with rationale, why it is not needed.
      
      * Rewrite comment re `std:optional` based on deeper reflection (aka 2nd thoughts).
      
      * Additional comment with the conclusion of a discussion under PR #4877.
      
      * https://github.com/pybind/pybind11/pull/4877#issuecomment-1757363179
      
      * Small comment changes suggested by @tkoeppe.
      Ralf W. Grosse-Kunstleve committed
  13. 06 Oct, 2023 1 commit
  14. 03 Oct, 2023 2 commits
  15. 27 Sep, 2023 2 commits
  16. 25 Sep, 2023 1 commit
  17. 15 Sep, 2023 2 commits
  18. 14 Sep, 2023 1 commit
  19. 12 Sep, 2023 3 commits
  20. 07 Sep, 2023 1 commit
  21. 06 Sep, 2023 2 commits
  22. 01 Sep, 2023 1 commit
  23. 31 Aug, 2023 1 commit
  24. 30 Aug, 2023 2 commits
  25. 23 Aug, 2023 1 commit
  26. 15 Aug, 2023 4 commits
    • Remove newlines from docstring signature (#4735) · b9359cea
      * Remove newlines from docstring signature
      
      * Jean/dev (#1)
      
      Replace newlines in arg values with spaces
      
      * style: pre-commit fixes
      
      * Don't use std::find_if for C++ 11 compatibility
      
      * Avoid implicit char to bool conversion
      
      * Test default arguments for line breaks
      
      * style: pre-commit fixes
      
      * Separate Eigen tests
      
      * style: pre-commit fixes
      
      * Fix merge
      
      * Try importing numpy
      
      * Avoid unreferenced variable in catch block
      
      * style: pre-commit fixes
      
      * Update squash function
      
      * Reduce try block
      
      * Additional test cases
      
      * style: pre-commit fixes
      
      * Put statement inside braces
      
      * Move string into function body
      
      * Rename repr for better readability. Make constr explicit.
      
      * Add multiline string default argument test case
      
      * style: pre-commit fixes
      
      * Add std namespace, do not modify string repr
      
      * Test for all space chars, test str repr not modified
      
      ---------
      
      Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
      Jean Elsner committed
    • Fix grammar in functions.rst (#4791) · f47ff328
      The previous sentence had an extra "a" before "several", which isn't right.
      Kenji committed
    • Migrate to readthedocs configuration file v2¶ (#4789) · add281a2
      * Copy of recommded readthedocs configuration file v2
      
      * [ci skip] It is now requirements (not requirements_file)
      Ralf W. Grosse-Kunstleve committed
  27. 10 Aug, 2023 1 commit
  28. 08 Aug, 2023 1 commit