Commit Graph

1253 Commits

Author SHA1 Message Date
Ralf W. Grosse-Kunstleve
6d1026763a Merge branch 'master' into smart_holder 2021-07-15 10:13:07 -07:00
Boris Staletic
5cd3750757
Enable -Wstrict-aliasing warning (#2816)
* Enable -Wstrict-aliasing warning

* Narrow down the scope of -Wstrict-aliasing

* Go home, MSVC, you're drunk

* Make sure "pragma GCC" is not executed on ICC

Co-authored-by: Yannick Jadoul <yannick.jadoul@belgacom.net>
2021-07-15 12:38:52 -04:00
Ralf W. Grosse-Kunstleve
279c93654e Merge branch 'master' into smart_holder 2021-07-13 21:24:02 -07:00
Shane Loretz
7331d381af
Raise codec errors when casting to std::string (#2903)
* Raise codec errors when casting to std::string

Allow the codec's exception to be raised instead of RuntimeError when
casting from py::str to std::string.

PY2 allows ucs surrogates in UTF-8 conversion

Signed-off-by: Shane Loretz <sloretz@openrobotics.org>
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>

* Attempt to fix py2 error

* Revert all unicode literals

* Fixed

Co-authored-by: Aaron Gokaslan <skylion.aaron@gmail.com>
2021-07-13 21:21:55 -07:00
Ralf W. Grosse-Kunstleve
aca6c3ba37
* 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
2021-07-13 18:14:58 -07:00
Ralf W. Grosse-Kunstleve
42c123f59d Merge branch 'master' into smart_holder 2021-07-13 13:27:31 -07:00
jbarlow83
2b7985e548
Improve documentation of discard_as_unraisable() API (#2697)
* Improve documentation of discard_as_unraisable() API

* Update pytypes.h

Remove "the above"

* Update pytypes.h

Fix precommit error

Co-authored-by: Aaron Gokaslan <skylion.aaron@gmail.com>
2021-07-13 15:32:56 -04:00
Ralf W. Grosse-Kunstleve
6133fc7b0c Merge branch 'master' into smart_holder 2021-07-13 10:29:36 -07:00
Aaron Gokaslan
25e470c57d
fix(clang-tidy): Add cppcoreguidelines-init-vars,slicing, and throw-by-value-catch-by-reference checks (#3094)
* clang-tidy: guard against more UB behavior

* Remove slicing check for now
2021-07-13 09:54:32 -04:00
Ralf W. Grosse-Kunstleve
932a4cf409 Merge branch 'master' into smart_holder 2021-07-12 14:07:26 -07:00
Henry Schreiner
f0a65c899c
docs(fix): spelling mistake in recent commit 2021-07-12 16:57:28 -04:00
Ralf W. Grosse-Kunstleve
7472d37a93
Adding iostream.h thread-safety documentation. (#2995)
* Adding iostream.h thread-safety documentation.

* Restoring `TestThread` code with added `std::lock_guard<std::mutex>`.

* Updating new comments to reflect new information.

* Fixing up `git rebase -X theirs` accidents.
2021-07-12 13:39:06 -07:00
Ralf W. Grosse-Kunstleve
4a3444ad2f clang-tidy fixes related to the just-merged PR #3080. Also fixing a minor clang-format mishap. 2021-07-09 07:11:07 -07:00
Ralf W. Grosse-Kunstleve
e7d146bdbd Merge branch 'master' into smart_holder 2021-07-09 06:47:46 -07:00
Aaron Gokaslan
b5357d1fa8
fix(clang-tidy): Enable clang-tidy else-after-return and redundant void checks (#3080)
* Enable clang-tidy else-after-return and redundant void checks

* Fix remaining else-after

* Address reviewer comments

* Fix indentation

* Rerun clang-tidy post merge
2021-07-09 06:45:53 -07:00
Ralf W. Grosse-Kunstleve
c03061fcff Merge branch 'master' into smart_holder 2021-07-08 09:48:42 -07:00
Ralf W. Grosse-Kunstleve
6d1b197b46
Splitting out pybind11/stl/filesystem.h. (#3077)
* Splitting out pybind11/stl/filesystem.h.

To solve breakages like: https://github.com/deepmind/open_spiel/runs/2999582108

Mostly following the suggestion here: https://github.com/pybind/pybind11/pull/2730#issuecomment-750507575

Except using pybind11/stl/filesystem.h instead of pybind11/stlfs.h, as decided via chat.

stl.h restored to the exact state before merging PR #2730 via:
```
git checkout 733f8de24f stl.h
```

* Properly including new stl subdirectory in pip wheel config.

This now passes interactively:
```
pytest tests/extra_python_package/
```

* iwyu cleanup.

iwyuh.py -c -std=c++17 -DPYBIND11_TEST_BOOST -Ipybind11/include -I/usr/include/python3.9 -I/usr/include/eigen3 include/pybind11/stl/filesystem.h

* Adding PYBIND11_HAS_FILESYSTEM_IS_OPTIONAL.

* Eliminating else after return.
2021-07-08 09:02:48 -07:00
Robert Haschke
c090c8c409
Unify cast_error message thrown by [simple|unpacking]_collector (#3013)
* Unify cast_error message thrown by [simple|unpacking]_collector

simple_collector and unpacking_collector throw different error messages
when the casting of an argument failed: While the former mentions make_tuple(),
the latter emphasises the call argument (and its name/position).

* Consolidating "Unable to convert call argument" error reporting code to guarantee uniformity.

Co-authored-by: Ralf W. Grosse-Kunstleve <rwgk@google.com>
2021-07-06 15:13:13 -07:00
Ralf W. Grosse-Kunstleve
00b0365ca3 codespell fixes and adding .codespell-ignorelines 2021-07-06 14:31:18 -07:00
Ralf W. Grosse-Kunstleve
704daac879 Merge branch 'master' into smart_holder 2021-07-06 14:12:08 -07:00
luzpaz
8bee61b645
docs: fix various typos (#3075)
Found via `codespell -q 3 -L nd,ot,thist`
2021-07-04 19:58:35 -04:00
Ralf W. Grosse-Kunstleve
52c3f4cc30
This was meant to be PR #3065: pure clang-format changes. NO manual changes. (#3073) 2021-07-02 16:51:24 -07:00
Ralf W. Grosse-Kunstleve
84cbec0bc1 Merge branch 'master' into smart_holder 2021-07-02 07:07:49 -07:00
Dustin Spicuzza
6d4409466b
Check dict item accesses where it isn't already checked (#2863)
* Convert PyDict_GetXXX to internal error checking variant

* Check unlikely error return from PyDict_DelItemString
2021-07-02 07:02:33 -07:00
Antony Lee
5bcaaa0423
Add a std::filesystem::path <-> os.PathLike caster. (#2730) 2021-07-02 07:00:50 -07:00
Ralf W. Grosse-Kunstleve
9ae7f87fb6 Merge branch 'master' into smart_holder 2021-06-30 23:39:32 -07:00
cyy
f067deb563
avoid unnecessary strlen (#3058) 2021-06-30 23:35:25 -07:00
jonathan-conder-sm
733f8de24f
Avoid string copy if possible when passing a Python object to std::ostream (#3042) 2021-06-30 22:19:14 -07:00
Ralf W. Grosse-Kunstleve
c2111fd353 Merge branch 'master' into smart_holder 2021-06-30 12:36:27 -07:00
Ralf W. Grosse-Kunstleve
fbae8f313b
pickle setstate: setattr __dict__ only if not empty (#2972)
* pickle setstate: setattr __dict__ only if not empty, to not force use of py::dynamic_attr() unnecessarily.

* Adding unit test.

* Clang 3.6 & 3.7 compatibility.

* PyPy compatibility.

* Minor iwyu fix, additional comment.

* Addressing reviewer requests.

* Applying clang-tidy suggested fixes.

* Adding check_dynamic_cast_SimpleCppDerived, related to issue #3062.
2021-06-30 12:34:32 -07:00
Ralf W. Grosse-Kunstleve
93169cc907 Small reduction in code complexity. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
f128f1b6db Converting C assert to pybind11_fail (to play safe). 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
a021e045a9 Adding test_multiple_registered_instances_for_same_pointee_leak. Subtle changes in smart_holder_type_caster_load, trying to work on weak_ptr for shared_ptr_trampoline_self_life_support, but that didn't work out. Manually fully leak-checked again. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
e2108546e1 Adding unit tests: 2 x test_std_make_shared_factory
Completes unit test coverage for the changed code in smart_holder_type_casters.h.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
1b752f56c1 Adding unit test: test_multiple_registered_instances_for_same_pointee 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
cb548bb3cc This change fixes the 6 unit tests in
bbfb0259b5/open_spiel/python/mfg/algorithms
    best_response_value_test
    distribution_test
    fictitious_play_test
    greedy_policy_test
    nash_conv_test
    policy_value_test

CAVEAT: The fix is NOT covered by pybind11 unit tests.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
9fce2956bc A couple more enhancements based on feedback by @laramiel. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
64716cc14c Adding a few comments after review by @laramiel. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
ab3c5134ad Cleaning out debug code. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
146a925e4e Resolving TODOs for from_unique_ptr void_cast_raw_ptr. Adding test to exercise the path through cast. The path through init.h is missing a test that would fail if the flag is incorrect. The plan is to systematically cover all situations (there are many that are not exercised for shared_from_this). 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
a0e19bdc46 Use casting to void * to evade to shared_from_this mechanism only if pointee_depends_on_holder_owner, but currently only for from_raw_ptr_take_ownership. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
1b9f85a09e Preparation for being smarter about casting to void * to evade to shared_from_this mechanism. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
48eb78ae77 Simpler and safe implementation based on new requirement: C++ (outside of the Python object) needs to hold a shared_ptr before shared_from_this is called. This is more similar to the existing implementation on current smart_holder HEAD, but still uses a weak_ptr to always return the same shared_ptr as long as C++ does not let it expire. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
3dd89f14df smart_holder_poc.h: type-erase raw_ptr before passing to shared_ptr::reset, to not trigger populating the shared_from_this weak_ptr. This way the only way the weak_ptr is populated is through loaded_as_shared_ptr. Breaks all but one test in test_class_sh_trampoline_shared_from_this.py, now marked skip WIP to test everything else with the GitHub CI. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
adfd3e1700 Partial cleanup of tests. WIP. The cleanup uncovered a major problem. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
bfd4c4893e Leveraging new noop_deleter_acting_as_weak_ptr_owner to retrieve released vptr.
The placeholder `vptr` is never exposed anymore, therefore the externally visible `use_count`s are more intuitive.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
4b872febcc Adding test_pass_released_shared_ptr_as_unique_ptr, exercising new guard in smart_holder_type_casters.h. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
223283295f Two minor platform-specific fixes. Using static_cast instead of reinterpret_cast. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
993613d9bf Trying again, to get around unused parameter warnings-as-erros. 2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
20ef96c87d Disabling debugging call of weak_from_this for C++ < 17. 2021-06-30 07:04:31 -07:00