Skip to content

fix: add py::mod_gil_used() spelling, support pedantic tests - #5797

Open
henryiii wants to merge 12 commits into
pybind:masterfrom
henryiii:henryiii/fix/sizewarn
Open

fix: add py::mod_gil_used() spelling, support pedantic tests#5797
henryiii wants to merge 12 commits into
pybind:masterfrom
henryiii:henryiii/fix/sizewarn

Conversation

@henryiii

@henryiii henryiii commented Aug 15, 2025

Copy link
Copy Markdown
Collaborator

Description

Seeing if I can reproduce the warning-as-error in iminuit (scikit-hep/iminuit#1100). I seem to have failed, but at least we can pass pedantic now for earlier C++ versions. This was mostly working around the trailing comma issue that goes away in C++20.

I've added a new way to spell py::mod_gil_not_used(false): py::mod_gil_used(). If we ever were to change the default (which might make sense if free-threading becomes default), it would be good to have a (nice) way to specify the previous behavior.

Suggested changelog entry:

  • Add py::mod_gil_used() as replacement spelling to py::mod_gil_not_used(false).

📚 Documentation preview 📚: https://pybind11--5797.org.readthedocs.build/

@henryiii
henryiii force-pushed the henryiii/fix/sizewarn branch 5 times, most recently from f5942e0 to 918fb72 Compare August 20, 2025 04:55
@henryiii henryiii changed the title tests: add linking warnings/error chore: pass pedantic warnings enabled Aug 20, 2025
@henryiii henryiii changed the title chore: pass pedantic warnings enabled tests: pass pedantic warnings enabled Aug 20, 2025
@henryiii henryiii changed the title tests: pass pedantic warnings enabled fix: add py::mod_gil_used() spelling Aug 21, 2025
@henryiii henryiii changed the title fix: add py::mod_gil_used() spelling fix: add py::mod_gil_used() spelling, support pedantic tests Aug 21, 2025
Comment thread include/pybind11/pybind11.h Outdated
@henryiii
henryiii force-pushed the henryiii/fix/sizewarn branch from 331a60e to cef0ea7 Compare August 21, 2025 20:20
@henryiii
henryiii marked this pull request as ready for review August 21, 2025 20:37

@rwgk rwgk left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thanks!

@henryiii henryiii mentioned this pull request Aug 21, 2025
Comment thread tests/CMakeLists.txt Outdated
henryiii and others added 11 commits July 27, 2026 09:48
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Keep the bool constructor public and mark it deprecated, so existing
code that spells mod_gil_not_used(false) still compiles. mod_gil_used()
now sets the flag through its friendship, which keeps the deprecated
constructor the only bool overload and stops pybind11 warning against
itself.

Also use the py:: alias in exo_planet_pybind11.cpp to match its sibling
home_planet_very_lonely_traveler.cpp.

Assisted-by: ClaudeCode:claude-opus-5
@henryiii
henryiii force-pushed the henryiii/fix/sizewarn branch from 4603cb8 to 40d5ea6 Compare July 27, 2026 14:01
test_smart_ptr.cpp and standalone_enum_module.cpp came from master after
this branch was written, so they still invoked variadic macros with no
variadic argument. That is a pedantic error below C++20.

Assisted-by: ClaudeCode:claude-opus-5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants