PEP 590

E896510

PEP 590 is the Python Enhancement Proposal that introduced the "vectorcall" protocol to speed up and standardize function calls in CPython.

All labels observed (4)

Label Occurrences
PEP 580 1
PEP 590 canonical 1
PEP 590 – Vectorcall: a fast calling protocol for CPython 1

How this entity was disambiguated

Statements (50)

Predicate Object
instanceOf Python Enhancement Proposal ⓘ
acceptedInYear 2019 ⓘ
affects C extension types implementing vectorcall ⓘ
built-in functions ⓘ
built-in methods ⓘ
aimsTo speed up function calls in CPython ⓘ
standardize low-level calling convention in CPython ⓘ
appliesTo CPython 3.8 and later ⓘ
backwardsCompatibility keeps Python-level call semantics unchanged ⓘ
benefit enables more efficient inlining and optimization by compilers ⓘ
reduces overhead of argument tuple creation in many calls ⓘ
simplifies internal call machinery in CPython ⓘ
createdBy Jeroen Demeyer ⓘ
Mark Shannon ⓘ
Pablo Galindo ⓘ
Petr Viktorin ⓘ
Victor Stinner ⓘ
decisionBody Python core developers ⓘ
definesConcept vectorcall ⓘ
vectorcall protocol ⓘ
definesDataModel calling convention using C array of PyObject* arguments ⓘ
separate tuple for keyword names ⓘ
discusses ABI stability concerns for C extensions ⓘ
migration path from older fast-call APIs ⓘ
discussionsTo python-dev@python.org ⓘ
documentationURL https://peps.python.org/pep-0590/ ⓘ
hasNumber 590 ⓘ
introducedIn CPython 3.8 ⓘ
linked to: Python 3.8
introducesAPI PyObject_Vectorcall ⓘ
linked to: PEP 590

PyVectorcall_Call ⓘ
PyVectorcall_Function type ⓘ
vectorcall function pointer slot in PyTypeObject ⓘ
introducesMacro PyVectorcall_NARGS ⓘ
isCompatibleWith existing Python call syntax ⓘ
language Python ⓘ
modifiesComponent CPython C API ⓘ
linked to: C API

PyObject call conventions ⓘ
motivatedBy need to unify multiple fast-call code paths ⓘ
performance of C extension calls ⓘ
performance of Python function calls ⓘ
performance of bound method calls ⓘ
relatedTo PEP 579 ⓘ
PEP 580 ⓘ
linked to: PEP 590
replacesMechanism _PyObject_FastCall and related private APIs ⓘ
tp_call-based calling for many callables ⓘ
scope low-level C calling protocol, not Python language syntax ⓘ
status Final ⓘ
targetImplementation CPython ⓘ
title PEP 590 – Vectorcall: a fast calling protocol for CPython ⓘ
linked to: PEP 590
type Standards Track ⓘ

How these facts were elicited

Referenced by (4)

Full triples — surface form annotated when it differs from this entity's canonical label.

Python 3.8 → hasPEP → PEP 590 ⓘ
PEP 590 → title → PEP 590 – Vectorcall: a fast calling protocol for CPython ⓘ
linked to: PEP 590
PEP 590 → introducesAPI → PyObject_Vectorcall ⓘ
linked to: PEP 590
PEP 590 → relatedTo → PEP 580 ⓘ
linked to: PEP 590