Skip to content

[C API] Prepare PyTypeObject structure for a stable ABI: avoid accessing members in the public API #84351

Closed
@vstinner

Description

@vstinner
BPO 40170
Nosy @rhettinger, @ronaldoussoren, @vstinner, @corona10, @miss-islington, @shihai1991, @erlend-aasland
PRs
  • bpo-40170: Remove PyIndex_Check() macro #19375
  • bpo-40170: Convert PyObject_CheckBuffer() macro to a function #19376
  • bpo-40170: PyObject_GET_WEAKREFS_LISTPTR() becomes a function #19377
  • bpo-40170: PyType_HasFeature() no longer acccess directly tp_flags #19378
  • bpo-40170: PyObject_NEW() becomes an alias to PyObject_New() #19379
  • bpo-40170: Add _PyIndex_Check() internal function #19426
  • bpo-40170: Remove PyIndex_Check() macro #19428
  • bpo-40170: Convert PyObject_IS_GC() macro to a function #19464
  • bpo-40170: Add _PyObject_CheckBuffer() internal function #19541
  • Revert "bpo-40170: PyType_HasFeature() now always calls PyType_GetFlags() (GH-19378)" #21390
  • [3.9] Revert "bpo-40170: PyType_HasFeature() now always calls PyType_GetFlags() (GH-19378)" (GH-21390) #21391
  • bpo-40170: Use inline _PyType_HasFeature() function #22375
  • bpo-40170: Add PyType_SetBase() function #23153
  • bpo-40170: Hide implementation detail of Py_TRASHCAN_BEGIN macro #23235
  • bpo-40170: Fix PyType_Ready() refleak on static type #23236
  • bpo-40170: Convert PyDescr_IsData macro to C function #24535
  • bpo-40170: Convert PyIter_Check macro to a function #24548
  • bpo-40170: Always define PyExceptionClass_Name as a function #24553
  • bpo-40170: Move 3 NEWS entries to the C API section #24555
  • bpo-40170: Update What's New in Python 3.9 #29470
  • [3.10] bpo-40170: Update What's New in Python 3.9 (GH-29470) #29471
  • [3.9] bpo-40170: Update What's New in Python 3.9 (GH-29470) #29472
  • bpo-40170: PyType_SUPPORTS_WEAKREFS() becomes a regular function #30938
  • bpo-40170: Remove _Py_GetAllocatedBlocks() function #30940
  • bpo-40170: Remove PyHeapType_GET_MEMBERS() macro #30942
  • bpo-40170: Move _Py_GetAllocatedBlocks() to pycore_pymem.h #30943
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = <Date 2022-01-28.14:25:55.330>
    created_at = <Date 2020-04-03.11:57:03.054>
    labels = ['expert-C-API', '3.10']
    title = '[C API] Prepare PyTypeObject structure for a stable ABI: avoid accessing members in the public API'
    updated_at = <Date 2022-01-28.14:25:55.330>
    user = 'https://github.com/vstinner'

    bugs.python.org fields:

    activity = <Date 2022-01-28.14:25:55.330>
    actor = 'vstinner'
    assignee = 'none'
    closed = True
    closed_date = <Date 2022-01-28.14:25:55.330>
    closer = 'vstinner'
    components = ['C API']
    creation = <Date 2020-04-03.11:57:03.054>
    creator = 'vstinner'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 40170
    keywords = ['patch']
    message_count = 59.0
    messages = ['365689', '365795', '365848', '365850', '365852', '365862', '365863', '365873', '365956', '365960', '365961', '365962', '365964', '365966', '366152', '366155', '366417', '366474', '366494', '366521', '366522', '366529', '372050', '372054', '372056', '373293', '373295', '373298', '373338', '373346', '377372', '380757', '381775', '385176', '387057', '387059', '387092', '387113', '387115', '387129', '387131', '387133', '387140', '387142', '387146', '387177', '405956', '405964', '405966', '411816', '411817', '411818', '411819', '411822', '411824', '411919', '411939', '411998', '411999']
    nosy_count = 7.0
    nosy_names = ['rhettinger', 'ronaldoussoren', 'vstinner', 'corona10', 'miss-islington', 'shihai1991', 'erlendaasland']
    pr_nums = ['19375', '19376', '19377', '19378', '19379', '19426', '19428', '19464', '19541', '21390', '21391', '22375', '23153', '23235', '23236', '24535', '24548', '24553', '24555', '29470', '29471', '29472', '30938', '30940', '30942', '30943']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = None
    url = 'https://bugs.python.org/issue40170'
    versions = ['Python 3.10']

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      Projects

      No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions