This commit resolves all outstanding duplicate label
and duplicate citation warnings.
I have not yet addressed unreferenced footnote warnings.
I took the general strategy of replacing a target above a section heading
with references directly to that section heading,
or where impractical, disambiguting the target with ``PEP NNN``.
I also converted all the citations in PEP 482 to links,
as they were causing duplicate citation warnings.
Cleanup PEP-697 before acceptance:
Clarify in the abstract that this does not apply to all types, things
like tuple and int are excluded. But could be done in the future.
Fix ``basesize`` vs ``basicsize`` field name typos.
Remove the Open Issues section and mention that using a PyType_Spec flag
instead of a negative basicsize was rejected and offer an explanation
why. (ultimately either way would work with similar impact)
* PEP 697: Changes based on initial implementation & docs
- Use a flag, `Py_TPFLAGS_ITEMS_AT_END`, rather than a slot. This way the subclass doesn't need to worry about items (if the superclass is set up right).
- The result of `PyObject_GetTypeDataSize` may be higher than requested by -basicsize (e.g. due to alignment). It is safe to use all of it (e.g. with memset).
- Mention that `basicsize == 0` and `itemsize == 0` already work. I’ll add explicit docs & tests though.
- Add link to initial implementation
- Add endorsements
- Add a “big picture” decision tree
- Rewording
- Mention possible flags for alternative item layouts
* Apply suggestions from code review
Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>