Skip to content

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

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']

    Activity

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions