cpython icon indicating copy to clipboard operation
cpython copied to clipboard

gh-99249: Clarify "read-only" slots tp_bases & tp_mro

Open encukou opened this issue 3 years ago • 0 comments

These slots are marked "should be treated as read-only" in the table at the start of the document. That doesn't say anything about setting them in the static struct.

tp_bases docs do say that it should be NULL (TIL!). If you ignore that, seemingly nothing bad happens. However, some slots may not be inherited, depending on which sub-slot structs are present. (FWIW, NumPy sets tp_bases and is affected by the quirk -- though to be fair, its DUAL_INHERIT code probably predates tp_bases docs, and also the result happens to be benign.)

This patch makes things explicit. It also makes the summary table legend easier to scan.

  • Issue: gh-99249

encukou avatar Nov 10 '22 17:11 encukou