1. 03 Aug, 2021 2 commits
  2. 30 Jul, 2021 3 commits
  3. 29 Jul, 2021 1 commit
    • Ralf W. Grosse-Kunstleve's avatar
      Removing MSVC C4100 from pragma block at the top of pybind11.h (#3150) · b72ca7d1
      Ralf W. Grosse-Kunstleve authored
      * Removing pragma for 4100 (to see what is still broken with the latest code).
      
      * Adding --keep-going
      
      * Revert "Adding --keep-going"
      
      This reverts commit 1c844c6ffd07a6111b644811e7e3b0a50b9d44bb.
      
      * Introducing PYBIND11_WORKAROUND_INCORRECT_MSVC_C4100.
      
      * _MSC_VER <= 1916
      
      * Replacing simple variadic function with variadic template (attempt to resolve MSVC 2017 failures).
      
      * Preserving existing comment (moved from pybind11.h to detail/common.h).
      
      * Adding blank lines for readability.
      b72ca7d1
  4. 27 Jul, 2021 1 commit
    • Ralf W. Grosse-Kunstleve's avatar
      Removing __INTEL_COMPILER section from pragma block at the top of pybind11.h (#3135) · 2164c2e0
      Ralf W. Grosse-Kunstleve authored
      * Fixing `pragma warning pop` for `__INTEL_COMPILER`.
      
      * Adding push/pop to 3 tests. Removing #878 from top of pybind11.h (it was/is only needed for 1 test).
      
      * Trying again after CI failure, moving the push to the top of 2 tests.
      
      * Trying more after CI failure, adding push/pop to pybind11_tests.h, constructor_stats.h.
      
      * Moving ICC #2196 suppression to CMakeLists.txt
      
      * Fixing condition for `pragma GCC diagnostic push` in pybind11.h
      
      * Moving `pragma warning disable 2196` to common.h
      
      * Revising #ifdef to be more conservative.
      
      * Undoing insertion of notes that will hopefully soon be completely obsolete anyway.
      2164c2e0
  5. 26 Jul, 2021 1 commit
  6. 17 Jul, 2021 1 commit
  7. 16 Jul, 2021 1 commit
  8. 15 Jul, 2021 1 commit
  9. 14 Jul, 2021 1 commit
    • Ralf W. Grosse-Kunstleve's avatar
      * Removing stray semicolons (discovered by running clang-format v12 followed... · aca6c3ba
      Ralf W. Grosse-Kunstleve authored
      * Removing stray semicolons (discovered by running clang-format v12 followed by tools/check-style.sh). (#3087)
      
      * Manually moving `// NOLINT` comments so that clang-format does not move them to the wrong places.
      
      * Manually reformatting comments related to `static_assert`s so that clang-format does not need two passes.
      
      * Empty lines between #includes, to prevent clang-format from shuffling the order and thereby confusing MSVC 2015.
      
      * git diff -U0 --no-color HEAD^ | python3 $HOME/clone/llvm-project/clang/tools/clang-format/clang-format-diff.py -p1 -style=file -i
      aca6c3ba
  10. 21 Jun, 2021 1 commit
  11. 27 May, 2021 1 commit
  12. 30 Jan, 2021 1 commit
    • Edward Lockhart's avatar
      When determining if a shared_ptr already exists, use a test on the we… (#2819) · 23c3edcf
      Edward Lockhart authored
      
      
      * When determining if a shared_ptr already exists, use a test on the weak_ptr instead of a try/catch block.
      
      * When determining if a shared_ptr already exists, use a test on the weak_ptr instead of a try/catch block.
      
      * weak_from_this is only available in C++17 and later
      
      * Switch to use feature flag instead of C++ version flag.
      
      * Add Microsoft-specific check.
      
      * Avoid undefined preprocessor macro warning treated as error.
      
      * Simplify shared_from_this in init_holder
      
      * Include <version> in detail/common.h (~stolen~ borrowed from @bstaletic's #2816)
      
      * Move class_::get_shared_from_this to detail::try_get_shared_from_this
      
      * Simplify try_get_shared_from_this by using weak_ptr::lock()
      Co-authored-by: default avatarYannick Jadoul <yannick.jadoul@belgacom.net>
      23c3edcf
  13. 29 Jan, 2021 1 commit
  14. 27 Jan, 2021 3 commits
  15. 18 Jan, 2021 1 commit
    • Michael Kuron's avatar
      fix: Intel ICC C++17 compatibility (#2729) · 48534089
      Michael Kuron authored
      
      
      * CI: Intel icc/icpc via oneAPI
      
      Add testing for Intel icc/icpc via the oneAPI images.
      Intel oneAPI is in a late beta stage, currently shipping
      oneAPI beta09 with ICC 20.2.
      
      CI: Skip Interpreter Tests for Intel
      
      Cannot find how to add this, neiter the package `libc6-dev` nor
      `intel-oneapi-mkl-devel` help when installed to solve this:
      ```
      -- Looking for C++ include pthread.h
      -- Looking for C++ include pthread.h - not found
      CMake Error at /__t/cmake/3.18.4/x64/cmake-3.18.4-Linux-x86_64/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
        Could NOT find Threads (missing: Threads_FOUND)
      Call Stack (most recent call first):
        /__t/cmake/3.18.4/x64/cmake-3.18.4-Linux-x86_64/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:458 (_FPHSA_FAILURE_MESSAGE)
        /__t/cmake/3.18.4/x64/cmake-3.18.4-Linux-x86_64/share/cmake-3.18/Modules/FindThreads.cmake:234 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
        tests/test_embed/CMakeLists.txt:17 (find_package)
      ```
      
      CI: libc6-dev from GCC for ICC
      
      CI: Run bare metal for oneAPI
      
      CI: Ubuntu 18.04 for oneAPI
      
      CI: Intel +Catch -Eigen
      
      CI: CMake from Apt (ICC tests)
      
      CI: Replace Intel Py with GCC Py
      
      CI: Intel w/o GCC's Eigen
      
      CI: ICC with verbose make
      
      [Debug] Find core dump
      
      tests: use arg{} instead of arg() for Intel
      
      tests: adding a few more missing {}
      
      fix: sync with @tobiasleibner's branch
      
      fix: try ubuntu 20-04
      
      fix: drop exit 1
      
      docs: Apply suggestions from code review
      Co-authored-by: default avatarTobias Leibner <tobias.leibner@googlemail.com>
      
      Workaround for ICC enable_if issues
      
      Another workaround for ICC's enable_if issues
      
      fix error in previous commit
      
      Disable one test for the Intel compiler in C++17 mode
      
      Add back one instance of py::arg().noconvert()
      
      Add NOLINT to fix clang-tidy check
      
      Work around for ICC internal error in PYBIND11_EXPAND_SIDE_EFFECTS in C++17 mode
      
      CI: Intel ICC with C++17
      
      docs: pybind11/numpy.h does not require numpy at build time. (#2720)
      
      This is nice enough to be mentioned explicitly in the docs.
      
      docs: Update warning about Python 3.9.0 UB, now that 3.9.1 has been released (#2719)
      
      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.
      
      ci: drop pypy2 linux, PGI 20.7, add Python 10 dev (#2724)
      
      * ci: drop pypy2 linux, add Python 10 dev
      
      * ci: fix mistake
      
      * ci: commented-out PGI 20.11, drop 20.7
      
      fix: regression with installed pybind11 overriding local one (#2716)
      
      * fix: regression with installed pybind11 overriding discovered one
      
      Closes #2709
      
      * docs: wording incorrect
      
      style: remove redundant instance->owned = true (#2723)
      
      which was just before set to True in instance->allocate_layout()
      
      fix: also throw in the move-constructor added by the PYBIND11_OBJECT macro, after the argument has been moved-out (if necessary) (#2701)
      
      Make args_are_all_* ICC workarounds unconditional
      
      Disable test_aligned on Intel ICC
      
      Fix test_aligned on Intel ICC
      
      Skip test_python_alreadyset_in_destructor on Intel ICC
      
      Fix test_aligned again
      
      ICC CI: Downgrade pytest
      
      pytest 6 does not capture the `discard_as_unraisable` stderr and
      just writes a warning with its content instead.
      
      * refactor: simpler Intel workaround, suggested by @laramiel
      
      * fix: try version with impl to see if it is easier to compile
      
      * docs: update README for ICC
      Co-authored-by: default avatarAxel Huebl <axel.huebl@plasma.ninja>
      Co-authored-by: default avatarHenry Schreiner <henryschreineriii@gmail.com>
      48534089
  16. 23 Nov, 2020 1 commit
  17. 12 Nov, 2020 1 commit
  18. 11 Nov, 2020 1 commit
  19. 09 Nov, 2020 1 commit
  20. 29 Oct, 2020 1 commit
  21. 21 Oct, 2020 2 commits
  22. 16 Oct, 2020 1 commit
  23. 14 Oct, 2020 1 commit
  24. 12 Oct, 2020 1 commit
  25. 09 Oct, 2020 2 commits
    • Henry Schreiner's avatar
      chore: bump to 2.6.0rc1 · f385eccd
      Henry Schreiner authored
      f385eccd
    • 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
  26. 05 Oct, 2020 1 commit
    • 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
  27. 03 Oct, 2020 1 commit
  28. 02 Oct, 2020 2 commits
  29. 30 Sep, 2020 2 commits
  30. 27 Sep, 2020 1 commit
    • Ralf W. Grosse-Kunstleve's avatar
      static allocation for PyModuleDef, to avoid leak check errors. (#2413) · d159a563
      Ralf W. Grosse-Kunstleve authored
      * Initializing PyModuleDef object with PyModuleDef_HEAD_INIT.
      
      Python 3.8 documentation: m_base - Always initialize this member to PyModuleDef_HEAD_INIT.
      
      Long-standing (since first github commit in 2015), inconsequential bug.
      
      Also removing inconsequential Py_INCREF(def): PyModule_Create() resets the reference count to 1.
      
      * git rebase master
      
      * moving static PyModuleDef declaration to global scope, as requested by @wjakob
      
      * renaming the two new macros, to start with PYBIND11_DETAIL_MODULE
      d159a563
  31. 16 Sep, 2020 1 commit
    • Henry Schreiner's avatar
      feat: setup.py redesign and helpers (#2433) · fd61f503
      Henry Schreiner authored
      * feat: setup.py redesign and helpers
      
      * refactor: simpler design with two outputs
      
      * refactor: helper file update and Windows support
      
      * fix: review points from @YannickJadoul
      
      * refactor: fixes to naming and more docs
      
      * feat: more customization points
      
      * feat: add entry point pybind11-config
      
      * refactor: Try Extension-focused method
      
      * refactor: rename alt/inplace to global
      
      * fix: allow usage with git modules, better docs
      
      * feat: global as an extra (@YannickJadoul's suggestion)
      
      * feat: single version location
      
      * fix: remove the requirement that setuptools must be imported first
      
      * fix: some review points from @wjacob
      
      * fix: use .in, add procedure to docs
      
      * refactor: avoid monkeypatch copy
      
      * docs: minor typos corrected
      
      * fix: minor points from @YannickJadoul
      
      * fix: typo on Windows C++ mode
      
      * fix: MSVC 15 update 3+ have c++14 flag
      
      See <https://docs.microsoft.com/en-us/cpp/build/reference/std-specify-language-standard-version?view=vs-2019>
      
      * docs: discuss making SDists by hand
      
      * ci: use pep517.build instead of manual setup.py
      
      * refactor: more comments from @YannickJadoul
      
      * docs: updates from @ktbarrett
      
      * fix: change to newly recommended tool instead of pep517.build
      
      This was intended as a proof of concept; build seems to be the correct replacement.
      
      See https://github.com/pypa/pep517/pull/83
      
      * docs: updates from @wjakob
      
      * refactor: dual version locations
      
      * docs: typo spotted by @wjakob
      fd61f503