Skip to content

[subinterpreters] Make free lists and unicode caches per-interpreter #84701

Closed
@vstinner

Description

@vstinner
BPO 40521
Nosy @rhettinger, @mdickinson, @vstinner, @markshannon, @corona10, @shihai1991, @JunyiXie
PRs
  • bpo-40521: Disable Unicode caches in isolated subinterpreters #19933
  • bpo-40521: Disable free lists in subinterpreters #19937
  • bpo-40521: Disable list free list in subinterpreters #19959
  • bpo-40521: Disable method cache in subinterpreters #19960
  • bpo-40521: Add PyInterpreterState.unicode #20081
  • bpo-40521: Add PyInterpreterState.unicode #20082
  • bpo-40521: Per-interpreter interned strings #20085
  • bpo-40521: Fix update_slot() whne INTERN_NAME_STRINGS is not defined #20246
  • bpo-40521: Make tuple free list per-interpreter #20247
  • bpo-40521: Make float free list per-interpreter #20636
  • bpo-40521: Make slice cache per-interpreter #20637
  • bpo-40521: Make frame free list per-interpreter #20638
  • bpo-40521: Make list free list per-interpreter #20642
  • bpo-40521: Make async gen free lists per-interpreter #20643
  • bpo-40521: Make context free list per-interpreter #20644
  • bpo-40521: Make dict free lists per-interpreter #20645
  • bpo-40521: Make the empty frozenset per interpreter #21068
  • bpo-40521: Remove freelist from collections.deque() #21073
  • bpo-40521: Make bytes singletons per interpreter #21074
  • bpo-40521: Cleanup code of free lists #21082
  • bpo-40521: Empty frozenset is no longer a singleton #21085
  • bpo-40521: Make MemoryError free list per interpreter #21086
  • bpo-40521: Make empty Unicode string per interpreter #21096
  • bpo-40521: Optimize PyUnicode_New(0, maxchar) #21099
  • bpo-40521: Make Unicode latin1 singletons per interpreter #21101
  • bpo-40521: Fix _PyContext_Fini() #21103
  • bpo-40521: Always create the empty tuple singleton #21116
  • bpo-40521: Optimize PyBytes_FromStringAndSize(str, 0) #21142
  • bpo-40521: Cleanup finalize_interp_types() #21265
  • bpo-40521: Fix PyUnicode_InternInPlace() #22376
  • bpo-40521: [subinterpreters] Make dtoa bigint free list per-interpreter #24821
  • Revert "bpo-40521: Remove freelist from collections.deque() (GH-21073)" #24944
  • Revert "bpo-40521: [subinterpreters] Make dtoa bigint free list per-interpreter" #24964
  • bpo-40521: Convert deque freelist from global vars to instance vars #25906
  • bpo-46006: Revert "bpo-40521: Per-interpreter interned strings (GH-20085)" #30422
  • [3.10] bpo-46006: Revert "bpo-40521: Per-interpreter interned strings (GH-20085)" (GH-30422) #30425
  • [3.10] bpo-46006: Revert "bpo-40521: Per-interpreter interned strings (GH-20085)" (GH-30422) #30433
  • Files
  • bench_tuple.patch
  • microbench_tuple.py
  • bench_dict.patch
  • interned_bug.py
  • bench_dtoa.py
  • 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 = None
    created_at = <Date 2020-05-05.15:48:02.489>
    labels = ['expert-subinterpreters', '3.10']
    title = '[subinterpreters] Make free lists and unicode caches per-interpreter'
    updated_at = <Date 2022-01-06.15:24:07.868>
    user = 'https://github.com/vstinner'

    bugs.python.org fields:

    activity = <Date 2022-01-06.15:24:07.868>
    actor = 'vstinner'
    assignee = 'none'
    closed = False
    closed_date = None
    closer = None
    components = ['Subinterpreters']
    creation = <Date 2020-05-05.15:48:02.489>
    creator = 'vstinner'
    dependencies = []
    files = ['49212', '49213', '49216', '49699', '49899']
    hgrepos = []
    issue_num = 40521
    keywords = ['patch']
    message_count = 56.0
    messages = ['368175', '368177', '368187', '368278', '368283', '368807', '368808', '369407', '370636', '370733', '370734', '370735', '370737', '370740', '370741', '370742', '370754', '370755', '370756', '370757', '370771', '370928', '370969', '372146', '372148', '372161', '372168', '372169', '372176', '372181', '372207', '372209', '372216', '372220', '372223', '372250', '372357', '372795', '377368', '383789', '383790', '383829', '385950', '388492', '388493', '388617', '389226', '389294', '389305', '389525', '389527', '393787', '395860', '409819', '409856', '409862']
    nosy_count = 7.0
    nosy_names = ['rhettinger', 'mark.dickinson', 'vstinner', 'Mark.Shannon', 'corona10', 'shihai1991', 'JunyiXie']
    pr_nums = ['19933', '19937', '19959', '19960', '20081', '20082', '20085', '20246', '20247', '20636', '20637', '20638', '20642', '20643', '20644', '20645', '21068', '21073', '21074', '21082', '21085', '21086', '21096', '21099', '21101', '21103', '21116', '21142', '21265', '22376', '24821', '24944', '24964', '25906', '30422', '30425', '30433']
    priority = 'normal'
    resolution = None
    stage = 'patch review'
    status = 'open'
    superseder = None
    type = None
    url = 'https://bugs.python.org/issue40521'
    versions = ['Python 3.10']

    Metadata

    Metadata

    Assignees

    No one assigned

      Projects

      Status

      Done

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions