Skip to content

Use PEP 590 vectorcall to speed up calls to range(), list() and dict() #81388

@markshannon

Description

@markshannon
BPO 37207
Nosy @vstinner, @phsilva, @encukou, @methane, @ambv, @markshannon, @jdemeyer, @corona10, @miss-islington
PRs
  • bpo-37207: Use PEP 590 vectorcall to speed up range(), list() and dict() by about 30% #13930
  • bpo-37207: enable vectorcall for type.__call__ #14588
  • bpo-37207: Use vectorcall for range() #18464
  • bpo-37207: Use vertorcall for list() #18928
  • bpo-37207: Use PEP 590 vectorcall to speed up tuple() #18936
  • bpo-37207: Add _PyArg_NoKwnames helper function. #18980
  • bpo-37207: Use _PyArg_CheckPositional for tuple vectorcall #18986
  • bpo-37207: Use PEP 590 vectorcall to speed up set() #19019
  • bpo-37207: Use PEP 590 vectorcall to speed up frozenset() #19053
  • bpo-37207: Use PEP 590 vectorcall to speed up dict() #19280
  • bpo-37207: Update whatsnews for 3.9 #21337
  • [3.9] bpo-37207: Update whatsnews for 3.9 (GH-21337) #21347
  • [3.9] bpo-37207: Update whatsnews for 3.9 (GH-21337) #21350
  • Files
  • bench_dict_empty.py
  • bench_dict_kwnames.py
  • bench_dict_update.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 = <Date 2020-04-05.05:15:46.334>
    created_at = <Date 2019-06-09.09:23:47.228>
    labels = ['interpreter-core', '3.9', 'performance']
    title = 'Use PEP 590 vectorcall to speed up calls to range(), list() and dict()'
    updated_at = <Date 2020-07-06.13:32:13.147>
    user = 'https://github.com/markshannon'

    bugs.python.org fields:

    activity = <Date 2020-07-06.13:32:13.147>
    actor = 'corona10'
    assignee = 'none'
    closed = True
    closed_date = <Date 2020-04-05.05:15:46.334>
    closer = 'corona10'
    components = ['Interpreter Core']
    creation = <Date 2019-06-09.09:23:47.228>
    creator = 'Mark.Shannon'
    dependencies = []
    files = ['49018', '49019', '49020']
    hgrepos = []
    issue_num = 37207
    keywords = ['patch']
    message_count = 31.0
    messages = ['345077', '347272', '347336', '349809', '352133', '362219', '364095', '364322', '364324', '364340', '364428', '364447', '364538', '364808', '365307', '365309', '365385', '365387', '365448', '365452', '365488', '365489', '365490', '365491', '365545', '365546', '365553', '365811', '365907', '373095', '373116']
    nosy_count = 9.0
    nosy_names = ['vstinner', 'phsilva', 'petr.viktorin', 'methane', 'lukasz.langa', 'Mark.Shannon', 'jdemeyer', 'corona10', 'miss-islington']
    pr_nums = ['13930', '14588', '18464', '18928', '18936', '18980', '18986', '19019', '19053', '19280', '21337', '21347', '21350']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'performance'
    url = 'https://bugs.python.org/issue37207'
    versions = ['Python 3.9']

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      3.9 (EOL)end of lifeinterpreter-core(Objects, Python, Grammar, and Parser dirs)performancePerformance or resource usage

      Projects

      No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions