1. 14 Feb, 2022 1 commit
    • Ralf W. Grosse-Kunstleve's avatar
      Dropping MSVC 2015 (#3722) · a97e9d8c
      Ralf W. Grosse-Kunstleve authored
      * Changing `_MSC_VER` guard to `< 1910` (dropping MSVC 2015).
      
      * Removing MSVC 2015 from ci.yml, and .appveyor.yml entirely.
      
      * Bringing back .appveyor.yml from master.
      
      * appveyor Visual Studio 2017
      
      * 1st manual pass, builds & tests with unix_clang, before pre-commit.
      
      * After clang-format (via pre-commit).
      
      * Manual pass looking for "2015", builds & tests with unix_clang, before pre-commit.
      
      * Backtracking for include/pybind11 changes in previous commit.
      
      git checkout d07865846c7d31dd61111e6df801864327b65070 include/pybind11/attr.h include/pybind11/detail/common.h include/pybind11/functional.h
      
      --------------------
      
      CI #4160 errors observed:
      
      https://github.com/pybind/pybind11/pull/3722/commits/2a26873727214c5f1e159cba98f5c625b908381a
      https://github.com/pybind/pybind11/runs/5168332130?check_suite_focus=true
      
      $ grep ' error C' *.txt | sed 's/2022-02-12[^ ]*//' | sed 's/^[0-9][0-9]*//' | sed 's/^.*\.txt: //' | sort | uniqD:\a\pybind11\pybind11\include\pybind11\cast.h(1364,1): error C2752: 'pybind11::detail::type_caster<Eigen::Ref<Eigen::Vector3f,0,pybind11::EigenDStride>,void>': more than one partial specialization matches the template argument list [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
      
      d:\a\pybind11\pybind11\include\pybind11\detail/common.h(1023): error C2737: 'pybind11::overload_cast': 'constexpr' object must be initialized [D:\a\pybind11\pybind11\build\tests\cross_module_gil_utils.vcxproj]
      d:\a\pybind11\pybind11\include\pybind11\detail/common.h(1023): error C2737: 'pybind11::overload_cast': 'constexpr' object must be initialized [D:\a\pybind11\pybind11\build\tests\pybind11_cross_module_tests.vcxproj]
      d:\a\pybind11\pybind11\include\pybind11\detail/common.h(1023): error C2737: 'pybind11::overload_cast': 'constexpr' object must be initialized [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
      d:\a\pybind11\pybind11\include\pybind11\detail/common.h(1023): error C2737: 'pybind11::overload_cast': 'constexpr' object must be initialized [D:\a\pybind11\pybind11\build\tests\test_embed\external_module.vcxproj]
      D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
      D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      
      $ grep ': error C2737' *.txt | sed 's/^.*MSVC//' | sed 's/___.*//' | sort | uniq
      
      _2017
      
      $ grep ': error C2752' *.txt
      
      3______3.8_____MSVC_2019_____x86_-DCMAKE_CXX_STANDARD=17.txt:2022-02-12T16:12:45.9921122Z D:\a\pybind11\pybind11\include\pybind11\cast.h(1364,1): error C2752: 'pybind11::detail::type_caster<Eigen::Ref<Eigen::Vector3f,0,pybind11::EigenDStride>,void>': more than one partial specialization matches the template argument list [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
      
      $ grep ': fatal error C1001:' *.txt
      
      10______pypy-3.8-v7.3.7_____windows-2022_____x64.txt:2022-02-12T16:12:56.3163683Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      1______3.6_____MSVC_2019_____x86.txt:2022-02-12T16:12:47.6774625Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
      16______3.6_____windows-latest_____x64_-DPYBIND11_FINDPYTHON=ON.txt:2022-02-12T16:12:27.0556151Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      17______3.9_____windows-2019_____x64.txt:2022-02-12T16:12:30.3822566Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      2______3.7_____MSVC_2019_____x86.txt:2022-02-12T16:12:38.7018911Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\build\tests\pybind11_tests.vcxproj]
      6______3.6_____windows-2022_____x64.txt:2022-02-12T16:12:00.4513642Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      7______3.9_____windows-2022_____x64.txt:2022-02-12T16:11:43.6306160Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      8______3.10_____windows-2022_____x64.txt:2022-02-12T16:11:49.9589644Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      9______pypy-3.7-v7.3.7_____windows-2022_____x64.txt:2022-02-12T16:11:53.7912112Z D:\a\pybind11\pybind11\include\pybind11\detail/common.h(624): fatal error C1001: Internal compiler error. [D:\a\pybind11\pybind11\tests\pybind11_tests.vcxproj]
      
      * common.h: is_template_base_of
      
      * Re-applying 4 changes from 2a26873727214c5f1e159cba98f5c625b908381a that work universally.
      
      * `overload_cast = {};` only for MSVC 2017 and Clang 5
      
      * Refining condition for using is_template_base_of workaround.
      
      * Undoing MSVC 2015 workaround in test_constants_and_functions.cpp
      
      * CentOS7: silence_unused_warnings
      
      * Tweaks in response to reviews.
      
      * Adding windows-2022 C++20
      
      * Trying another way of adding windows-2022 C++20
      a97e9d8c
  2. 12 Feb, 2022 1 commit
  3. 11 Feb, 2022 1 commit
    • Ralf W. Grosse-Kunstleve's avatar
      Python 2 removal part 1: tests (C++ code is intentionally ~untouched) (#3688) · 6493f496
      Ralf W. Grosse-Kunstleve authored
      
      
      * `#error BYE_BYE_GOLDEN_SNAKE`
      
      * Removing everything related to 2.7 from ci.yml
      
      * Commenting-out Centos7
      
      * Removing `PYTHON: 27` from .appveyor.yml
      
      * "PY2" removal, mainly from tests. C++ code is not touched.
      
      * Systematic removal of `u` prefix from `u"..."` and `u'...'` literals. Collateral cleanup of a couple minor other things.
      
      * Cleaning up around case-insensitive hits for `[^a-z]py.*2` in tests/.
      
      * Removing obsolete Python 2 mention in compiling.rst
      
      * Proper `#error` for Python 2.
      
      * Using PY_VERSION_HEX to guard `#error "PYTHON 2 IS NO LONGER SUPPORTED.`
      
      * chore: bump pre-commit
      
      * style: run pre-commit for pyupgrade 3+
      
      * tests: use sys.version_info, not PY
      
      * chore: more Python 2 removal
      
      * Uncommenting Centos7 block (PR #3691 showed that it is working again).
      
      * Update pre-commit hooks
      
      * Fix pre-commit hook
      
      * refactor: remove Python 2 from CMake
      
      * refactor: remove Python 2 from setup code
      
      * refactor: simplify, better static typing
      
      * feat: fail with nice messages
      
      * refactor: drop Python 2 C++ code
      
      * docs: cleanup for Python 3
      
      * revert: intree
      
      revert: intree
      
      * docs: minor touchup to py2 statement
      Co-authored-by: default avatarHenry Schreiner <henryschreineriii@gmail.com>
      Co-authored-by: default avatarAaron Gokaslan <skylion.aaron@gmail.com>
      6493f496
  4. 18 Nov, 2021 1 commit
  5. 23 Aug, 2021 1 commit
  6. 29 Jul, 2021 1 commit
  7. 15 Jul, 2021 1 commit
  8. 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
  9. 22 Dec, 2020 1 commit
  10. 16 Dec, 2020 1 commit
  11. 08 Dec, 2020 1 commit
  12. 15 Nov, 2020 1 commit
  13. 20 Oct, 2020 2 commits
  14. 19 Oct, 2020 1 commit
  15. 18 Oct, 2020 2 commits
  16. 13 Oct, 2020 1 commit
  17. 12 Oct, 2020 1 commit
  18. 09 Oct, 2020 1 commit
  19. 05 Oct, 2020 1 commit
  20. 18 Sep, 2020 1 commit
  21. 17 Sep, 2020 2 commits