This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients Mark.Shannon, benjamin.peterson, jdemeyer, lukasz.langa, pablogsal, petr.viktorin, vstinner
Date 2019-07-31.13:29:06
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
> [3.8] bpo-36974: separate vectorcall functions for each calling convention (GH-13781) (#14782)

FYI this change caused a regression in libcomps with Python 3.8 beta3, whereas it works well with Python 3.8 beta2.

It's not a bug in Python, but it was a bug in libcomps (already fixed upstream). I just fixed libcomps:

This project used the following method descriptors (for module functions):

{"categories_match", (PyCFunction)PyCOMPS_categories_match, METH_KEYWORDS,
{"environments_match", (PyCFunction)PyCOMPS_envs_match, METH_KEYWORDS,

In Python 3.7, importing the module was just fine: descriptor flags are only checked at the  first call to the method.

In Python 3.8, descriptor flags are checked when the module is imported.

Fedora bug:

The fix is to use the right flags: "METH_VARARGS | METH_KEYWORDS" instead of "METH_KEYWORDS".

Should we add a note like "if you get a 'SystemError: bad call flags' on import, check the descriptor flags of your functions" in What's New in Python 3.8? Maybe with a link to this issue.
Date User Action Args
2019-07-31 13:29:07vstinnersetrecipients: + vstinner, benjamin.peterson, petr.viktorin, lukasz.langa, Mark.Shannon, jdemeyer, pablogsal
2019-07-31 13:29:07vstinnersetmessageid: <>
2019-07-31 13:29:07vstinnerlinkissue36974 messages
2019-07-31 13:29:06vstinnercreate