bpo-39355: making Python.h compatible with C++20 compilers by AliyevH · Pull Request #31282 · python/cpython
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your PR!
I would strongly suggest to rename to mod instead of pyModule. It is more aligned with the code style of the majority of the CPython code base.
Also:
- Please write a NEWS entry (I'm thinking something like "Make Python.h compatible with C++20 compilers", but there may be better ways to present this).
- Please add a note in What's New. The text itself can be just a C&P of the NEWS entry.
- Please update the PR title to more accurately reflect the change: you are making Python.h compatible with C++20 compilers.
IMO, we should probably backport this to 3.10 and 3.9. I'm adding the labels; if anyone disagrees, please remove them :)
BTW, did you test that it is actually possible to use a C++20 compiler for external modules after this change? AFAICS, it should be ok, but assumption has resulted in a lot of strange stuff.
AliyevH
changed the title
bpo-39355: Renamed module to pyModule in header files
bpo-39355: making Python.h compatible with C++20 compilers
| @@ -0,0 +1 @@ | |||
| Make Python.h compatible with C++20 compilers | |||
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nitpick:
| Make Python.h compatible with C++20 compilers | |
| Make Python.h compatible with C++20 compilers. |
@erlend-aasland Thanks for the corrections !
renamed pyModule to mod.
added misc.
now i don't have C++20 compiler installed and can't test it
Thanks for the amendments, Hasan. Could you please also add an entry to What's New. Something like this should suffice (given that this actually is a sufficient change):
diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index 5738745ba1..4cf489ad5e 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -650,6 +650,9 @@ Build Changes be removed at some point in the future. (Contributed by Mark Dickinson in :issue:`45569`.) +* Python.h is now compatible with C++20 compilers. (Contributed by by Hasan + Aliyev in :issue:`39355`.) + C API Changes =============
I'll see if I can get around to test it using G++ 11.
| @@ -0,0 +1 @@ | |||
| Make Python.h compatible with C++20 compilers. | |||
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would you mind to explain that the change is to avoid the usage of "module" which became a keyword in C++20?
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes @vstinner, you are right!
I have mentioned in bugs.python.org, about this change.
After making a little research, i realized that this "module" keyword has meaning with "export"
Sorry i am not c++ expert )) If somebody have knowledge about it, share it plz :)
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand your comment. Do you mean that https://bugs.python.org/issue39355 is not a bug and the Python C API is compatible with C++20?
If there is an issue, please explain the change in NEWS entry. "Make Python.h compatible with C++20 compilers." is not enough.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vstinner it was interesting for me, if "module" keyword has meaning with "export" how gcc will treat "module" without "export" keyword ?
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vstinner thanks for great investigation!
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're welcome. I'm now considering serious to convert #32175 to a real unit test to make sure that the Python C API is compatible with C++.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.