Thanks!
Yeah, that’s a problem. By including those Py_mod_multiple_interpreters and Py_mod_gil flags you’re promising that your codebase behaves a certain way; if you just copy & paste them then you’ll get crashes in edge cases. If you don’t add them, you’ll get safe defaults, and clearer error messages in cases that require them.
I hear you. Sadly, the PEP can’t serve user documentation and porting guide. The “interesting” parts of a typical extension module aren’t affected by this PEP.
The goal is to put the info you need in documentation, rather than PEPs – those document individual change documents so they have those drawbacks by design.
You’re perfectly right. Unfortunately, the project manager would probably also need a crystal ball :)
You can have stability now – this API is optional, as are the Py_mod_multiple_interpreters & Py_mod_gil slots, etc. But if you omit them, you’ll not support the latest features.
For the tokens? Those should be fine as they’re only used for pointer comparison.
Or for the slots? That’s an existing design, which I’d like to change but I’m worried that it’d mean even more churn.