GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||
GeezerVison is showing github.com — bpo-37191: Move PEP 590 vectorcall tests by vstinner · Pull Request #13892 · python/cpython Conversation
|
|
cc @jdemeyer Again, this change prepares the CPython code base to move the new vectorcall declaration to the internal C API. I also took the opportunity to move TestPEP590 from test_capi to test_call. I really hate test_capi, it's a pile of unrelated stuff. IMHO test_call is a way better place for these vector call tests. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There is no plan to do that: the whole point of vectorcall is to define a public, non-internal protocol. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Sorry, I mean private declarations. See https://bugs.python.org/issue37194 for the details and the rationale. Public declarations are fine and stay. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Can we please not do that right now? I have several open PRs regarding PEP 590 and this is going to cause merge conflicts.
Could you say more precisely which functions you have in mind? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
You have to fix Python 3.8: it introduced many regressions.
Content of pycore_abstract.h in my local branch: I'm trying to prevent to add new things to the public C API. Currently, the "private" functions added in 3.8 are technically part of the public C API and they make compilation of some C extensions fail. There is no reason for these C extensions to use these private functions. More context: http://pythoncapi.readthedocs.io/ |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Oh my local branch is outdated: _PyObject_CallNoArg() is removed by PR #13890 :-) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
At least |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
And |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Can you explain the rationale for that? I do understand your explanations about bad C API that should be removed, but what's wrong with adding "good C API"? My impression is that https://pythoncapi.readthedocs.io is mostly about the stable ABI (PEP 384) but we're not aiming for that with PEP 590: the plan is keep vectorcall in the "CPython C API", that is the intermediate level between |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Private functions should not land into the public C API.
According to https://bugs.python.org/issue37191 I would prefer to not add public functions declared as static inline functions, but "regular functions" instead. I'm fine with keeping static inline function variants, but in the internal C API. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Is that only for C89 compatibility or for other reasons? If the problem is C89, then a macro would also work. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
me:
Jeroen:
Oh. Ignore my previous. I looked again and I already converted many macros to static inline functions in the public C API and I made this on purpose :-D I have a bad memory. Now I'm confused by https://bugs.python.org/issue37191 But as Petr wrote, we can ignore this issue, since Python 3.6 requires C99: https://www.python.org/dev/peps/pep-0007/#c-dialect |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I reverted the controversial part of this PR to only move the test case from test_capi to test_call. @jdemeyer: Would you mind to review the updated PR? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I agree in principle but I don't like that it conflicts with #13858. So I prefer to wait until that is merged. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
macOS job of the Azure Pipelined failed: These failures look to be unrelated. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
I'm not sure that PR #13858 is correct: see my comments there. So you gave me your agreement in principle, I merge this PR ;-) It should be trivial for you to rebase your PR ;-) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thanks @vstinner for the PR 🌮🎉.. I'm working now to backport this PR to: 3.8. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I'm having trouble backporting to |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thanks @vstinner for the PR 🌮🎉.. I'm working now to backport this PR to: 3.8. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
(cherry picked from commit 740a84d) Co-authored-by: Victor Stinner <[email protected]>
|
GH-13897 is a backport of this pull request to the 3.8 branch. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
(cherry picked from commit 740a84d) Co-authored-by: Victor Stinner <[email protected]>
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.